1.如果目标工程通过eclipse可以编译通过,可以使用关联工程的方式,将LeakCanary的源码以lib库的方式导入eclipse和目标工程进行关联
2.如果在eclipse编译不通过,则可以通过引用jar包的方式,将LeakCanary的jar包导入到目标工程,同时要把LeakCanary中的相关资源导入到目标工程,再进行编译。
3.按如下步骤添加LeakCanary到工程中:
第一步:
修改目标工程中的androidmanifest.xml文件
需要添加如下两个service和一个activity。
<service
android:name="com.squareup.leakcanary.internal.HeapAnalyzerService"
android:enabled="false"
android:process=":leakcanary" />
<service
android:name="com.squareup.leakcanary.DisplayLeakService"
android:enabled="false" />
<activity
android:name="com.squareup.leakcanary.internal.DisplayLeakActivity"
android:enabled="false"
android:icon="@drawable/__leak_canary_icon"
android:label="@string/__leak_canary_display_activity_label"
android:taskAffinity="com.squareup.leakcanary"
android:theme="@style/__LeakCanary.Base">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
第二步:
添加如下权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
第三步:
修改目标工程的Application类,如果没有请添加一个此类。修改如下:
public static RefWatcher getRefWatcher(Context context) {
VoiceHelper application = (VoiceHelper) context
.getApplicationContext();
return application.refWatcher;
}
private RefWatcher refWatcher;
在application类的onCreate函数中添加
refWatcher = LeakCanary.install(this);
第四步:
在需要测试的activit里面添加如下修改
activity的onCreate()里面添加
RefWatcher refWatcher = MyApplication.getRefWatcher(this);
refWatcher.watch(this);
在需要测试的fragment里面添加如下修改
RefWatcher refWatcher = MyApplication.getRefWatcher(getActivity());
refWatcher.watch(this);
经过以上四步,基本上就可以正常使用LeakCanary了。