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/

相关推荐
似霰7 小时前
AIDL Hal 开发笔记2----AIDL HAL 实例分析light hal
android·framework·hal
—Qeyser7 小时前
Flutter 颜色完全指南
android·flutter·ios
2501_916008898 小时前
iOS 上架需要哪些准备,账号、Bundle ID、证书、描述文件、安装测试及上传
android·ios·小程序·https·uni-app·iphone·webview
摘星编程10 小时前
React Native for OpenHarmony 实战:DatePickerAndroid 日期选择器详解
android·react native·react.js
花卷HJ12 小时前
Android 沉浸式全屏实践:主题 + 状态栏文字颜色完整方案
android
花卷HJ14 小时前
Android 项目中 BaseActivity 封装实践(支持 ViewBinding、PermissionUtils动态权限、加载弹窗和跳转动画)
android
消失的旧时光-194315 小时前
Android 接入 Flutter(Add-to-App)最小闭环:10 分钟跑起第一个混合页面
android·flutter
城东米粉儿15 小时前
android StrictMode 笔记
android
Zender Han16 小时前
Flutter Android 启动页 & App 图标替换(不使用任何插件的完整实践)
android·flutter·ios
童无极16 小时前
Android 弹幕君APP开发实战01
android