Anroid Perfetto

一、Perfetto 基础介绍

adb shell perfetto 是 Android 系统中调用 Perfetto 追踪工具的核心方式,Perfetto 是 Google 推出的高性能系统追踪工具(替代旧版 Systrace),支持追踪 CPU、内存、GPU、进程 / 线程调度、网络、系统调用、UI 渲染等全维度系统行为,适配 Android 10+(低版本需手动部署二进制文件)。

二、核心用法(adb shell perfetto)

1. 快速录制(极简模式)

直接使用预定义追踪类别,快速生成 trace 文件(适合简单调试):

复制代码
# 录制10秒,输出到默认可写目录,追踪CPU调度、频率、UI渲染等基础维度
adb shell perfetto -o /data/misc/perfetto-traces/trace_file.perfetto-trace -t 10s sched freq idle am wm gfx view binder_driver hal dalvik camera input res memory

关键参数说明

  • -o:指定 trace 文件输出路径(/data/misc/perfetto-traces/ 是系统默认可写目录);
  • -t:录制时长(支持 s/ms/m,如 10s5000ms1m);
  • 后续的 sched/freq 等是预定义追踪类别,常用类别:
类别 追踪内容
sched CPU 进程 / 线程调度
freq CPU 频率变化
idle CPU 空闲状态
am ActivityManager 事件
wm WindowManager 事件
gfx 图形渲染(VSync、GPU 绘制)
view View 测量 / 布局 / 绘制
memory 内存分配 / 回收
binder_driver Binder IPC 通信
dalvik ART 虚拟机(GC、JIT)
2 导出 trace 文件到电脑
复制代码
adb pull /data/misc/perfetto-traces/trace_file.perfetto-trace e:/temp/Perfetto/Perfetto01  # 导出到电脑

三、分析 trace 文件

  1. 打开 Perfetto 官方分析 UI:https://ui.perfetto.dev/
  2. 点击「Open trace file」上传导出的文件;

四、app 如何加trace

复制代码
//java  加trace

import android.os.Trace;

  public void onDrawFrame(GL10 gl10) {

        mIndex++;
        Trace.traceBegin(Trace.TRACE_TAG_APP, "onDrawFrame_"+mIndex);
        
        .....
   
        Trace.traceEnd(Trace.TRACE_TAG_APP);

    }


//ndk native 加 trace


#include <android/trace.h>

void HelloVK::render() {
    ATrace_beginSection("render");
    
    ....
    
    ATrace_endSection();
}

注意**,**app 加的trace 要起作用, 需要参数指定(-a app_pkg), 不加的话adb shell perfetto 抓不到app加的trace

adb shell perfetto -o /data/misc/perfetto-traces/trace_file.perfetto-trace -t 1s -a com.hzqg.ardisplay sched freq idle am wm gfx view binder_driver hal dalvik camera input res memory

总结

  • adb命令

adb shell perfetto -o /data/misc/perfetto-traces/trace_file.perfetto-trace -t 1s -a com.hzqg.ardisplay sched freq idle am wm gfx view binder_driver hal dalvik camera input res memory

  • 导出到电脑

adb pull /data/misc/perfetto-traces/trace_file.perfetto-trace e:/temp/Perfetto/Perfetto07

  • 打开方式

https://ui.perfetto.dev/

相关推荐
2501_915909061 小时前
深度解析 iOS 内存占用,构建多工具协同的内存诊断、监控与优化体系
android·ios·小程序·https·uni-app·iphone·webview
sang_xb1 小时前
深入解析 HashMap:从存储架构到性能优化
android·java·性能优化·架构
啃火龙果的兔子2 小时前
android studio运行下载gradle特别慢怎么处理
android·ide·android studio
qq_296544652 小时前
安卓手机投屏电脑端教程,手机投屏教程,可以手机和电脑互传文件。电脑管理手机文件和APP等操作
android·智能手机·电脑
我的offer在哪里2 小时前
MySQL 高频细节问题(覆盖性能、存储、运维、故障排查,补充前文未深入的核心细节)
android·运维·mysql
qq_717410012 小时前
删除设置-声音-有来电时响铃并振动,手机铃声
android
dazhong20122 小时前
Android Studio 安装之历史版本下载问题解决
android·ide·android studio
灰度少爷3 小时前
安卓手机投屏软件——QtScrcpy!
android·智能手机·安卓手机投屏软件
2501_915918413 小时前
iOS CPU 使用率深度分析,多工具协同定位高占用瓶颈的工程化方法
android·ios·小程序·https·uni-app·iphone·webview