我一直在我的应用程序中遇到随机的(内存不足)崩溃,所以我开始分析我的堆。我注意到,如果我从Activity A转到Activity B,由于懒加载许多图像,堆会从27 MB增加到35 MB。然而,当我使用finish()函数从Activity B返回到Activity A时,尽管进行了GC操作,堆大小仍保持不变!
令人烦恼的是,再次转到Activity B会将堆增加到42 MB。我可以这样做很多次,但堆只会不断增加。
这是我正在使用的懒加载图片库:
LazyList https://github.com/thest1/LazyList 这些是堆的截图:
before: http://i.stack.imgur.com/7eTzm.png after: http://i.stack.imgur.com/txeC6.png 可根据要求提供转换后的堆转储文件
更新:
令人烦恼的是,再次转到Activity B会将堆增加到42 MB。我可以这样做很多次,但堆只会不断增加。
这是我正在使用的懒加载图片库:
LazyList https://github.com/thest1/LazyList 这些是堆的截图:
before: http://i.stack.imgur.com/7eTzm.png after: http://i.stack.imgur.com/txeC6.png 可根据要求提供转换后的堆转储文件
更新:
从我的调试情况来看,似乎问题出在LazyList库中,但我仍不确定百分之百。这里有人对该库进行评论: