Android之渲染原理
原文地址
本文中的所有内容大部分来源于网络资料,如有侵权请联系本人修改或删除,请大家多多支持原创!非常感谢!
渲染框架图
通过对源码的解析,需要理解上图中的每个流程,从而了解整个渲染体系。比如屏幕刷新机制
、SurfaceFlinger
、硬件绘制
、软件绘制
、RenderThread
等内容。
前置知识
系统启动流程
首先需要对 Android 启动流程进行了解,这里针对此内容模块进行介绍,详细可移步Android-14-源码分析之启动流程
- init 进程
在 Android 开机到 Linux 内核启动后,第一件事情就是启动 init 进程。它是第一用户空间进程,进程号为1。 - SufaceFlinger 进程
由 init 进程启动,职责包括“请求/监听/分发 vsync 信号”、”合成与送显“。 - Zygote 进程
由 init 进程启动,应用程序进程与SystemServer
进程由它通过 fork 进行创建。同时,它创建了虚拟机,所以由它 fork 而来的应用程序进程和SystemServer
可以在内部获取一个虚拟机副本。 - WindowManagerServcie 系统服务
由SystemServer
进程创建的系统服务,职责包括:
窗口管理:例如窗口的大小、层级Sufrace
管理: Surface 是 App 获取渲染缓冲区的媒介。 - Launcher 进程(桌面)
由 AMS 启动,并通过 Zygote fork 创建进程。它的职责包括“显示系统已经安装的应用程序”,”启动其他应用程序进程“。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 落雪のBlog!