首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >在安卓项目中使用 Leakcanary 内存泄露检测工具

在安卓项目中使用 Leakcanary 内存泄露检测工具

作者头像
acc8226
发布2022-05-17 20:41:28
发布2022-05-17 20:41:28
9590
举报
文章被收录于专栏:叽叽西叽叽西

使用

(一)导入

导入 Leakcanary-watcher、Leakcanary-analyzer、Leakcanary-android, 在当前项目的引用 Leakcanary-android 这个 library。

(二)在 AndroidManifest 中配置

打开当前的 AndroidManifest 添加下面的代码。

代码语言:javascript
复制
    <!-- Leakcanary config start -->
    <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/leak_canary_LeakCanary.Base" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.squareup.leakcanary.internal.RequestStoragePermissionActivity"
        android:enabled="false"
        android:icon="@drawable/leak_canary_icon"
        android:label="@string/leak_canary_storage_permission_activity_label"
        android:taskAffinity="com.squareup.leakcanary"
        android:theme="@style/leak_canary_Theme.Transparent" />
    <!-- Leakcanary config end -->
代码语言:javascript
复制
> 还有权限
··· xml
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

(三)在 Application 中初始化

新建一个 Application 类,继承自 Application 的,如果你项目已经有那就不需要新建了。 覆盖 onCreate() 方法,在 onCreate() 方法里调用 LeakCanary 的 install() 方法就可以了。

代码语言:javascript
复制
public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        if (LeakCanary.isInAnalyzerProcess(this)) {
            // This process is dedicated to LeakCanary for heap analysis.
            // You should not init your app in this process.
            return;
        }
        LeakCanary.install(this);
    }
}

三、感谢

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用
    • (一)导入
    • (二)在 AndroidManifest 中配置
    • (三)在 Application 中初始化
  • 三、感谢
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档