android 中“am profile” 命令的来龙去脉

本文详细介绍了Android中'am profile'命令的使用方法及其背后的实现原理。从启动和停止trace收集,到如何通过traceview分析,再到源码层面,揭示了'am profile'如何利用binder机制和消息机制在ActivityManagerService中执行,以及最终如何通过Debug.startMethodTracing进行方法追踪。
摘要由CSDN通过智能技术生成

命令的用法:

         由于项目原因,需要用am profile 命令来收集目标进程运行过程中的函数调用关系,其用法直接在通过adb 登录真机或模拟器(./adb shell)之后运行 am 即可得到:

   开始收集: am profile start profiling: am profile <PROCESS> start <FILE>

   停止收集: am profile <PROCESS> stop

(其中<PROCESS> 是所要收集的进程,直接用进程号即可, <FILE>是收集后trace所在的文件,一般直接放在/sdcard 目录下,所以直接用/sdcard/文件名 即可。)

         通过以上命令可以收集到正确的trace,但该trace 是不可读得。要分析该trace 只需通过 ./adb pull 命令将/sdcard 下的trace 文件pull到本地然后运行源码(已编译)中该目录“out/host/linux-x86/bin” 下的 traceview 命令(./traceview    xxx ,其来龙去脉留做下一篇分析)。该命令运行完之后便可以生成图形界面

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值