来自Google I/O的Android内存泄漏示例

207*_*207 11 android memory-leaks

我刚看了谷歌io视频"android的内存管理".幻灯片可在http://dubroy.com/memory_management_for_android_apps.pdf上找到.内存泄漏示例在幻灯片36上.

我不明白为什么这会在方向改变后导致泄漏.我确实理解泄漏是一个内部类,并且引用了外部类.另外,我确实理解静态变量"leak"引用了"Leaky"对象......就是整个活动.我认为这是特殊的,因为static关键字.静态变量有一定的内存,可能不是gc'ed(至少只要应用程序运行)?!?

那么,oriantation变化会发生什么?创建一个新的活动实例并onCreate调用活动.leak == null是假的.泄漏仍指向"旧"活动.那是泄密.老活动不能接受,对吧?

为什么内存使用会随着每个oriantation的变化而增加?在我(错误的)理解中,我认为只有第一个活动不能被gc'ed.那些因为oriantation变化产生的其他activites可以gc'ed,因为它们不是由静态变量"泄漏"中引用.

但是......显然......我完全错了!

Wal*_*r K 2

来自Google 博客的方向变化上下文内存泄漏的经典解释。我想,您大部分时间都注意到了内部类对外部类的静态引用。