本文主要是介绍内存泄漏检测工具LeakCanary的使用说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.如果目标工程通过eclipse可以编译通过,可以使用关联工程的方式,将LeakCanary的源码以lib库的方式导入eclipse和目标工程进行关联
2.如果在eclipse编译不通过,则可以通过引用jar包的方式,将LeakCanary的jar包导入到目标工程,同时要把LeakCanary中的相关资源导入到目标工程,再进行编译。
3.按如下步骤添加LeakCanary到工程中:
第一步:
修改目标工程中的androidmanifest.xml文件
需要添加如下两个service和一个activity。
<serviceandroid:name="com.squareup.leakcanary.internal.HeapAnalyzerService"android:enabled="false"android:process=":leakcanary" /><serviceandroid:name="com.squareup.leakcanary.DisplayLeakService"android:enabled="false" /><activityandroid: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了。
这篇关于内存泄漏检测工具LeakCanary的使用说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!