当前位置: 首页 > news >正文

使用adb 抓取perfetto-trace的注意事项

序言

在使用adb命令抓取perfetto-trace的时候需要注意,需要有root权限。

如果出现这个错误。

Failed to open /data/misc/perfetto-traces/xxx. If you get permission denied in /data/misc/perfetto-traces, the file might have been created by another user, try deleting it first. (errno: 13, Permission denied)

可以尝试下面的方法

adb root
adb shell rm -rf /data/misc/perfetto-traces/
adb shell setprop persist.traced.enable 0等待一段时间adb shell setprop persist.traced.enable 1
adb unroot

命令解释

  1. adb root
    作用:以 root 权限重启 adbd(ADB 守护进程),使后续通过 adb shell 执行的命令具有 root 权限。
    说明:不是所有设备都支持这个命令,只有解锁了 bootloader 或使用了用户调试版本(userdebug 或 eng)的系统才允许 root 权限。
  2. adb shell rm -rf /data/misc/perfetto-traces/
    作用:删除 /data/misc/perfetto-traces/ 目录及其内容。
    说明:
    Perfetto 是 Android 的系统级性能追踪工具。
    这个目录通常存储着之前生成的 Perfetto 性能追踪文件(.perfetto-trace)。
    删除该目录是为了清理旧数据,避免干扰新的追踪操作。
  3. adb shell setprop persist.traced.enable 0
    作用:关闭 Android 系统中的 traced 服务(Perfetto 后台守护进程)。
    说明:
    setprop 是设置系统属性的命令。
    persist.traced.enable 是一个持久化属性,控制是否启用 traced 服务。
    设置为 0 表示禁用;设置为 1 表示启用。
    使用 persist. 前缀意味着该设置会在重启后仍然生效。
    👇 等待一段时间
    目的:让系统有时间完全停止 traced 服务。
    说明:这是为了确保下一条启用命令可以干净地重新启动服务。
  4. adb shell setprop persist.traced.enable 1
    作用:重新启用 traced 服务。
    说明:这会触发系统重新启动 Perfetto 的后台服务,准备进行新一轮的性能追踪。
  5. adb unroot
    作用:恢复 adbd 到非 root 模式。
    说明:执行完需要 root 权限的操作后,恢复到普通权限,提升安全性。
    ✅ 整体流程用途总结:
    这段命令的典型用途可能是:

清理并重置 Android 系统上的 Perfetto 跟踪服务,以便进行新的性能分析。

常用于以下场景:

清理之前的 Perfetto 跟踪文件;
确保 Perfetto 服务被正确重启;
在自动化测试或性能基准测试前准备环境。

如果在非root的手机上执行上面的命令会出现下面的提示。
在这里插入图片描述

抓取

下面是抓取20秒的。

adb shell perfetto -o /data/misc/perfetto-traces/trace_file.perfetto-trace -t 20s sched freq idle am wm gfx view

保存到电脑

adb pull /data/misc/perfetto-traces/trace_file.perfetto-trace E:\perfetto\out3.perfetto-trace

其他方法

如果手机没有root的话可以用系统开发中的功能。
在这里插入图片描述

http://www.xdnf.cn/news/1002727.html

相关文章:

  • [Blender] 高质量材质推荐第四弹:25-30号精选纹理资源详解
  • iOS App上线前的安全防线:项目后期如何用Ipa Guard与其他工具完成高效混淆部署
  • 安全-Linux基线核查项点
  • Web APIS Day06
  • 面向对象 设计模式简述(1.创建型模式)
  • 脱离 Kubernetes,基于原生 Spring Cloud + 云 API 的轻量级自管理微服务平台架构设计
  • pikachu靶场通关笔记27 SQL注入10-宽字节注入
  • 网络安全攻防领域证书
  • leetcode 从中序与后序序列 or 从前序与中序序列 构造二叉树 java
  • docker 网络
  • 【MV】key_moments 与 continuous_timeline的编排权衡
  • Git 清理指南:如何从版本库中移除误提交的文件(保留本地文件)
  • 解决数字超出不会自动换行问题
  • HNCTF部分总结复现
  • 力扣刷题——二分查找
  • Android 开发中,Intent 和 Bundle 组件间传递数据的几种方式
  • 基于Node.js的线上教学系统的设计与实现(源码+论文+调试+安装+售后)
  • 如何“下载安转Allure”?
  • #pragma pack的作用
  • 海外广告投放|FB IG 速推帖子有效吗?
  • 2.倒排索引
  • Mitsubishi GX Works3 / GOT3 的惡意工程混淆邏輯注入攻擊
  • Parasoft C++Test软件集成测试(部件测试)_实例讲解
  • C++的学习路径
  • 第一个简单的爬虫
  • 一起了解--CAST函数
  • C++上学抄近路 动态规划算法实现 CCF信息学奥赛C++ 中小学普及组 CSP-J C++算法案例学习
  • Spring Boot 项目中如何划分事务边界,避免长事务?
  • yolo11学习笔记
  • ajax访问阿里云天气接口,获取7天天气