🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### Android哪些情况会导致内存泄漏,如何分析内存泄漏? 常见的产生内存泄漏的情况如下所示: - 持有静态的Context(Activity)引用。 - 持有静态的View引用, - 内部类&匿名内部类实例无法释放(有延迟时间等等),而内部类又持有外部类的强引用,导致外部类无法释放,这种匿名内部类常见于监听器、Handler、Thread、TimerTask - 资源使用完成后没有关闭,例如:BraodcastReceiver,ContentObserver,File,Cursor,Stream,Bitmap。 - 不正确的单例模式,比如单例持有Activity。 - 集合类内存泄漏,如果一个集合类是静态的(缓存HashMap),只有添加方法,没有对应的删除方法,会导致引用无法被释放,引发内存泄漏。 - 错误的覆写了finalize()方法,finalize()方法执行执行不确定,可能会导致引用无法被释放。 查找内存泄漏可以使用Android Profiler工具或者利用LeakCanary工具。