app性能优化 - 避免内存泄漏

提出问题:

Android可以保留在内存中的应用越多,用户在其应用之间切换的速度就越快。
作为我工作的一部分,我遇到了Android应用程序中的内存泄漏问题,他们大部分时间都是由于同样的错误:
“保持对Context的长期引用”
例如:内部类和它们对外部类的隐式引用是很危险的!

解决方案:

为了避免上下文Context相关的内存泄漏,请记住以下内容:

  • 不要长期引用context-activity(对activity的引用应该与activity本身具有相同的生命周期);
  • 尝试使用context-application而不是context-activity,你可以通过调用Context.getApplicationContext()或者Activity.getApplication()来获得它 ;
  • 避免activity中的非静态内部类,如果你不能控制它们的生命周期,请使用静态内部类,并对内部activity做一个弱引用。使用WeakReference进行包裹;
  • 垃圾收集器gc不是防止内存泄漏的保险 ;
  • 借助开源项目leakcanary检测自己项目中是否存在内存泄露;

你可能感兴趣的:(app性能优化 - 避免内存泄漏)