使用leakcanary检测Android项目内存泄露

来源:互联网 发布:java工作流activity 编辑:程序博客网 时间:2024/05/18 00:02
项目中遇到了OOM问题,在版本较低的安卓盒子上时有发生OOM,在版本高的盒子上发生的概率比较少。通过adb工具看了下,我使用的低版本盒子应用最大可用内存是64m,而高版本的是192m。在优化项目的同时,使用了leakcanary第三方开源框架检测项目中存在的问题。leakcanary的开源地址:https://github.com/square/leakcanary。这是大名鼎鼎的square公司的开源框架。使用leakcanary非常简单:
  1. 第一步:添加gradle配置,项目app/build.gradle文件中添加:
dependencies {   debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.1'   releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'   testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1' }
  1. 在项目的自定义Application中添加初始化,leakcanary代码:
public class GlobalApplication extends Application {  @Override public void onCreate() {    super.onCreate();    if (LeakCanary.isInAnalyzerProcess(this)) {      return;    }    LeakCanary.install(this);  }}

不要忘记把GlobalApplicaion添加到AndroidManifest.xml中。
最后就是运行项目,然后如果发生了OOM,则leakcanary会给出提示,如图:
这里写图片描述
接下来要做的就是根据提示修改代码,进行优化。

原创粉丝点击