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/

相关推荐
独行soc9 小时前
2026年渗透测试面试题总结-20(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
常利兵10 小时前
2026年,Android开发已死?不,它正迎来黄金时代!
android
Risehuxyc10 小时前
备份三个PHP程序
android·开发语言·php
Doro再努力20 小时前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim
Daniel李华20 小时前
echarts使用案例
android·javascript·echarts
做人不要太理性21 小时前
CANN Runtime 运行时组件深度解析:任务调度机制、存储管理策略与维测体系构建逻辑
android·运维·魔珐星云
我命由我1234521 小时前
Android 广播 - 静态注册与动态注册对广播接收器实例创建的影响
android·java·开发语言·java-ee·android studio·android-studio·android runtime
朗迹 - 张伟1 天前
Tauri2 导出 Android 详细教程
android
lpruoyu1 天前
【Android第一行代码学习笔记】Android架构_四大组件_权限_持久化_通知_异步_服务
android·笔记·学习
独自破碎E1 天前
【BISHI15】小红的夹吃棋
android·java·开发语言