Android 基础库 - 调试体系 - 调试手段

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 以下获取不到

猜你喜欢

转载自blog.csdn.net/luansxx/article/details/82837838