-
adb连接手机,编译APP完成后,输入以下命令
java -jar rhea-trace-shell.jar -a ${your app package name} -t 10 -o output.pb -r rhea.all sched -fullClassName
例如:
每次重启
java -Xmx4096m -jar /Users/xxx/Desktop/rhea-trace-processor-2.0.0.jar -a com.xxx.xxx -t 10 -o /Users/xxx/Desktop/trace/output.pb sched -fullClassName -mainThreadOnly -r
不重启
java -Xmx4096m -jar /Users/xxx/Desktop/rhea-trace-processor-2.0.0.jar -a com.xxx.xxx -t 10 -o /Users/xxx/Desktop/trace/output.pb sched -fullClassName -mainThreadOnly
-
java -Xmx4096m是为了解决生成pb文件时OOM
-
生成trace 产物,使用ui.perfetto.dev/ 即可打开分析
可选参数
参数
默认值
说明
-o $outputPath
当前时间.pb
指定产物 trace 保存路径,默认值会根据时间戳自动生成
-t $timeInSecond
5
指定这次采集的时长,单位是秒
-mode $mode
根据设备而定
指定采集 Trace 的模式,目前支持两种模式:perfetto: 8.1 及以上系统默认模式,可以采集到您的应用函数执行 trace 以及系统 atrace 和 ftrace;simple: 8.1 以下系统默认模式,可以采集到您的应用函数执行 trace 以及系统 atrace
-maxAppTraceBufferSize $size
500000000
采集 Trace 时的 buffer 大小,单位是字节,一般而言,您不需要配置此参数,除非您遇到下面类似的提醒:MaxAppTraceBufferSize is too small. Expected 100515704 Actual 100000000. Add -maxAppTraceBufferSize 100515704 to your command注意:maxAppTraceBufferSize 仅在 App 启动后的首次 trace 时生效
-threshold $ns
0
采集函数耗时阈值,单位纳秒。采集时长较长时该参数可减小产物体积
-s $serial
指定 adb 连接的设备
-mainThreadOnly
仅采集主线程 trace
-r
自动重启以抓取启动过程的 trace
-fullClassName
trace 信息默认是不包含包名的,此参数可开启包名
rhea.binder
开启 binder 信息增强
rhea.render
开启渲染监控能力
rhea.io
开启 IO 监控能力
rhea.thread
开启线程创建监控能力
rhea.block
开启 park/unpark/wait/notify 监控功能
rhea.all
开启上述所有 RheaTrace 增强的监控能力
-debug
打印调试日志
--list
查看设备支持的 category 列表