Android 发布全新性能分析器,实用性和性能大升级

Android Performance Analyzer (APA) 是 Android 新的 profiler 和 performance analysis 工具,主要是用在整个 Android 生态的性能分析 ,特别是偏向 App / Game / Vulkan / GPU / 系统级 trace 场景。

一般它会用在我们熟悉的分析 CPU、GPU、Memory 、Power 、还有 App / Game 与系统行为之间的关系,整体偏向系统级性能观测,比如:CPU core 调度、频率、线程活动、GPU counters、SurfaceFlinger、帧耗时、功耗、截图时间线等。

而 APA 其实是 Samsung Austin Research Center (SARC) 和 LunarG 合作开发的,它依靠 Perfetto 进行系统跟踪,后续还会推出的帧分析/调试功能(依赖 LunarG 的 GFXReconstruct 的图形捕获和回放)。

目前 APA 有两个不同渠道版本:

独立的桌面应 App 不需要 Android Studio 项目和 Gradle 构建也可以使用,还提供对录制配置的深度自定义、用于图形分析的内置 Vulkan 层、对 GPU 计数器的深度检查等等,支持 Windows、MacOS 和 Linux 上原生运行 。

这个独立 App 用的 CMP 做的哦

基本功能

APA 可以选择在启动时或手动触发时从设备捕获跟踪数据,App 上可以选择跟踪中捕获的 GPU 计数器和其他数据,如果需要自定义,还可以配置:

css 复制代码
duration_ms: 10000
​
buffers {
  size_kb: 65536
  fill_policy: RING_BUFFER
}
​
data_sources {
  config {
    name: "linux.ftrace"
    target_buffer: 0
    ftrace_config {
      ftrace_events: "sched_switch"
      ftrace_events: "sched_wakeup"
    }
  }
}duration_ms: 10000
​
buffers {
  size_kb: 65536
  fill_policy: RING_BUFFER
}
​
data_sources {
  config {
    name: "linux.ftrace"
    target_buffer: 0
    ftrace_config {
      ftrace_events: "sched_switch"
      ftrace_events: "sched_wakeup"
    }
  }
}

然后运行 perfetto --txt -c config.pbtx -o trace_file.perfetto-trace

然后通过 APA,你就可以在一个 UI 里分析整个系统的运行情况,比如 CPU 的频率和上面调度的任务,或者检查进程和对应的线程活动,

对于图形密集型应用,APA 提供来自高通、Arm、Imagination 和三星等厂商的 GPU 性能计数器数据,你甚至可以跟踪电池和功耗

另外,为了准确了解帧的运行时间,SurfaceFlinger 事件提供了对「渲染」和「显示合成管线」的深入挖掘,涵盖从「初始代码获取」到「最终显示」的所有环节,同时借助全新的屏幕截图功能,就可以直观看到问题。

此之外,还可以打开现有的 Perfetto 轨迹,缩放时间轴查看细节,并使用标尺测量工作和事件的持续时间,然后在添加书签和注释,甚至将关键轨迹 PIN 到顶部。

另外 APA 采用项目模型,可以通过 project 跟踪多个测试结果,这在收集 A/B 测试和纵向测试的结果比较实用,并且可以将所有结果集中在一起:

最有意思的是,利用屏幕截图进行可视化导航 ,APA 可以通过屏幕截图进行导航来梳理时间线,通过浏览时间线来快速定位影响性能的区:

另外,APA 还支持渲染通道的 Vulkan Debug Markers*,开发者可以直接在 APA 中显示的跟踪和切片中查看从代码库设置的渲染通道名称:

除此之外,还可以利用 AI 构建 SQL 查询以进行自定义分析 ,APA 支持通过 SQL 查询进行跟踪分析,并附带一项全新的 Perfetto SQL 技能,可以和任何 AI 代理配合使用:

另外还添加了另一项 Perfetto 分析技能,可以回答诸如「为什么我的应用程序启动速度很慢?」之类的高级问题,帮助在分析复杂跟踪记录时找到切入点。

最后还有 FPS 和帧持续时间,可以在跟踪中查看 FPS 和帧持续时间:

当然,最重要的是,现在 APA 渲染跟踪的速度通常比 Android GPU Inspector 快 6 到 26 倍,同时在处理大型跟踪时,APA 的稳定性明显更高。

比如 Forge 团队就利用 APA 找到了需要批量调用 vkCmdBindDescriptorSets,从而将 CPU 设置成本降低了约 50%。反过来又降低了设备的发热量降低了 2-3 倍,延长了会话时间,然后还利用 APA 发现了将字体和 UI 渲染工作转移到 GPU 的场景,提高了可扩展性:

Netmarble 利用 APA 对游戏进行了微调,重点是通过改变着色器的精度来提高性能,最终将某些场景的 GPU 渲染成本降低高达 90%:

Google 自己的 Filament 也类似,通过 APA 测试了各种场景,找到 GPU 处理能力不足的复杂场景,以及如何通过改进纹理压缩和优化几何体来降低复杂度,从而达到 60FPS 的目标帧率,降低了内存消耗:

那它和以前 Android 工具链的关系是什么?其实 Android 很早就有 Perfetto 了,但是 Perfetto UI 对很多 App / 游戏团队来说还是偏底层工具,而 APA 的价值是把 Perfetto 的系统级 trace 能力包装成更面向 Android 开发者的 UI 和工作流。

另外之前 Android GPU Inspector ,官方这次也直接拿 APA 和 Android GPU Inspector 做了对比,说 APA 渲染 trace 的速度通常比 AGI 快 6x 到 26x,并且在处理大型 traces 时更稳定,说明它也覆盖了 GPU Inspector。

最后就是 Android Studio System Trace Viewer,APA 会作为 Android Studio Panda 4 Canary 及之后版本的更新版 System Trace Viewer 集成进去,也就是也有他就是全新的 System Trace Viewer,还支持联动 AI ,可以说已经 Android 的性能优化可以更搞笑了。

所以,我选择下载独立 App 。

链接

developer.android.com/android-per...

相关推荐
运维自动化&云计算4 小时前
修复chrome把mp4视频识别为音频、firefox不能加载mp4问题
服务器·前端·iis·mp4播放
ZC跨境爬虫4 小时前
模块化烹饪小程序开发日记 Day5:(后端Flask接口开发与AI智能解析菜谱的实现)
前端·人工智能·后端·python·ui·flask
燐妤4 小时前
前端HTML编程6:ES6与前后端交互
前端·javascript·学习·html5
右耳朵猫AI4 小时前
React技术周刊 2026年第16周
前端·react.js·前端框架
Kapaseker4 小时前
为什么 Java 的数组需要 new 出来
android·java·kotlin
丷丩4 小时前
工程级MVT地图瓦片服务器Web前端架构设计文档
前端·vue·gis·pinia·geoai-up
小鹿软件办公4 小时前
Google 在 Chrome 和搜索中加入 SynthID AI 图像检测功能
前端·人工智能·chrome
海兰4 小时前
【实用程序】图片处理服务,前端应用 (Vue 3 + Pinia + Vite)后端服务 (Node.js + Express + Sharp)
前端·javascript·vue.js·node.js·pinia
是谁眉眼4 小时前
css讲解
前端