I have developed a file parsing application on the android platform. How do I check how much memory my application is actually using up ? I tried the adb shell cat /proc/meminfo command but this does not give me how much memory my application is using. it just gives general info about the overall memory. And how much memory should an application typically use up ? what is usual or unusual ? Any help is appreciated. Thanks !
-
you don have to bother much it wont be effecting you anyways dearRakshi– Rakshi2012-03-28 04:41:54 +00:00Commented Mar 28, 2012 at 4:41
-
5none actually answer the question here. They just tell you how to monitor it. What is a lot? What is to much and what is acceptable.Zapnologica– Zapnologica2017-01-04 21:14:15 +00:00Commented Jan 4, 2017 at 21:14
5 Answers
Android apps are constrained to a certain amount of memory. As it's quite (insanely?) low, I think you shouldn't feel guilty about using all of it!
The limit is 16 MB on very old devices, 24 MB or 32 MB on newer ones. There doesn't seem to be much info on the size for different devices, and nobody seems to know why the limit is so small when modern phones have 1-2 GB of RAM.
http://blog.javia.org/how-to-work-around-androids-24-mb-memory-limit/
https://groups.google.com/forum/?fromgroups=#!topic/android-platform/7zKQlrDcypQ
Aha, I found some concrete numbers on the limit:
http://dubroy.com/memory_management_for_android_apps.pdf
G1: 16MB
Droid: 24MB
Nexus One: 32MB
Xoom: 48MB
Comments
You can use DDMS > Allocation Tracker to track memory usage and Heap Allocation for your app
http://developer.android.com/resources/articles/track-mem.html
To Track the overall memory of a PID you could use following two methods in ActivityManager
To get a PID of your app :
List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses ()
and then the MemoryInfo
MemoryInfo[] getProcessMemoryInfo (int[] pids)
4 Comments
you might want to take a look at this one. How do I discover memory usage of my application in Android? Or simply try
ActivityManager.getMemoryInfo()