典型的Android应用程序应该使用多少内存?

时间:2012-03-28 04:18:13

标签: android memory-management

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

6 个答案:

答案 0 :(得分:15)

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

     Droid:24MB

     

Nexus One:32MB

     

Xoom:48MB

答案 1 :(得分:5)

您可以使用DDMS>分配跟踪器,用于跟踪应用程序的内存使用情况和堆分配

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

要跟踪PID的整体内存,可以在ActivityManager

中使用以下两种方法

获取应用的PID:

List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses ()

然后是MemoryInfo

MemoryInfo[] getProcessMemoryInfo (int[] pids)

答案 2 :(得分:1)

你可能想看一下这个。 How do I discover memory usage of my application in Android?或者只是尝试

ActivityManager.getMemoryInfo() 

答案 3 :(得分:0)

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

中查看

答案 4 :(得分:0)

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

adb shell dumpsys meminfo com.<your.package>

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

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

希望这有帮助

答案 5 :(得分:0)

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

  1. 运行您的应用。

  2. 单击底部工具窗口栏中的“探查器”。

让我的应用使用大约70-120 MB的内存对我来说很常见。

Android Studio探查器: