Android中应用程序启动时的高内存使用率

时间:2013-08-12 01:19:56

标签: android out-of-memory android-resources

我正在制作一个基本的Android应用程序,但它遭受了大量垃圾收集(GC每秒开始4-5次)。我试着查找根本原因,并在调用onCreate函数后意识到我的应用程序几乎没有内存。

应用程序启动后,DDMS显示几乎91%的堆使用,主要是1字节数组。我还运行了内存分析工具,看看我是否在泄漏内存或其他东西,甚至在执行应用程序后,它显示大部分内存已被android.content.res.resources用尽。

为什么我的应用程序会失去如此多的内存资源?我的应用程序所拥有的唯一资源是22KB的小JPEG图像。我在其他地方读到,由于共享资源等,有时候自由堆被误报了,但是GC不应该像应用程序运行时那样频繁地启动。有人可以帮忙吗?

FWIW,在Galaxy S3上运行的同一个应用程序在开始时显示大约20%的堆使用量,即使它显示相同的总内存量(~10 MB)。有问题的手机是Galaxy S2。

1 个答案:

答案 0 :(得分:0)

将手机升级到Cyanogenmod 10.1,现在堆的使用率在开始时约为30%,GC不再启动了。也许是三星固件中的一个错误?