一款Android辅助利器

转载自看雪论坛

一.前言:

    Android 调试工具ddms的devices栏目存在一个功能叫做start method profiling,此按钮顾名思义是启动method profiling的,而Android的Method Profiling功能,是可以在一段时间内记录所有运行过的函数,最后生成一个xxx.trace文件。xxx.trace文件比较有趣,如果分析andorid源码可以知道,xxx.trace文件按线程和时间记录了method的enter和exit事件。也就是说,如果我们能够读取xxx.trace文件,那么我们就能够获取到某段时间,某个app运行过的java函数

二.用法:

    以微信发送消息为例,如果我们想要知道微信点击发送到消息发送结束,这段时间都有哪些JAVA函数运行了,它的调用流程,那么我们就可以进行这样:

    首先我们在手机上,向测试账号发送一句test:

一款Android辅助利器

  在点击发送之前,需要启动ddms,并且在devices栏目表中找到com.tencent.mm,,并且点击start Method Profiling,选择trace based profiling,并且点击OK:

一款Android辅助利器

一款Android辅助利器
一款Android辅助利器
     然后在手机上点击发送,将消息发送给测试账号。点击stop Method Profiling,我们会获取到一个xxx.trace, 找到trace文件,并且启动TraceReader工具。
一款Android辅助利器
一款Android辅助利器
一款Android辅助利器

我们可以看出main线程运行了105869次,我们选择tencent作为过滤条件,然后双击main: 
一款Android辅助利器
一款Android辅助利器
一款Android辅助利器
一款Android辅助利器
三.下载:
工具已开源:https://github.com/panhongwei/TraceReader
请勿作非法用途 ,谢谢!