本文主要为大家讲解多种Android调试工具的用法。
1. 查看当前堆栈
1)功能:在程序中加入代码,使可以在logcat中看到打印出的当前函数调用关系。
2)方法:
new Exception(“print trace”).printStackTrace();
2. MethodTracing
1)功能:用于热点分析和性能优化,分析每个函数占用的CPU时间,调用次数,函数调用关系等。
2)方法:
a)在程序代码中加入追踪开关:
import android.os.Debug; …… android.os.Debug.startMethodTracing(“/data/tmp/test”); // 先建/data/tmp目录 …… // 被追踪的程序段 android.os.Debug.stopMethodTracing();b)编译,运行后,设备端生成/data/tmp/test.trace文件。
c)把trace文件复制到PC端
$ adb pull /data/tmp/test.trace ./
d)使用android自带工具分析trace文件
$ $ANDROID_SRC/out/host/linux-x86/bin/traceview test.trace
此时可看到各个函数被调用的次数CPU占用率等信息。
e)使用android自带工具分析生成调用关系类图
$ apt-get install graphviz # 安装图片相关软件
$ANDROID_SRC/out/host/linux-x86/bin/dmtracedump -g test.png test.trace
此时目录下生成类图test.png
3)注意
trace文件生成与libdvm模块DEBUG版本相冲突,所以此方法只适用于对非DEBUG版本模拟器的调试,否则在分析trace文件时会报错。
3. HProf (Heap Profile)
1)功能:
用于java层面的内存分析,显示详细的内存占用信息,指出可疑的内存泄漏对象。
2)方法:
a)在代码中加入dump动作:
b)把hprof文件复制到PC端
$ adb pull /data/tmp/input.hprof ./
c)使用命令hprof-conv把hprof转成MAT识别的标准的hprof
$ $ANDROID_SRC/out/host/linux-x86/bin/hprof-conv input.hprof output.hprof
d)使用MAT工具看hprof信息
下载MAT工具:http://.android.settings -v 500
此时可以看到界面不断被切换。
9. 其它小工具
具体见android.os.Debug中提供的工具。
1)取毫微秒级的时间,用于计算时间
threadCpuTimeNanos()
2)统计两点间的内存分配情况:
startAllocCounting() stopAllocCounting() getGlobalAllocCount() get…..3)打印当前已load的class
getLoadedClassCount()
printLoadedClasses() 它需要打开NDEBUG功能才能打开system/core/中Log功能
10. 打印debug信息
$ adb bugreport
以上就是对Android 调试工具的资料整理,后续继续补充相关知识,谢谢大家对本站的支持!