Android性能优化之LeakCanary的使用及项目中的实际运用

引言

Andorid项目中我们会使用第三方的开源库来检查内存泄露情况,使用时我们得了解其运行原理并根据扩反馈日志来指导解决问题。

文本从结合内存泄露原理和在项目中的实际的使用场景来解决开发的实际问题。

1. 什么是内存泄露?

一些对象有着有限的生命周期。当这些对象所要做的事情完成了,我们希望他们会被回收掉。但是如果有一系列对这个对象的引用,那么在我们期待这个对象生命周期结束的时候被收回的时候,它是不会被回收的。它还会占用内存,这就造成了内存泄露。持续累加,内存很快被耗尽。

比如,当 Activity.onDestroy 被调用之后,activity 以及它涉及到的 view 和相关的 bitmap 都应该被回收。但是,如果有一个后台线程持有这个 activity 的引用,那么 activity 对应的内存就不能被回收。这最终将会导致内存耗尽,然后因为 OOM 而 crash。

猜你喜欢

转载自blog.csdn.net/jun5753/article/details/107491929