内存泄露检测
# 内存泄露检测
> author:licoba
>create date:202/04/06
## 内存泄露的检测方法
- 自带的Android Profiler
- 第三方库`LeakCanary`
## 常见的内存泄露原因
- Handler造成内存泄露
在Activity销毁的时候handler仍然有未发送的消息,这个时候需要调用`removeCallbacksAndMessages`方法来移除当前handler发送的请求
- 广播注册后未取消注册、观察者订阅后未取消订阅
- Thread 线程任务未执行完,仍然持有Activity的引用
- 资源未关闭,例如io流、数据库使用后未及时关闭,这些资源在进行读写操作时通常都使用了缓冲,如果及时不关闭,这些缓冲对象就会一直被占用而得不到释放,以致发生内存泄露。
---
【参考文章】
- [Android Profiler官方文档](https://developer.android.com/studio/profile/memory-profiler?hl=zh-cn)
- [利用 Android Profiler 测量应用性能](https://juejin.im/post/5b7cbf6f518825430810bcc6)
- [安卓内存泄露几种常见形式及解决方案](https://blog.csdn.net/jinfulin/article/details/72053920)