EN

「置顶」博客文章目录 + 个人项目

Word count: 5.6kReading time: 21 min
2019/12/01
loading

本博客内容主要集中在 Android 开发和优化相关的话题,包括一些性能工具的使用、Android App 优化知识、Android Framework 知识讲解,性能理论知识讲解等,这里整理了一份目录供大家参考,大家可以挑感兴趣的部分来看。这里不仅仅包含博客中的内容,一些我在 知乎 或者 知识星球 - The Performance 的回答也会放到这里,不过这个目录里面放的都是我原创的博客,另外还收集了一些优秀文章,我也会不定期更新 Android 性能优化必知必会

文章索引在前,工具、App 和内容项目集中在后面的个人项目。新增:AIW 开源介绍 · AIW GitHub 仓库

博客的每次更新都会更新这篇目录,方便大家查阅。我会尽量保证每周一更,学无止境,与大家共勉,有什么想了解的或者博客中不足的地方,请大家在博客或者知乎、微博、微信留言给我,我会积极改正。

理论知识

  1. Android 性能优化的术、道、器
  2. The Performance 星球茶话会 - 第一期
  3. OS 设计之性能设计

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 为主。

  1. Android Perfetto 系列目录
  2. Android Perfetto 系列 1:Perfetto 工具简介
  3. Android Perfetto 系列 2:Perfetto Trace 抓取
  4. Android Perfetto 系列 3:熟悉 Perfetto View
  5. Android Perfetto 系列 4:使用命令行在本地打开超大 Trace
  6. Android Perfetto 系列 5:Android App 基于 Choreographer 的渲染流程
  7. Android Perfetto 系列 6:为什么是 120Hz?高刷新率的优势与挑战
  8. Android Perfetto 系列 7 - MainThread 和 RenderThread 解读
  9. Android Perfetto 系列 8:深入理解 Vsync 机制与性能分析
  10. Android Perfetto 系列 9 - CPU 信息解读
  11. Android Perfetto 系列 10 - Binder 调度与锁竞争
  12. Android Perfetto 系列 11:PerfettoSQL、Trace Processor 与回归检测
  13. Android Perfetto 系列 12:Trace 数据流与丢失排查
  14. Android Perfetto 系列 13:Perfetto SDK、Track Event 与 App 现场 Trace
  15. Android Perfetto 系列 14:heapprofd 与内存 Profiling
  16. Android Perfetto 系列 15:Boot Trace、长时间现场 Trace 与偶发问题抓取
  17. Android Perfetto 系列 16:GPU、Power Counters 与硬件瓶颈分析
  18. Android Perfetto 系列 17:专项场景自动化、问题清单与平台体系
  19. Android Perfetto 系列 18:响应速度实战,从输入事件到首帧反馈
  20. 视频(B站) - Android Perfetto 基础和案例分享
  21. 视频(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 调度与锁竞争
  1. Systrace 简介
  2. Systrace 基础知识 - Systrace 预备知识
  3. Systrace 基础知识 - Why 60 fps ?
  4. Systrace 基础知识 - SystemServer 解读
  5. Systrace 基础知识 - Input 解读
  6. Systrace 基础知识 - Vsync 产生与工作机制解读
  7. Systrace 基础知识 - Vsync-App :基于 Choreographer 的渲染机制详解
  8. Systrace 基础知识 - MainThread 和 RenderThread 解读
  9. Systrace 基础知识 - Binder 和锁竞争解读
  10. Systrace 基础知识 - Triple Buffer 解读
  11. Systrace 基础知识 - CPU Info 解读
  12. Systrace 基础知识 - SystemServer 解读
  13. Systrace 基础知识 - SurfaceFlinger 解读
  14. Systrace 流畅性实战 1 :了解卡顿原理
  15. Systrace 流畅性实战 2 :案例分析: MIUI 桌面滑动卡顿分析
  16. Systrace 流畅性实战 3 :卡顿分析过程中的一些疑问
  17. Systrace 响应速度实战 1 :了解响应速度原理
  18. Systrace 响应速度实战 2 :响应速度实战分析-以启动速度为例
  19. Systrace 响应速度实战 3 :响应速度延伸知识
  20. Systrace 线程 CPU 运行状态分析技巧 - Runnable 篇
  21. Systrace 线程 CPU 运行状态分析技巧 - Running 篇
  22. Systrace 线程 CPU 运行状态分析技巧 - Sleep 和 Uninterruptible Sleep 篇

流畅性

流畅性主要指的是卡顿、掉帧,对应的英文是 Smooth vs Jank

  1. Android 中的卡顿丢帧原因概述 - 方法论
  2. Android 中的卡顿丢帧原因概述 - 系统篇
  3. Android 中的卡顿丢帧原因概述 - 应用篇
  4. Android 中的卡顿丢帧原因概述 - 低内存篇
  5. 关于 Android 系统流畅性的一些思考
  6. 新的流畅体验,90Hz 漫谈
  7. Android性能优化之过渡绘制(一)
  8. Android性能优化之过渡绘制( 二)
  9. Android性能优化后续
  10. 华为手机刷微博体验更好?技术角度的一些分析和思考

响应速度

响应速度主要指的是 App 冷热启动、界面跳转速度、亮灭屏速度等,对应的英文是 Fast vs Slow

  1. Android App 启动优化全记录
  2. 知乎 救救你的 StartingWindow
  3. Android 中如何计算 App 的启动时间?
  4. Android 应用启动优化:一种 DelayLoad 的实现和原理(上篇)
  5. Android 应用启动优化:一种 DelayLoad 的实现和原理(下篇)

ANR

主要记录 Android ANR 相关的文章

  1. Android App ANR 系列 1 :深入理解 Android ANR 机制
  2. Android App ANR 系列 2 :ANR 分析套路和关键 Log 介绍
  3. Android App ANR 系列 3 :ANR 案例分享

内存

主要记录 Android 内存优化相关的知识和工具,以及对系统的影响

  1. Android 中低内存对性能的影响
  2. Android 系统不释放内存吗?
  3. Android 代码内存优化建议-Android 资源篇
  4. Android 代码内存优化建议-Android 官方篇
  5. Android 代码内存优化建议-Java 官方篇
  6. Android 内存优化之一:MAT 使用入门
  7. Android内存优化之二:MAT使用进阶
  8. Android内存优化之三:打开MAT中的Bitmap原图

Framework 知识

博客中 Framework 相关的内容会集中在这里,包括一些 Framework 的运行原理、Framework 问题的解题思路、Framework 优化方法等

  1. 当 App 有了系统权限,真的可以为所欲为?
  2. Android 中的“后台无效动画“行为分析
  3. Android 框架问题分析案例 - 谁杀了桌面?
  4. Android 中的 Activity Launch Mode 详解
  5. Android 中的 Hardware Layer 详解
  6. Android 平台应用宝和讯飞输入法无障碍服务导致的全局卡顿分析
  7. Android hwui 中 RenderThread 工作流程
  8. HashMap 源码分析
  9. 细说Java单例模式
  10. Android 系统开发源码环境搭建
  11. Android App 链式唤醒分析
  12. 一个「闰」字引发的事故 - 三星系统重启分析
  13. Android 系统开发系列(1):Android 12 源代码下载、编译和刷机

App 开发

这里主要记录一些 App 开发相关的博文,由于写的比较早,大家随便看一下就可以了

  1. Android Bottom navigation 规范一:使用方法
  2. Android Bottom navigation 规范二:样式、行为与规格
  3. Android Service:开发自己的通知中心(1):辅助性服务介绍
  4. Android Service:开发自己的通知中心(2):辅助性服务实战
  5. Android开发:Log2File工具类
  6. Android:Ubuntu下执行Adb命令找不到设备
  7. Android小技巧:如何让EditText不自动获取焦点

个人总结和好物推荐

与技术无关,但是可以提高幸福感和工作效率

  1. 2023 年的方方面面
  2. 回顾 2021
  3. 我是 Gracker,这是我的利器
  4. Gracker 的 2018 年度最推荐 - 给辛勤工作的自己一点奖励
  5. 陆奇:除了好代码,工程师怎样才算优秀?
  6. 2017 年度最推荐 - 给辛勤工作的自己一点奖励
  7. 关于 2017
  8. Android 开发者学习路线(2020 版本)
  9. 我的 2020 年读书单

读书笔记

  1. 一本讲 Android 流畅性的书,应该有什么内容?
  2. 程序员的修炼-01:绝地反击之术
  3. 程序员的修炼-02:编程之道
  4. 程序员的修炼-03:Web 设计原则
  5. 程序员的修炼-04:关于测试的一些思考
  6. 程序员的修炼-05:了解你的用户
  7. 程序员的修炼-06:互联网那些事
  8. 程序员的修炼-07:游戏与编程
  9. 程序员的修炼-08:阅读之美

性能优化典范和 Tips

性能优化典范是 Google 出品的一系列性能相关的短视频,总共出了 6 季,之前想的是每一集都来一个文章配合,后面发现不是很现实;Android Tips 则是翻译的另外一个博主的文章

  1. Android性能优化典范综述
  2. Android性能优化典范之Render Performance
  3. Android性能优化典范之Understanding Overdraw
  4. Android性能优化典范之Understanding VSYNC
  5. Android性能优化典范之Profile GPU Rendering
  6. Android Tips 1 
  7. Android Tips 2 
  8. Android Tips 3
  9. Android Tips 4
  10. Android Tips 5

知乎问答

知乎专栏会搬运一部分文章,这里只贴一些高赞的回答

  1. 个人知乎主页 ,欢迎大家点赞关注
  2. 如何看待小米部分机型运行《王者荣耀》时两个大核被锁
  3. Flyme 5 相对于 Flyme 4 流畅得脱胎换骨,其中根本的变化是什么?
  4. Android 系统不释放内存吗?
  5. 了解Android的Framework层对工作有什么帮助吗?
  6. 怎么看待三星大量手机在今天(5.23)凌晨系统崩溃并数据丢失?

Android Weekly

  1. 掘金专栏地址掘金专栏 - Android Weekly
  2. 知乎专栏地址Android Weekly, 欢迎大家点赞收藏

Android Weekly 文章

Android Weekly 在掘金和知乎专栏连载,博客不单独存档:

  1. 掘金专栏 - Android Weekly
  2. 知乎专栏 - 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,包含系统机制、性能问题、工具方法、系统与厂商优化、应用性能实践。

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 meminfodumpsys 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 性能和功耗测试平台。

这个仓库按性能负载测试套件设计:

Systrace / Perfetto 辅助工具与历史 Demo

这里放长期工具和历史文章配套 Demo:

Android App / Java 历史项目

这里主要是学习项目、文章配套工程和早期工具:

资料库、站点和翻译

工具和 Demo 之外,我还维护过一些资料整理、站点和翻译项目:

完整公开仓库以 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、性能优化和工程工具。

周刊入口:

个人页

下面是个人的介绍和相关的链接,期望与同行的各位多多交流,三人行,则必有我师!

  1. 个人博客: 写东西的地方
  2. 博主个人介绍 :里面有个人的微信和微信群链接。
  3. 个人整理和搜集的优秀博客文章 - Android 性能优化必知必会 :欢迎大家自荐和推荐 (微信私聊即可)
  4. 微信公众号
    微信公众号二维码
  5. 知乎
  6. 邮箱订阅
  7. 掘金

个人演讲 && 培训 PPT

这一部分整理之后会放出来,不过大家都知道,演讲或者培训的时候,PPT 里面不会有太多的东西,多数只是一个大纲

  1. 视频(B站) - Android Perfetto 基础和案例分享
  2. 视频(B站) - Android Perfetto 分享 - 出图类型分享:AOSP、WebView、Flutter + OEM 系统优化分享

知识星球

The Performance 已于 2026 年停止运营,不再接受新成员。 原有的性能分析基础、工具使用和案例分析内容,后续会陆续整理进博客和 Android Internal Wiki

CATALOG
  1. 1. 理论知识
  2. 2. Perfetto 系列
  3. 3. Systrace 系列
  4. 4. 流畅性
  5. 5. 响应速度
  6. 6. ANR
  7. 7. 内存
  8. 8. Framework 知识
  9. 9. App 开发
  10. 10. 个人总结和好物推荐
  11. 11. 读书笔记
  12. 12. 性能优化典范和 Tips
  13. 13. 知乎问答
  14. 14. Android Weekly
    1. 14.1. Android Weekly 文章
  15. 15. 个人项目
    1. 15.1. Android 性能分析生态
    2. 15.2. 主线方向
    3. 15.3. 公开项目
      1. 15.3.1. Android Internal Wiki(AIW)
      2. 15.3.2. SmartPerfetto
      3. 15.3.3. Android App Memory Analysis
      4. 15.3.4. TraceFix
      5. 15.3.5. Perfetto Auto-Pin
      6. 15.3.6. High Performance Friends Circle
      7. 15.3.7. Systrace / Perfetto 辅助工具与历史 Demo
      8. 15.3.8. Android App / Java 历史项目
      9. 15.3.9. 资料库、站点和翻译
      10. 15.3.10. SmartProtobuf
    4. 15.4. AI 与自动化项目
      1. 15.4.1. OpenClaw
      2. 15.4.2. AI Field Notes
      3. 15.4.3. Gracker Skills
      4. 15.4.4. Open Design
    5. 15.5. 正在做的 App
      1. 15.5.1. 100Years
      2. 15.5.2. iBattery
      3. 15.5.3. Juju
    6. 15.6. 内容项目
      1. 15.6.1. Android Performance 博客
      2. 15.6.2. Android Weekly
  16. 16. 个人页
  17. 17. 个人演讲 && 培训 PPT
  18. 18. 知识星球