Android Performance

Android Systrace -- 系列文章目录

Word count: 1.6kReading time: 6 min
2019/05/26
loading

随着 Systrace 的功能越来越完善,加上 Android 版本的更迭,之前写的 Systrace 系列教程已经有点过时;另外随着自己技能的完善,从 Systrace 里挖掘了更多的信息,对解决各种性能问题很有帮助。这些技能我需要记录下来,增强自己的总结和归纳的能力,如果能帮助到看文章的人,也是极好的

本系列的目的是通过 Systrace 这个工具,从另外一个角度来看待 Android 系统整体的运行,同时也从另外一个角度来对 Framework 进行学习。也许你看了很多讲 Framework 的文章,但是总是记不住代码,或者不清楚其运行的流程,也许从 Systrace 这个图形化的角度,你可以理解的更深入一些。

随着 Google 宣布 Systrace 工具停更,推出 Perfetto 工具,Perfetto 在我的日常工作中已经基本能取代 Systrace 工具。同时 Oppo、Vivo 等大厂也已经把 Systrace 切换成了 Perfetto,许多新接触 Android 性能优化的小伙伴对于 Perfetto 那眼花缭乱的界面和复杂的功能感觉头疼,希望我能把之前的那些 Systrace 文章使用 Perfetto 来呈现。

本系列旨在通过 Perfetto 这个工具,从一个新的视角审视 Android 系统的整体运作方式。此外,它还旨在提供一个不同的角度来学习 App 、 Framework、Linux 等关键模块。尽管你可能已经阅读过许多关于 Android Framework、App 、性能优化的文章,但或许因为难以记住代码或不明白其运行流程,你仍感到困惑。通过 Perfetto 这个图形化工具,你可能会获得更深入的理解。

Perfetto 系列目录

  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. 视频(B站) - Android Perfetto 基础和案例分享

Systrace 系列文章目录

本篇文章是一个目录,之后的文章更新后,会在这里进行汇总,内容如下:

  1. Systrace 简介
  2. Systrace 基础知识 - Systrace 预备知识
  3. Systrace 基础知识 - Why 60 fps ?
  4. Systrace 基础知识 - SystemServer 解读
  5. Systrace 基础知识 - SurfaceFlinger 解读
  6. Systrace 基础知识 - Input 解读
  7. Systrace 基础知识 - Vsync 解读
  8. Systrace 基础知识 - Vsync-App :基于 Choreographer 的渲染机制详解
  9. Systrace 基础知识 - MainThread 和 RenderThread 解读
  10. Systrace 基础知识 - Binder 和锁竞争解读
  11. Systrace 基础知识 - Triple Buffer 解读
  12. Systrace 基础知识 - CPU Info 解读
  13. Systrace 流畅性实战 1 :了解卡顿原理
  14. Systrace 流畅性实战 2 :案例分析: MIUI 桌面滑动卡顿分析
  15. Systrace 流畅性实战 3 :卡顿分析过程中的一些疑问
  16. Systrace 响应速度实战 1 :了解响应速度原理
  17. Systrace 响应速度实战 2 :响应速度实战分析-以启动速度为例
  18. Systrace 响应速度实战 3 :响应速度延伸知识
  19. Systrace 线程 CPU 运行状态分析技巧 - Runnable 篇
  20. Systrace 线程 CPU 运行状态分析技巧 - Running 篇
  21. Systrace 线程 CPU 运行状态分析技巧 - Sleep 和 Uninterruptible Sleep 篇

2023-10 update:

开始准备 Perfetto 系列

面向读者群

本系列的文章既适用于应用开发者,也适用于系统开发者,我会在写作的时候兼顾两者。作为一名系统开发者,我大概理了一下我的优势:

  1. 有系统源码,可以很方便地进行调试和修改代码,并随时在手机上看到结果
  2. 对系统框架有一定的了解
  3. 对系统调优有一定的了解

基于上面几点,我在写作的时候也会利用这些优势,给大家带来不太一样的:

  1. 通过 Systrace 来学习 Android Framework
  2. 修改某些系统配置,让大家看看结果:比如 Buffer 个数对应用的影响
  3. 介绍一些系统厂商在做系统的时候的考虑和取舍
  4. 介绍一些应用开发时候你不会注意但是很重要的点

更新日志

计划是每周更新一篇,给自己一个目标 ,给自己一个交代吧。

  1. 2018-03-30 目录更新:Systrace 系列文章目录
  2. 2018-04-01 更新文章:Systrace 基础知识 - Why 60 fps ?
  3. 2019-07-23 更新文章:Systrace 基础知识 - Systrace 预备知识
  4. 2019-10-22 更新问题:Systrace 基础知识 - Vsync-App :基于 Choreographer 的渲染机制详解
  5. 2019-11-04 更新文章:Systrace 基础知识 - Input 解读
  6. 2019-11-06 更新文章:Systrace 基础知识 - MainThread 和 RenderThread 解读
  7. 2019-12-01 更新文章:Systrace 基础知识 - Vsync 解读
  8. 2019-12-06 更新文章: Systrace 基础知识 - Binder 和锁竞争解读
  9. 2019-12-15 更新文章:Systrace 基础知识 - Triple Buffer 解读
  10. 2019-12-21 更新文章:Systrace 基础知识 - CPU Info 解读
  11. 2020-02-04 更新文章:Systrace 基础知识 - SystemServer 解读
  12. 2020-02-14 更新文章:Systrace 基础知识 - SurfaceFlinger 解读
  13. 2021-04-24 更新文章:Systrace 流畅性实战 1 :了解卡顿原理
  14. 2021-04-24 更新文章:Systrace 流畅性实战 2 :案例分析: MIUI 桌面滑动卡顿分析
  15. 2021-04-24 更新文章:Systrace 流畅性实战 3 :卡顿分析过程中的一些疑问
  16. 2021-10-28 更新文章:Systrace 响应速度实战 1 :了解响应速度原理
  17. 2021-10-28 更新文章:Systrace 响应速度实战 2 :响应速度实战分析-以启动速度为例
  18. 2021-10-28 更新文章:Systrace 响应速度实战 3 :响应速度延伸知识

关于我 && 博客

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

  1. 博主个人介绍 :里面有个人的微信和微信群链接。
  2. 本博客内容导航 :个人博客内容的一个导航。
  3. 个人整理和搜集的优秀博客文章 - Android 性能优化必知必会 :欢迎大家自荐和推荐 (微信私聊即可)
  4. Android性能优化知识星球 : 欢迎加入,多谢支持~

一个人可以走的更快 , 一群人可以走的更远

微信扫一扫

CATALOG
  1. 1. Perfetto 系列目录
  2. 2. Systrace 系列文章目录
    1. 2.1. 面向读者群
    2. 2.2. 更新日志
  3. 3. 关于我 && 博客