I just ran the following command in the terminal while my application was running on a connected device.
adb shell dumpsys meminfo com.mine.application
Once I get the table, I also get a list of “Asset Allocations” which look like this:
Asset Allocations
zip:/data/app/com.mine.application-1.apk:/resources.arsc: 115K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaBold.otf: 374K
zip:/data/app/com.mine.application-1.apk:/assets/HelveticaOblique.otf: 3
85K
This happens after I run through parts of my application several times. Am I correct in thinking that this means the Helvetica fonts are being allocated that many times? And are using up all that memory added together? Also, since these allocations are not removed once I exit that particular activity, am I correct in thinking that this is a memory leak?
If this is true, would I just make sure to null out any references to the fonts upon onPause in order to fix this? Thanks.
There is a documented Android bug that Typeface.createFromAsset() leaks memory.
See http://code.google.com/p/android/issues/detail?id=9904