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

 

浏览 6
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

编辑 分享
举报