工具
|
核心功能
|
使用
|
adb |
一个客户端服务器程序,使用命令行的方式与设备通信,需要设备开启usb debugging。 |
adb devices |
bmgr |
应用的备份、恢复、擦除 |
备份设置:adb shell bmgr backup <pkg> |
am |
activity管理,activity、service、broadcast的发送,杀进程,profile,dump,屏幕尺寸,uri转换 |
adb shell am start [options] <INTENT> |
pm |
package管理,列举、安装、卸载、发放回收权限、创删用户 |
adb shell pm list packages [options] <FILTER> |
procrank |
各进程内存使⽤情况排⾏ |
adb shell procrank |
dumpsys |
meminfo查看dalvik和native的内存占用情况 |
adb shell dumpsys | grep DUMP |
showmap |
查看进程各个部分占用的内存情况 |
adb shell showmap 8179 |
其他常见命令 |
getprop 返回Android的所有系统属性 |
|
monitor |
多个监控分析工具的集合,dump、thread、profiling、systrace、traceopengl calls |
命令行执行monitor/sdk的tools目录执行monitor.bat |
Traceview |
Traceview是图形化的日志查询器,提供时间线面板方便查看线程和方法的起始时间,profiling面板查看方法内的执行信息(Traceview分析时会禁止JIT,容易导致执行时间分析的不准确,多耗费的时间可能因为JIT编译而优化掉) |
trace文件可以在代码里调用api实现: |
hprof-conv |
dump后的hprof文件需要转换下才能被mat打开 |
hprof-conv 1.hprof 2.hprof |
Draw 9-patch |
生成拉伸不失真图片,可以定义哪里可以拉伸,哪里是内容区域 |
sdk的tools目录运行draw9patch.bat |
Hierarchy Viewer |
提供层级浏览,调试优化界面,提供了宝贵的分析信息,以便了解布局里面的每一个视图控件测量、渲染和绘制要花多少时间 |
sdk的tools目录运行hierarchyviewer.bat |
layoutopt |
布局分析工具 |
layoutopt 全路径.xml |
lint |
静态代码分析工具,发现潜在的Bug和性能、安全问题 |
lint myproject |
monkey |
可以产生用户点击、触摸、手势等事件的程序,可以在开发阶段进行测试 |
adb shell monkey [options] <event-count> |
ProGuard |
一个通过删除无用代码、重命名方式压缩、优化、混淆代码的工具,release模式自动运行 |
创建工具后会自动生成proguard.cfg文件,可配置如何混淆代码,运行后会自动生成多个txt文件说明混淆后和混淆前的关联信息 |
Systrace |
通过捕获应用进程和系统进程信息实现性能分析,会合并android内核(CPU/磁盘)数据生成报告,非常适合于分析展示慢问题。 |
可以通过Eclipse、Android Studio、Device Monitor及命令行执行,可以通过代码调用API执行,-o输出html报告 |
Wireshark/tcpdump |
抓包工具,需要root手机 |
下载安装tcpdump到手机里,别安装到SD卡 |
StrickMode |
限制模型,开发人员选项里可以开启,在代码里启动后可以帮助分析不规范的代码实现 |
我们通常在 Activity 或者自定义的Application类中启动StrictMode,代码如下: |
RE 浏览器 |
root文件浏览器,修改 host 文件 |
|
开发人员选项 |
绘图、GPU、监控等 |
|
Emmagee |
CPU、内存、流量、电量 |
Emmagee:性能测试小工具 |
zipalign |
对apk进字节对齐 :zipalign -c -v 4application.apk |
使用 zipalign对apk进字节对齐,不然会耗费更多内存。 |