嘿,我的listview似乎遇到了某种内存泄漏问题。列表视图活动位于选项卡中,每行下载一个图像并将其显示在ImageView中(将其平铺为backgroiund)。我正在使用类似于droidfu http://github.com/kaeppler/droid-fu/blob/master/src/main/java/com/github/droidfu/imageloader/ImageCache.java
的缓存一切似乎工作正常,因为当它超过20个项目时我完全清除内存缓存,并且当它超过0.5mb时完全清除磁盘缓存只是为了安全。当我在列表中有大量项目(比如100)时会出现问题,并且我会尽可能快地在此列表中来回滚动。最终我在Logcat中收到这些消息:
需要堆按摩(59892字节外部分配太大)
完整GC(不收集SoftReferences)
将目标GC堆从16.277MB钳制到16.000MB
尝试修剪堆源
完整GC(收集SoftReferences)
还有很多导致力量接近的人。我不太确定问题是什么或如何修复它:S
谢谢!
以下是完整日志:http://pastebin.com/MghMdbxS
原来问题是创建的AsyncTask / Thread对象太多了。我正在使用http://code.google.com/p/android-imagedownloader/中的代码而不确定如何解决此问题......
答案 0 :(得分:0)
一个好的起点是:
http://kohlerm.blogspot.com/2009/04/analyzing-memory-usage-off-your-android.html
获得转储有点复杂,但会给你一个很好的时间点静态分析。您还需要Eclipse内存分析工具(MAT):
祝你好运!