Android 调试工具用法详细介绍

时间:2021-05-21

本文主要为大家讲解多种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动作:

import android.os.Debug; import java.io.IOException; …… try { android.os.Debug.dumpHprofData(“/data/tmp/input.hprof”); // 先建/data/tmp目录 } catch (IOException ioe) { }

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 调试工具的资料整理,后续继续补充相关知识,谢谢大家对本站的支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章