本博客内容主要集中在 Android 开发和优化相关的话题,包括一些性能工具的使用、Android App 优化知识、Android Framework 知识讲解,性能理论知识讲解等,这里整理了一份目录供大家参考,大家可以挑感兴趣的部分来看。这里不仅仅包含博客中的内容,一些我在 知乎 或者 知识星球 - The Performance 的回答也会放到这里,不过这个目录里面放的都是我原创的博客,另外还收集了一些优秀文章,我也会不定期更新 Android 性能优化必知必会。
文章索引在前,工具、App 和内容项目集中在后面的个人项目。新增:AIW 开源介绍 · AIW GitHub 仓库。
博客的每次更新都会更新这篇目录,方便大家查阅。我会尽量保证每周一更,学无止境,与大家共勉,有什么想了解的或者博客中不足的地方,请大家在博客或者知乎、微博、微信留言给我,我会积极改正。
理论知识
Perfetto 系列
随着 Google 宣布 Systrace 工具停更,推出 Perfetto 工具,Perfetto 在我的日常工作中已经基本能取代 Systrace 工具。同时 Oppo、Vivo 等大厂也已经把 Systrace 切换成了 Perfetto,许多新接触 Android 性能优化的小伙伴对于 Perfetto 那眼花缭乱的界面和复杂的功能感觉头疼,希望我能把之前的那些 Systrace 文章使用 Perfetto 来呈现。
现在阅读这两组文章时,需要把“机制”和“工具流程”拆开看。旧 Systrace 文章主要讲机制:线程状态、Vsync、Input、SurfaceFlinger、Binder 等分析方法仍然能复用。新的抓取和分析流程应该切到 Perfetto:Android 10 之后系统录制出来主要是 .perfetto-trace,优先用 Perfetto UI 打开;如果需要看旧 Systrace 视图,可以在 Perfetto UI 里使用 legacy UI,但默认分析路径应以 Perfetto 的轨道、搜索、SQL 和 trace_processor 为主。
- Android Perfetto 系列目录
- Android Perfetto 系列 1:Perfetto 工具简介
- Android Perfetto 系列 2:Perfetto Trace 抓取
- Android Perfetto 系列 3:熟悉 Perfetto View
- Android Perfetto 系列 4:使用命令行在本地打开超大 Trace
- Android Perfetto 系列 5:Android App 基于 Choreographer 的渲染流程
- Android Perfetto 系列 6:为什么是 120Hz?高刷新率的优势与挑战
- Android Perfetto 系列 7 - MainThread 和 RenderThread 解读
- Android Perfetto 系列 8:深入理解 Vsync 机制与性能分析
- Android Perfetto 系列 9 - CPU 信息解读
- Android Perfetto 系列 10 - Binder 调度与锁竞争
- Android Perfetto 系列 11:PerfettoSQL、Trace Processor 与回归检测
- Android Perfetto 系列 12:Trace 数据流与丢失排查
- Android Perfetto 系列 13:Perfetto SDK、Track Event 与 App 现场 Trace
- Android Perfetto 系列 14:heapprofd 与内存 Profiling
- Android Perfetto 系列 15:Boot Trace、长时间现场 Trace 与偶发问题抓取
- Android Perfetto 系列 16:GPU、Power Counters 与硬件瓶颈分析
- Android Perfetto 系列 17:专项场景自动化、问题清单与平台体系
- Android Perfetto 系列 18:响应速度实战,从输入事件到首帧反馈
- 视频(B站) - Android Perfetto 基础和案例分享
- 视频(B站) - Android Perfetto 分享 - 出图类型分享:AOSP、WebView、Flutter + OEM 系统优化分享
Systrace 系列
Systrace 工具是分析 Android 性能问题的利器,它可以从一个图形的角度,来展现整机的运行情况。Systrace 工具不仅可以分析性能问题,用它来进行 Framework 的学习也是很好的,这也是我写本系列文章的一个原因。
如果现在从这组文章开始读,可以按下面的方式迁移到 Perfetto:
| Systrace 文章方向 | 对应的 Perfetto 阅读路径 |
|---|---|
| 工具简介、抓取方式、界面操作 | Perfetto 工具简介 / Perfetto Trace 抓取 / 熟悉 Perfetto View |
| Why 60 fps、高刷新率 | 为什么是 120Hz? |
| Choreographer、MainThread、RenderThread、流畅性实战 | Choreographer 渲染流程 / MainThread 和 RenderThread |
| Vsync、SurfaceFlinger、Triple Buffer | Vsync 机制与性能分析 |
| CPU、Runnable、Running、Sleep | CPU 信息解读 |
| Binder、锁竞争、SystemServer 等待 | Binder 调度与锁竞争 |
- Systrace 简介
- Systrace 基础知识 - Systrace 预备知识
- Systrace 基础知识 - Why 60 fps ?
- Systrace 基础知识 - SystemServer 解读
- Systrace 基础知识 - Input 解读
- Systrace 基础知识 - Vsync 产生与工作机制解读
- Systrace 基础知识 - Vsync-App :基于 Choreographer 的渲染机制详解
- Systrace 基础知识 - MainThread 和 RenderThread 解读
- Systrace 基础知识 - Binder 和锁竞争解读
- Systrace 基础知识 - Triple Buffer 解读
- Systrace 基础知识 - CPU Info 解读
- Systrace 基础知识 - SystemServer 解读
- Systrace 基础知识 - SurfaceFlinger 解读
- Systrace 流畅性实战 1 :了解卡顿原理
- Systrace 流畅性实战 2 :案例分析: MIUI 桌面滑动卡顿分析
- Systrace 流畅性实战 3 :卡顿分析过程中的一些疑问
- Systrace 响应速度实战 1 :了解响应速度原理
- Systrace 响应速度实战 2 :响应速度实战分析-以启动速度为例
- Systrace 响应速度实战 3 :响应速度延伸知识
- Systrace 线程 CPU 运行状态分析技巧 - Runnable 篇
- Systrace 线程 CPU 运行状态分析技巧 - Running 篇
- Systrace 线程 CPU 运行状态分析技巧 - Sleep 和 Uninterruptible Sleep 篇
流畅性
流畅性主要指的是卡顿、掉帧,对应的英文是 Smooth vs Jank
- Android 中的卡顿丢帧原因概述 - 方法论
- Android 中的卡顿丢帧原因概述 - 系统篇
- Android 中的卡顿丢帧原因概述 - 应用篇
- Android 中的卡顿丢帧原因概述 - 低内存篇
- 关于 Android 系统流畅性的一些思考
- 新的流畅体验,90Hz 漫谈
- Android性能优化之过渡绘制(一)
- Android性能优化之过渡绘制( 二)
- Android性能优化后续
- 华为手机刷微博体验更好?技术角度的一些分析和思考
响应速度
响应速度主要指的是 App 冷热启动、界面跳转速度、亮灭屏速度等,对应的英文是 Fast vs Slow
- Android App 启动优化全记录
- 知乎 救救你的 StartingWindow
- Android 中如何计算 App 的启动时间?
- Android 应用启动优化:一种 DelayLoad 的实现和原理(上篇)
- Android 应用启动优化:一种 DelayLoad 的实现和原理(下篇)
ANR
主要记录 Android ANR 相关的文章
- Android App ANR 系列 1 :深入理解 Android ANR 机制
- Android App ANR 系列 2 :ANR 分析套路和关键 Log 介绍
- Android App ANR 系列 3 :ANR 案例分享
内存
主要记录 Android 内存优化相关的知识和工具,以及对系统的影响
- Android 中低内存对性能的影响
- Android 系统不释放内存吗?
- Android 代码内存优化建议-Android 资源篇
- Android 代码内存优化建议-Android 官方篇
- Android 代码内存优化建议-Java 官方篇
- Android 内存优化之一:MAT 使用入门
- Android内存优化之二:MAT使用进阶
- Android内存优化之三:打开MAT中的Bitmap原图
Framework 知识
博客中 Framework 相关的内容会集中在这里,包括一些 Framework 的运行原理、Framework 问题的解题思路、Framework 优化方法等
- 当 App 有了系统权限,真的可以为所欲为?
- Android 中的“后台无效动画“行为分析
- Android 框架问题分析案例 - 谁杀了桌面?
- Android 中的 Activity Launch Mode 详解
- Android 中的 Hardware Layer 详解
- Android 平台应用宝和讯飞输入法无障碍服务导致的全局卡顿分析
- Android hwui 中 RenderThread 工作流程
- HashMap 源码分析
- 细说Java单例模式
- Android 系统开发源码环境搭建
- Android App 链式唤醒分析
- 一个「闰」字引发的事故 - 三星系统重启分析
- Android 系统开发系列(1):Android 12 源代码下载、编译和刷机
App 开发
这里主要记录一些 App 开发相关的博文,由于写的比较早,大家随便看一下就可以了
- Android Bottom navigation 规范一:使用方法
- Android Bottom navigation 规范二:样式、行为与规格
- Android Service:开发自己的通知中心(1):辅助性服务介绍
- Android Service:开发自己的通知中心(2):辅助性服务实战
- Android开发:Log2File工具类
- Android:Ubuntu下执行Adb命令找不到设备
- Android小技巧:如何让EditText不自动获取焦点
个人总结和好物推荐
与技术无关,但是可以提高幸福感和工作效率
- 2023 年的方方面面
- 回顾 2021
- 我是 Gracker,这是我的利器
- Gracker 的 2018 年度最推荐 - 给辛勤工作的自己一点奖励
- 陆奇:除了好代码,工程师怎样才算优秀?
- 2017 年度最推荐 - 给辛勤工作的自己一点奖励
- 关于 2017
- Android 开发者学习路线(2020 版本)
- 我的 2020 年读书单
读书笔记
- 一本讲 Android 流畅性的书,应该有什么内容?
- 程序员的修炼-01:绝地反击之术
- 程序员的修炼-02:编程之道
- 程序员的修炼-03:Web 设计原则
- 程序员的修炼-04:关于测试的一些思考
- 程序员的修炼-05:了解你的用户
- 程序员的修炼-06:互联网那些事
- 程序员的修炼-07:游戏与编程
- 程序员的修炼-08:阅读之美
性能优化典范和 Tips
性能优化典范是 Google 出品的一系列性能相关的短视频,总共出了 6 季,之前想的是每一集都来一个文章配合,后面发现不是很现实;Android Tips 则是翻译的另外一个博主的文章
- Android性能优化典范综述
- Android性能优化典范之Render Performance
- Android性能优化典范之Understanding Overdraw
- Android性能优化典范之Understanding VSYNC
- Android性能优化典范之Profile GPU Rendering
- Android Tips 1
- Android Tips 2
- Android Tips 3
- Android Tips 4
- Android Tips 5
知乎问答
知乎专栏会搬运一部分文章,这里只贴一些高赞的回答
- 个人知乎主页 ,欢迎大家点赞关注
- 如何看待小米部分机型运行《王者荣耀》时两个大核被锁
- Flyme 5 相对于 Flyme 4 流畅得脱胎换骨,其中根本的变化是什么?
- Android 系统不释放内存吗?
- 了解Android的Framework层对工作有什么帮助吗?
- 怎么看待三星大量手机在今天(5.23)凌晨系统崩溃并数据丢失?
Android Weekly
- 掘金专栏地址 :掘金专栏 - Android Weekly
- 知乎专栏地址 :Android Weekly, 欢迎大家点赞收藏
Android Weekly 文章
Android Weekly 在掘金和知乎专栏连载,博客不单独存档:
个人项目
这里汇总我的工具、App、AI 自动化和内容项目。原文《我做了什么》保留,项目入口集中在这份目录里查阅。
Android 性能分析生态
Android Performance Ecosystem 通过导航 Hub 与七个核心项目,把可选插桩、采集、分析、系统知识与可复现案例连接成一套完整路径。
| 阶段 | 项目 | 作用 | 地址 |
|---|---|---|---|
| 导航 | Android Performance Ecosystem | 维护统一项目地图、交接元数据、README 导航区块与漂移检查。 | GitHub |
| 插桩 | TraceFix | 在编译期注入 App 侧 android.os.Trace section,让方法执行在运行时 Trace 中可见。 | GitHub |
| 采集与测量 | Perfetto Tools | 抓取可复现的 Perfetto Trace,并采集 FPS 或 Simpleperf 测量结果。 | GitHub |
| 分析 | SmartPerfetto | 通过 AI 辅助 Web UI、CLI、报告、会话、对比和证据工作流分析 Trace。 | GitHub |
| Agent 分析 | Perfetto Skills | 为 Agent 提供可移植的 Android、Linux、Chromium Perfetto 分析 Skill,并通过固定版本流程同步选定资产。 | GitHub |
| 学习 | Android Performance Blog | 通过文章、系统原理和案例复盘讲解 Perfetto 与 Systrace 分析。 | AndroidPerformance.com · GitHub |
| 系统知识 | Android Internal Wiki(AIW) | 处于 alpha 阶段的 Android 系统知识库,覆盖 App、Framework、Native 与 Kernel 机制。 | GitHub |
| 复现 | Trace for Blog (SystraceForBlog) | 提供文章使用的 Perfetto、Systrace 及相关案例文件,支持动手复现。 | GitHub |
各项目可以按需要单独使用:需要补充 App 方法轨道时用 TraceFix,采集用 Perfetto Tools,分析时选择 SmartPerfetto 或 Perfetto Skills;系统机制参考博客和 AIW,文章案例到 SystraceForBlog 下载复现。
主线方向
- Android 系统性能与稳定性:日常工作和长期写作都围绕 Android Framework、APM、Perfetto、Systrace、启动、卡顿、ANR、内存和功耗展开。
- Perfetto 和 Trace 分析工具:把手工看 Trace 的经验做成工具、脚本、Skill 和可复用的分析流程。
- AI Agent 与个人自动化:用 OpenClaw、Claude Code、Codex、Obsidian、Telegram 和定时任务管理资料、日报、知识库、写作和工程协作。
- 个人 App:做 iOS / Android 端的小产品,把真实需求做成完整 App。
- 技术写作与资料整理:维护 Android Performance 博客、Android Weekly、AI Field Notes 和若干公开 Skill。
公开项目
Android Internal Wiki(AIW)
Android Internal Wiki 是《Android 技术内幕:系统机制、性能优化与工具实战》的仓库。全书分五部分、二十六章,覆盖 App、Framework、Native 与 Kernel,包含系统机制、性能问题、工具方法、系统与厂商优化、应用性能实践。
- 开源介绍:耗时大半年,开源一本 Android 电子书
- 完整目录
- EPUB 电子书下载
- 贡献说明:勘误时附上 Android 版本、源码路径和可复核的观察点。
SmartPerfetto
SmartPerfetto 是我现在投入最多的开源项目。它在 Perfetto 之上增加 AI Assistant:用户加载 trace 后,可以用自然语言提问,后端通过 trace_processor_shell、SQL、YAML Skill 和场景策略组织证据,再给出分析结论。
目前包含这些部分:
- Perfetto UI fork:Gracker/perfetto,用于承载 AI Assistant 插件。
- TypeScript 后端:负责 Agent 运行、MCP 工具调用、Skill 执行、报告生成和流式输出。
- YAML Skill 与场景策略:把滑动、启动、ANR、Binder、CPU、内存、渲染管线等分析经验写成可执行单元。
- 相关长文:SmartPerfetto 开源介绍、架构深度解析、架构 Q&A。
Android App Memory Analysis
Android-App-Memory-Analysis 是一个 Android App 内存分析工具集,目标是把 dumpsys meminfo、dumpsys gfxinfo、HPROF、smaps 等数据放在同一次分析里看。
适合这些场景:
- 一键从连接设备上抓取目标 App 的内存相关数据。
- 关联 Java heap、Native memory、图形内存和进程视角数据。
- 输出可读报告,减少手工切换命令和文件的成本。
- 跟进 Android 16 / API 36、16 KB page size、edge-to-edge 等新版本兼容检查。
TraceFix
TraceFix 是一个 Android 字节码插桩插件,用来在编译期给方法自动插入 android.os.Trace.beginSection/endSection。
TraceFix 解决手工加 Trace 点太慢、容易漏点的问题。它在构建阶段自动给方法加 trace section,然后在 Perfetto 里查看调用耗时。当前已发布 Maven Central artifact:io.github.gracker:TraceFix:0.1.0。
Perfetto Auto-Pin
Perfetto-AutoPin-For-Chrome 是一个 Chrome 插件,用来在 Perfetto UI 里自动 pin 常用轨道。
它内置 Frame Analysis、Startup Analysis、Input Response、Memory Analysis、Binder Calls、SurfaceFlinger、SystemUI、CPU 等场景预设,也支持自定义轨道集合。目标是减少打开 trace 后重复展开和 pin 轨道的动作。
High Performance Friends Circle
Friends-Circle-Demo-Apks-For-Power-and-Performance-Test 是一个基于朋友圈 UI 的 Android 性能和功耗测试平台。
这个仓库按性能负载测试套件设计:
- 覆盖启动、滑动、页面切换等常见场景。
- 包含多种 UI 技术栈和多种负载强度。
- 用来观察主线程、RenderThread、SurfaceFlinger、CPU、功耗和帧表现。
- 配套 Flutter 版本:Friends-Circle-Demo-Flutter-Apks-For-Power-and-Performance-Test。
Systrace / Perfetto 辅助工具与历史 Demo
这里放长期工具和历史文章配套 Demo:
- SystraceForBlog:博客文章使用过的 Systrace 附件和案例材料。
- SystraceAnalysis:早期用于分析 systrace / ftrace 的工具。
- android_cpu_usage_calculation:Android CPU 使用率计算相关脚本。
- FPSDump:FPS 数据采集相关 Demo。
- GameBench:Android 游戏性能测试工具,包含 server 和 client。
- Android-FPS-Calculation:Android FPS 计算 Demo。
- Android_HardwareLayer_Example:硬件层动画性能测试示例。
- DelayLoadSample:Android DelayLoad 示例项目。
- ListHeaderAnimationPerformance:列表 Header 动画性能测试。
- AndroidLunchModeTest:Android launch mode 测试 Demo。
- AndroidUML:基于 PlantUML 整理的 Android UML 资料。
Android App / Java 历史项目
这里主要是学习项目、文章配套工程和早期工具:
- Cats:Kotlin 练习和个人 App Demo。
- Girls:Gank 客户端练手项目。
- Flutter-Gank:Flutter 练手项目。
- FriendsCircle_Flutter_Demo:朋友圈 Flutter Demo。
- SlideDelete-ListView:支持侧滑删除的 ListView 示例。
- Android-NumberLimitEditText:输入长度限制 EditText。
- SystemMonitor:Android 系统监控示例。
- JavaReflect:Java 反射测试。
- AndroidInterview-PrintAllViews:View 树打印相关 Demo。
- MemoryAnalysisTools:早期内存分析工具。
- Fragment-NetEase:早期 Fragment 基础框架,已归档。
资料库、站点和翻译
工具和 Demo 之外,我还维护过一些资料整理、站点和翻译项目:
- awesome-android-ai-dev-sources:个人订阅和收集的技术人、博客和开发资料入口。
- Gracker.github.io:Android Performance 博客部署仓库。
- hexo-theme-reading:早期 Hexo 博客主题。
- claude-code-from-source-zh-cn:Claude Code from Source 简体中文翻译版。
完整公开仓库以 GitHub 主页为准。这篇文章只放和长期方向、博客内容、工具项目、App 项目关系更近的链接。
SmartProtobuf
SmartProtobuf 是 Protobuf / Trace 数据结构方向的工具项目。公开信息整理完成后,这里会补仓库地址、使用方式和文章链接;在此之前,先不放不稳定地址。
AI 与自动化项目
OpenClaw
OpenClaw 是我最近长期使用的本地 AI 自动化系统。这套系统接入 Telegram、Obsidian、定时任务、本地模型、云端模型和工程工具,用来做信息流整理、知识库维护、日报复盘、GitHub 监控、论文精读、内容素材归档和工程协作。
相关实践文章:
AI Field Notes
awesome-ai-field-notes 是一个由 OpenClaw 每日自动维护的 AI 领域资料库,在线站点是 godofgpt.com。
这个站点持续采集、去重、分类、评分、翻译和生成页面,内容覆盖模型、Agent、AI 编程、基础设施、行业观察和学习资源。对我来说,这是 AI 信息流的长期资料库,也是 OpenClaw 自动化能力的一个公开样本。
Gracker Skills
我把自己常用的一些写作、调研和画图流程整理成了公开 Skill:
- gracker-writing:技术文章写作 Skill,适用于技术深度文章、工具实战复盘、FAQ、方法论和公众号长文。
- gracker-deep-research-skill:三阶段深度调研 Skill,本地资料扫描、探索落盘、离线写作分开处理。
- gracker-diagrams-skill:技术图、架构图、信息图生成 Skill。
Open Design
open-design 是我 fork 并参与维护的开源设计工具方向项目。这个项目把本地 coding agent、设计系统、Skill、导出和预览放在同一套工作流里,让网页、移动端原型、幻灯片、图片和视频生成更接近真实设计生产过程。
正在做的 App
100Years
100Years 是一个 iOS 长寿预测与健康分析 App。它结合 HealthKit、生活方式、体检报告、运动、睡眠、营养、心理状态和 AI 分析,估算活到 100 岁的概率、预期寿命和健康寿命。
100Years 目前还在产品打磨阶段,源码仓库暂不公开。项目按完整 App 标准推进:数据导入、医学指标、AI 解读、HealthKit 同步、SwiftUI 设计系统、本地化和发布前检查都会持续做。
iBattery
iBattery 是一个给骑行用户做的设备电量监控 App。iOS 版本用于监控蓝牙运动设备,比如功率计、心率带、电子变速、踏频器、骑行台和码表。
核心功能包括:
- 自动发现和分类附近的蓝牙运动设备。
- 实时读取电量并做低电量提醒。
- 支持 iOS Widget,把常用设备电量放到桌面。
- 支持多语言、本地缓存、通知和主题设置。
iOS 仓库当前暂不公开;Android 版本也在本地进行中,目标是把 iOS 体验迁移到 Android。
Juju
Juju 是一个给家人使用的 Android 成长记录 App,用来记录孩子年龄、里程碑、照片和桌面小组件。它偏私人使用场景,当前不作为公开开源项目推广。
内容项目
Android Performance 博客
这个博客是我维护时间最长的公开内容站点:androidperformance.com。
主要内容包括:
- 博客文章目录:所有主要文章的总索引。
- Perfetto 系列:从 Perfetto 工具、抓取、UI、SQL、Trace Processor、Binder、CPU、Vsync、RenderThread 到后续自动化分析。
- Systrace 系列:Android 运行机制、线程状态、Vsync、Input、SurfaceFlinger、Binder、Triple Buffer、SystemServer 等。
- 流畅性与响应速度:启动、滑动、掉帧、低内存、CPU、Runnable / Running / Sleep 状态。
- ANR、内存、Framework、App 开发、读书笔记、好物推荐和知乎问答。
Android Weekly
Android Weekly 是我维护的免费技术周刊,覆盖 Android、Linux、iOS、Flutter、性能优化和工程工具。
周刊入口:
个人页
下面是个人的介绍和相关的链接,期望与同行的各位多多交流,三人行,则必有我师!
- 个人博客: 写东西的地方
- 博主个人介绍 :里面有个人的微信和微信群链接。
- 个人整理和搜集的优秀博客文章 - Android 性能优化必知必会 :欢迎大家自荐和推荐 (微信私聊即可)
- 微信公众号

- 知乎
- 邮箱订阅
- 掘金
个人演讲 && 培训 PPT
这一部分整理之后会放出来,不过大家都知道,演讲或者培训的时候,PPT 里面不会有太多的东西,多数只是一个大纲
- 视频(B站) - Android Perfetto 基础和案例分享
- 视频(B站) - Android Perfetto 分享 - 出图类型分享:AOSP、WebView、Flutter + OEM 系统优化分享
知识星球
The Performance 已于 2026 年停止运营,不再接受新成员。 原有的性能分析基础、工具使用和案例分析内容,后续会陆续整理进博客和 Android Internal Wiki。