Follow feeds: blogs, news, RSS and more. An effortless way to read and digest content of your choice.
Get Feederandroidperformance.com
Get the latest updates from Android Performance directly as they happen.
Last updated 8 days ago
5 months ago
拿到一份卡顿 Trace,大部分人的第一反应(包括早些年的我)是打开 Perfetto UI,框一段时间,看主线程、RenderThread、CPU 状态,再截几张图写结论。这个办法处理眼前问题没什么毛病,但很难回答后面的追问:换一份 Trace 是不是同样结论?换一台设备是不是同样结论?下个版本修完后,怎么确认问题没有回来?第 11 篇讲 PerfettoSQL 与 Trace...
5 months ago
打开一份 Trace 后,最麻烦的情况是:文件里看起来有数据,但中间丢过。UI 里还能看到轨道,SQL 也???查出一些行,可线程状态少了一段、进程名对不上、某些 Track Event 消失了。继续分析下去,结论会越来越像猜。SQL 只能分析 Trace 里还存在的证据。这个问题不处理好,后面的查询写得再漂亮,也只是把一份缺证据的 Trace...
5 months ago
系统 Trace 能告诉你线程什么时候运行、CPU 跑在哪个核、FrameTimeline 哪一帧超时;在启用 Binder/ftrace/sched 证据时,也能还原 Binder 调用和等待线索。但它不知道播放器正在解哪一个 frame id,也不知道游戏引擎正在加载哪个 scene,更不知道一个业务任务在队列里排了多久。这一篇只回答一个问题:业务语义怎么进入...
5 months ago
内存问题最麻烦的地方在于:数字涨了,不代表马上能知道谁在涨。dumpsys meminfo 能告诉你 RSS/PSS,Java heap dump 能告诉你对象保留关系,但 JNI/C++、Skia/Bitmap 的 CPU 侧分配、播放器里的 native...
5 months ago
很多性能问题不是点一下就能复现的。开机慢、偶发卡顿、亮灭屏后异常、几小时后音频断续、车机周期性抖动、温升后的性能下降,都不适合靠 10 秒手工 trace 解决。这一篇讲现场长 Trace:怎么提前定义窗口,怎么用 trigger 封存问题现场,怎么让文件安全写完,怎么拿回来之后判断数据是否可信。Boot Trace 放在后面作为特殊窗口处理。基础的交互式抓取方式(命令行、官方脚本、开发者选项、网页端)第 02 篇已经讲过,本文只讨论现场和长时间运行带来的差异。Perfetto...
5 months ago
FrameTimeline 标出一帧晚了,主线程、RenderThread、SurfaceFlinger 看起来都没有明显越界,这时很容易写出一句“可能是 GPU 瓶颈”。这句话风险很高:GPU 频率、GPU 计数器、电池电流、电源轨都不是 App 单帧归因工具。第 07、08 篇已经讲了 App...
5 months ago
Camera open 慢、Audio underrun、WebView 首屏卡住、Flutter/游戏掉帧,这类问题的证据会散在 App、system_server、cameraserver/audioserver、HAL、SurfaceFlinger 和调度轨道里。只在 UI 里多看几条轨道,很容易漏掉关键时间点。这一篇用 Camera 和 Audio...
5 months ago
这篇补一个很容易被启动速度和流畅度盖住的话题:交互首帧响应。它关心用户刚操作完之后,屏幕多久给出第一帧反馈;页面完整加载和动画后半段稳定性要用其他指标衡量。点一个按钮,多久出现按压态;点微信会话,多久看到会话页第一帧开始动;手指滑动列表,多久看到内容跟着手指移动。这些问题和启动慢有关,也和掉帧有关,但分析口径要单独拎出来。本文用 Perfetto 拆这段时间:从 InputReader read_time 起算,到 App 收到事件,再到第一帧 present。主指标叫 input_to_present_ms,只度量 input read...
9 days ago
Android 内部机制的资料,网上不缺。AOSP、官方文档、博客、论文、trace 讨论,想找都找得到。麻烦的是各说各的版本:这篇是 Android 12 的结论,那篇没写版本,再一篇是某台机器上的现象。AIW 想补的就是这个缺口。全称 Android Internal Wiki,中文书名是《Android 技术内幕:系统机制、性能优化与工具实战》,五部分二十六章,正文钉在 Android...
about 1 month ago
上一篇更新停在 2026 年 7 月 17 日的 v1.1.1。当时 SmartPerfetto 已经有双 Trace 工作台、Quick...
2 months ago
本文复盘 上一篇三周更新(2026-06-04,v1.0.28)之后,到 2026-07-17(v1.1.1)为止 SmartPerfetto 的全部主要改动。看完这篇文章,可以知道这六周每个功能解决什么问题、边界在哪里,以及当前版本的完整功能全景。项目地址:github.com/Gracker/SmartPerfetto。一、变化概览(2026.06.04 – 2026.07.17)这六周合入了约 150 个提交(不含 merge),发布了 13 个版本(v1.0.29...