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

文章目录

  • 引言
  • 1. 什么是内存泄露?
  • 2. 内存泄漏造成什么影响?
  • 3. 什么是LeakCanary?
  • 4. LeakCanary工作机制(原理)
  • 5. 项目中的实际运用场景及分析方法
  • 6 .总结

引言

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

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

1. 什么是内存泄露?

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

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

你可能感兴趣的:(Android性能优化,android,定位,面试,java)