Tailor内存快照裁剪压缩工具

联合创作 · 2023-10-01 21:27

Tailor 是字节跳动西瓜 Android 团队开发的一款通用内存快照裁剪压缩工具,通过它可以在异常时直接 dump 出一个迷你内存快照。快照中没有任何敏感信息,更重要的是文件非常小的同时数据也相对完整,非常适合离线分析 OOM 及其他类型异常的调查定位。


开始使用


第一步:将 JitPack 存储库添加到构建文件



allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}


第二步:添加依赖



dependencies {
implementation 'com.github.bytedance:tailor:1.1.0'
}


第三步:添加代码开始使用



// 在异常回调里通过 Tailor 获取快照
if (e instanceof java.lang.OutOfMemoryError) {
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "mini.hprof";
try {
Tailor.dumpHprofData(path, true);
} catch (IOException ex) {
ex.printStackTrace();
}
}



// 也可以直接对已经存在的hprof文件裁剪压缩
Tailor.cropHprofData(source, target, true);


Step 4: Upload data



## !!! 应用需自己实现数据上传或回捞


Step 5: Process data (Python version 3.5以上)



## 还原数据, target.hprof 可通过 Android Studio 分析,通过 MAT 还需要 hprof-conv 转换
python3 library/src/main/python/decode.py -i mini.hprof -o target.hprof



## 解析验证
python3 library/src/main/python/verify.py -i source.hprof



## 裁剪压缩
python3 library/src/main/python/encode.py -i source.hprof -o mini.hprof


 

浏览 15
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报