[Android禅修之路] Android 图形系统开篇
theme: channing-cyan
[Android禅修之路] 图形系统开篇
一 概述
Android 的图形系统可以说是 Android 中最重要的系统之一, 它包含了 Android 系统的显示, 刷新等机制, 贯穿了 Android 的硬件层 和 native 层, 以及应用层。在我们探究 Android 的刷新机制,卡顿原因,显示原理等等方面时,图形系统都是必须了解的。
要想学习这样一个系统,必然不可能一蹴而就,所以本文,也将作为图形系统源码研究的大纲和目录。当然,虽说是大纲和目录,但是实际上也是边写边改,因为很多的观点随着学习的不断深入都会发生改变。
1.1 学习方法
Android 的图形系统是一个非常复杂的系统,在探究 Android 图形系统的时候,经常会遇到一些机制(或者说是知识点),如果不了解这些机制,就会对系统中的一些代码似懂非懂。但是如果深入的研究这些机制,又容易陷入浩瀚的源码海洋中,迷失最初的目标。
基于上述原因,所以我决定在阅读源码的时候,按照以下几个步骤进行
- 先制定每一步想要学习的目标,针对制定的目标理清图形系统的主要流程。
- 了解制定目标的主要流程以及一些细节。但对于其中的涉及到其他较为复杂的机制的部分,先假设自己已经了解。
- 针对不同的机制点,单独研究,了解这些机制的工作原理。
- 将已经熟悉了的机制带入系统的工作流程,巩固之前的学习。
鉴于以上的学习步骤,对于系统源码的研究,必然不可能只是一遍而过,更多时候会是先学习A点而忽略B点,学习完A点之后再学习B点,最后学习完B点之后再把B带入A中再学一遍,这将会是以上螺旋上升的过程。
二 目录
2.1 SurfaceFlinger 工作原理
SurfaceFlinger的启动过程:SurfaceFlinger是 Android 系统中非常重要的一个服务,Android 系统会在启动系统服务的时候启动它。所以我们需要了解 SurfaceFlinger 是如何启动的,即它的启动过程
SurfaceFlinger的工作原理:SurfaceFlinger 在启动之后,就会启动它的工作线程。我们需要了解 SurfaceFlinger 是如何工作的,它的工作流程和原理是什么。
2.2 SurfaceFlinger 中的机制解读
解读 Vsync 机制:Vsync 机制是 Android 系统刷新机制中非常重要的机制之一,它是由硬件产生的,最后传递到软件的。那么它是如何产生的,如何传递的。这其中的涉及到的硬件有哪些,软件又有哪些?
Android 系统的刷新涉及到多个进程,甚至还涉及到了CPU和GPU,那么这些图像数据是如何保存的,图像的数据比一般的数据大很多,是通过什么方式传递的呢?
多个进程同时使用这些图像数据的时候,又是如何同步的呢?
解读 Fence 同步机制:Android 图形系统中,同步就是通过 Fence 机制完成的。\
解读 GraphicBuffer:图像就是通过 GraphicBuffer 保存的。
未完待续...
- Activity启动源码解析(Android12)
- 从MediaServer看Binder的使用方式(一)
- 从MediaServer看Binder的使用方式(二)
- [Android禅修之路] 解读Layer
- [Android禅修之路] Android图形系统,从Activity到Surface
- [Android禅修之路] 解读 GraphicBuffer 之 Framework 层
- [Android禅修之路] 解读SurfaceFlinger中的BufferQueue
- [Android禅修之路] SurfaceFlinger 合成中的工作
- [Android禅修之路] SurfaceFlinger 中的一些对象
- [Android禅修之路] SurfaceFlinger 合成前的预处理
- [Android禅修之路] SurfaceFlinger合成总览
- [Android禅修之路] SurfaceFlinger的启动过程
- [Android禅修之路] Android 图形系统开篇