内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。
以上是百度百科给出的定义,而在Android开发我们遇到的内存泄漏的原因,几乎都是“长生命周期的对象持有对短生命周期对象的引用,导致短生命周期对象在生命周期结束后无法被释放”。
常见的场景总结如下:
- 静态引用或静态对象内部引用了非全局上下文;
- 动态广播未注销;
- 资源使用后未关闭或释放;
- (非静态)内部类默认吃哟欧外部类的引用;
- 异步回调在生命周期结束后未结束;
- WebView的callback默认持有webview的上下文;
2020-02-24
网友评论