LeakCanary上传 leak trace 到服务器

 2023-09-05 阅读 276 评论 0

摘要:你可以改变处理完成的默认行为,将 leak trace 和 heap dump 上传到你的服务器以便统计分析。 创建一个LeakUploadService, 最简单的就是继承DisplayLeakService: public class LeakUploadService extends DisplayLeakService {@Overrideprotected vo

你可以改变处理完成的默认行为,将 leak trace 和 heap dump 上传到你的服务器以便统计分析。

创建一个 LeakUploadService, 最简单的就是继承 DisplayLeakService :

public class LeakUploadService extends DisplayLeakService {@Overrideprotected void afterDefaultHandling(HeapDump heapDump, AnalysisResult result, String leakInfo) {if (!result.leakFound || result.excludedLeak) {return;}myServer.uploadLeakBlocking(heapDump.heapDumpFile, leakInfo);}
}

请确认 release 版本 使用 RefWatcher.DISABLED

public class ExampleApplication extends Application {public static RefWatcher getRefWatcher(Context context) {ExampleApplication application = (ExampleApplication) context.getApplicationContext();return application.refWatcher;}private RefWatcher refWatcher;@Override public void onCreate() {super.onCreate();refWatcher = installLeakCanary();}protected RefWatcher installLeakCanary() {return RefWatcher.DISABLED;}
}

自定义 RefWatcher

public class DebugExampleApplication extends ExampleApplication {protected RefWatcher installLeakCanary() {return LeakCanary.install(app, LeakUploadService.class);}
}

别忘了注册 service:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"><application android:name="com.example.DebugExampleApplication"><service android:name="com.example.LeakUploadService" /></application>
</manifest>

 

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/167.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息