【问题标题】:How much memory should a typical android application use?一个典型的 android 应用程序应该使用多少内存?
【发布时间】:2012-04-11 15:58:10
【问题描述】:

我在android平台上开发了一个文件解析应用程序。如何检查我的应用程序实际使用了多少内存?我尝试了 adb shell cat /proc/meminfo 命令,但这并没有告诉我我的应用程序正在使用多少内存。它只是提供有关整体内存的一般信息。一个应用程序通常应该使用多少内存?什么是通常的或不寻常的?任何帮助表示赞赏。谢谢!

【问题讨论】:

  • 你不必费心,反正不会影响你,亲爱的
  • 这里没有人真正回答这个问题。他们只是告诉你如何监控它。什么是很多?什么是太多,什么是可以接受的。

标签: android memory-management


【解决方案1】:

Android 应用受限于一定的内存量。由于它非常(疯狂?)低,我认为你不应该对使用所有它感到内疚!

在非常旧的设备上限制为 16 MB,在较新的设备上限制为 24 MB 或 32 MB。似乎没有太多关于不同设备大小的信息,而且似乎没有人知道为什么现代手机有 1-2 GB RAM 时限制如此之小。

http://blog.javia.org/how-to-work-around-androids-24-mb-memory-limit/

https://groups.google.com/forum/?fromgroups=#!topic/android-platform/7zKQlrDcypQ

啊哈,我在极限上找到了一些具体的数字:

http://dubroy.com/memory_management_for_android_apps.pdf

G1:16MB

机器人:24MB

Nexus One:32MB

Xoom:48MB

【讨论】:

    【解决方案2】:

    您可以使用 DDMS > Allocation Tracker 来跟踪您的应用的内存使用情况和堆分配

    http://developer.android.com/resources/articles/track-mem.html

    要跟踪 PID 的整体内存,您可以在 ActivityManager 中使用以下两种方法

    要获取应用的 PID:

    List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses ()
    

    然后是 MemoryInfo

    MemoryInfo[] getProcessMemoryInfo (int[] pids)
    

    【讨论】:

    • 使用分配跟踪器帮助我进行调试,我想找到整个应用程序占用的内存。
    • @Amritha:我认为MAT 可以帮助您。
    • @Ghost,我再说一遍,我不想调试或查找对象的分配位置或内存泄漏。在电话中,我想知道我的应用程序占用了多少内存。就是这样。
    • @Amritha:见thisthis。 MAT 的范围不仅限于找出内存泄漏。很明显,如果您的应用程序没有泄漏,MAT 会显示您的应用程序正在使用的总内存。如果这对您没有帮助,请尝试Google。一切顺利。
    【解决方案3】:

    你可能想看看这个。 How do I discover memory usage of my application in Android?或者干脆试试

    ActivityManager.getMemoryInfo() 
    

    【讨论】:

      【解决方案4】:

      您可以在应用程序管理器中查看应用程序内存使用情况,您可以在link查看它

      【讨论】:

      • 你的链接好像坏了
      【解决方案5】:

      您可以使用以下命令获取您的 android 应用程序的内存使用情况: 假设您在 PATH 中有 adb:

      adb shell dumpsys meminfo com.<your.package>
      

      要查看正在使用的内存的实时更新,您可以尝试

      watch "adb shell dumpsys meminfo com.<your.package>"
      

      希望对你有帮助

      【讨论】:

        【解决方案6】:

        您可以使用 Android Studio 中的内置 Profiler 来检查您的内存、CPU、网络和其他资源的使用情况。

        1. 运行您的应用程序。

        2. 点击底部工具窗口栏中的“Profiler”。

        我的应用使用大约 70 - 120 MB 的内存是很常见的。

        Android Studio 分析器:

        【讨论】:

          猜你喜欢
          • 2019-01-30
          • 2014-05-30
          • 2012-07-08
          • 2014-01-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-27
          • 1970-01-01
          相关资源
          最近更新 更多