Minidump
- 需求定义
功能点 |
功能边界 |
备注 |
开关 |
|
|
上传 |
附带日志 |
对接simple-breakpad-server,可配置URL |
|
|
|
使用Google Breakpad工具,生成crash dump文件(*.dmp)。
程序再次启动时,发现dump文件,上传到minidump服务器。
Minidump服务器目前使用simple breakpad server搭建,增加支持日志文件,系统信息。
支持主动dump,可以用于分析程序卡死。
Backtrace
主动生成backtrace文件,记录各个线程的当前调用栈,用于分析线程卡死等程序异常问题。
使用Android signal 3,文件生成在/data/anr/traces.txt,需要应用有目录访问权限。
支持多文件回滚。
Hprof
主动生成hprof文件,记录java对象图,用于分析java程序内存泄露。
使用Android相关API,生成文件在cache目录,以进程ID为名称。
Leakdump
- 需求定义
功能点 |
功能边界 |
备注 |
显示弹框 |
|
可配置关闭 |
独立分析模块 |
|
独立APP,离线分析泄漏引用链 |
|
|
|
基于LeakCanary,将其开展,支持离线分析,日志上传。
Heapdump
主动生成heapdump文件,记录native程序堆内存使用情况,用于分析native程序内存泄露。
需要Android启动libc内存检测工作模式,需要eng 版本的rom。
LoopDump
监控Looper的运行状态,检测卡段和卡死。
功能点 |
功能边界 |
备注 |
消息处理耗时 |
|
超过1秒,打印警告 |
记录完整数据 |
包括idle时间 |
用于后续统计分析 |
检查卡死 |
|
另一个线程,busy,free |
配置 |
开关 超时时间 |
|
FileDump
- 需求定义
功能点 |
功能边界 |
备注 |
文件树Dump |
|
通过状态输出模块输出 |
格式 |
ls –l格式 |
不包含Owner、软链接信息 |
控制台命令 |
|
|
下载文件 |
模式匹配 多目录 zip压缩 |
|
需求和问题:
- 文件模式,与Linux定义不同(已经解决)
Android定义是三个bit一组,Linux是4个bit一组(有些bit无意义)
- 常见目录(只有x权限,没有r权限),不能获取列表,但是部分项目是已知的(如:app-cache目录)(已经解决)
APP自己的cache目录
- 文件所有者(User、Group)
- 软连接目标
Android 4.4 以下获取不到