Android Graphics 显示系统 - 全面解读

“ 亏功一篑,未成丘山。凿井九阶,不次水泽。行百里者半九十,小狐汔济濡其尾。故曰时乎,时不再来。终终始始,是谓君子。

01

前言

Android Graphics显示系统系列文章从简单的示例入手,着眼于理论与实践,帮助开发人员快速构建安卓图像显示的基本概念和理论认知。

Android每年一个大版本的更新,图像显示系统的源码在架构和写作方式上也几经调整与修改,逻辑细节虽发生了很大的变化,但核心原理不变,本系列试图让大家理解这些“核心原理”,以不变应万变,帮助大家轻松胜任各个版本的开发及调试工作。

作为一个业余爱好者,学习的过程是漫长的,写作的过程更痛苦,该系列的笔记也不会一蹴而就或在短时间内一次完成,所以在学习过程中,我会不断的把新的笔记、新的收获更新上来。该系列笔记会在动态中不断更新,有兴趣的可以关注公众号获得持续更新!

文章难免错误,请带着审慎与批判的态度去阅读,阅读中请保持独立思考。

02

主题简介
 

该系列文章聚焦Graphics知识,从简单的Demo入手,分析图形显示基本框架和运作流程。涉及内容众多,比如SurfaceFlinger的运行机制,VSYNC信号的产生与分发,BufferQueue的工作原理,Mapper&Allocator,Fence同步机制,HWC基础框架,多屏显示,各种实用工具 ....

比如 生产者消费者模型

图片

比如 BufferQueue的工作机制

图片

比如 图形显示合成的基本流程

图片

比如 多屏显示

图片

图片

03

文章系列
 

系列文章持续更新,更多内容可以订阅 “Android Graphics” 专栏,目前已发表的文章如下:

基础篇

Android Graphics 显示系统 - 开篇

Android Graphics 显示系统 - 基本组件(一)

Android Graphics 显示系统 - 基本组件(二)

Android Graphics 显示系统 - 基本组件(三)

Android Graphics 显示系统 - Surface绘图示例(四)

Android Graphics 显示系统 - Surface绘图示例(五)

Android Graphics 显示系统 - 建立SurfaceFlinger通信的流程(六)

Android Graphics 显示系统 - SurfaceFlinger的启动与初始化(七)

Android Graphics 显示系统 - SurfaceFlinger MessageQueue机制(八)

Android Graphics 显示系统 - 创建Surface流程(九)

Android Graphics 显示系统 - 初识BufferQueue(十)

Android Graphics 显示系统 - ANativeWindow/Surface/SurfaceControl(十一)

Android Graphics 显示系统 - BufferQueue的工作流程(十二)

Android Graphics 显示系统 - BufferQueue的工作流程(十三)

Android Graphics 显示系统 - BufferQueue的工作流程(十四)

Android Graphics 显示系统 - BufferQueue的工作流程(十五)

Android Graphics 显示系统 - Surface补充知识(十六)

Android Graphics 显示系统 - SurfaceView与BufferQueue关系(十七)

Android Graphics 显示系统 - Gralloc架构及GraphicBuffer创建/传递/释放(十八)

Android Graphics 显示系统 - 简述Allocator/Mapper服务的获取流程(十九)

Android Graphics 显示系统 - GraphicBuffer同步机制-Fence(二十)

Android Graphics 显示系统 - SurfaceFlinger的GPU合成(廿一)

Android Graphics 显示系统 - 导出图层数据(dump graphic raw data)(廿二)

Android Graphics 显示系统 - 基础知识之 BitTube(廿三)

Android Graphics 显示系统 - SurfaceFlinger之VSync-1(廿四)

Android Graphics 显示系统 - SurfaceFlinger之VSync-2(廿五)

Android Graphics 显示系统 - SurfaceFlinger之VSync-3(廿六)

Android Graphics 显示系统 - HWC HAL的初始化(廿七)

Android Graphics 显示系统 - 聊聊屏幕刷新机制(廿八)

Android Graphics 显示系统 - HWC 探秘 - 1(廿九)

Android Graphics 显示系统 - HWC 探秘 - 2(三十)

Android Graphics 显示系统 - HWC 探秘 - 3(三一)

Android Graphics 显示系统 - 解读Source Crop和Display Frame(三二)

Android Graphics 显示系统 - Android 14(U)编译、运行Surface绘图示例

Android Graphics 显示系统 - Android Jank detection with FrameTimeline

Android Graphics 显示系统 - 计算FPS的原理与探秘Present Fence

Android Graphics 显示系统 - 导出指定图层Layer数据与图层合成探秘

未完待续...

多屏篇

Android Graphics 多屏同显/异显 - 开篇

Android Graphics 多屏同显/异显 - C++示例程序(标准版)

Android Graphics 多屏同显/异显 - C++示例程序(升级版)

Android Graphics 多屏同显/异显 - Demo源码分析(1)

Android Graphics 多屏同显/异显 - Demo源码分析(2)

Android Graphics 多屏同显/异显 - Demo源码分析(3)

Android Graphics 多屏同显/异显 - mirrorSurface图层镜像

Android Graphics 多屏同显/异显 - 多屏时用于GPU合成的GraphicBuffer数量

Android Graphics 显示系统 - Android 14(U)编译/运行多屏同显/异显示例

未完待续...

工具篇

Android Graphics 显示系统 - 如何模拟多(物理)显示屏?

Android Graphics 显示系统 - adb shell service命令与SurfaceFlinger调试

Android Graphics 显示系统 - BufferQueue的状态监测

Android Graphics 显示系统 - 监测、计算FPS的工具及设计分析

Android Graphics 显示系统 - 通过dumpsys SurfaceFlinger --latency计算FPS

Android Graphics 显示系统 - 使用WinScope跟踪窗口转换

未完待续...


  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值