显示系统概述
Android显示系统的核心是SurfaceFlinger ,由SF统一控制操作显示设备(FB),大致框架如下
01_display.drawio.png
- SF通过gralloc模块向APP提供Buffer用于绘制;
1.1 SF通过gralloc模块向ash mem申请内存,并得到一个fd;
1.2 通过Binder把fd传给APP;
1.3 APP 通过mmap(fd')内存映射,进行绘制; - APP客户端把各自界面发给SF,他根据层次、大小进行合成和显示;
2.1 根据个界面的Z值进行排序(WMS确定);
2.2 把这些排序后的buffer传给HardWareComposer; - 如果HWC不能处理则使用OpenGL处理;
- 合成渲染后的界面写到FrameBuffer传给显示设备。