Skip to content

安卓常见的内存泄漏点

前言 什么是内存泄漏

内存泄漏是指在应用程序运行过程中,由于程序错误或设计不佳,导致无用的内存对象无法被系统及时释放,从而造成内存资源的浪费和应用性能下降的现象。内存泄漏会导致应用程序占用大量的内存资源,降低系统性能,增加系统崩溃的风险,严重影响用户体验,甚至导致应用被系统强制关闭。

1. 常见的内存泄漏场景

  1. 生命周期不匹配:

如果一个线程持有Activity,但在Activity销毁时它还在运行,就会导致Activity无法被回收。

  1. 未正确处理静态变量:

如果一个静态变量持有了Activity的引用,那么Activity销毁后该引用依然存在,可能导致Activity无法被回收。

  1. 未取消注册的监听器:

注册了监听器但是没有在合适的时机取消注册,会导致Activity无法被正常回收。

  1. 非静态内部类持有外部类引用:

非静态内部类持有外部类的引用时,如果外部类对象不再使用,但是内部类还持有它,因此外部类对象也无法被垃圾回收,导致内存泄漏。

Released under the MIT License.