安卓native层抓trace
trace命令:
perfetto --time 20s --buffer 512mb gfx view input webview wm am sm audio video camera hal dalvik res rs bionic pm ss database network disk sched freq idle binder_lock binder_driver gpu_mem/gpu_mem_total skia --out /data/misc/perfetto-traces/process.pftrace
trace加tag:
#include <cutils/trace.h>
#define ATRACE_TAG ATRACE_TAG_ALWAYS //要指定tag
ATRACE_BEGIN("trace");
ATRACE_END();
ATRACE_ENABLED(); //可能需要mm
trace分析:
Perfetto UI (注意浏览器,可用 Microsoft Edge版本 131.0.2903.99 (正式版本) (64 位))
抓火焰图:
方法可以参考(simpleperf record -t $PID --duration 30 -o /data/perf.data --call-graph dwarf)