没有合适的资源?快使用搜索试试~ 我知道了~
首页Android显示框架详细分析
资源详情
资源评论
资源推荐
架构分析(一)
高通 系列硬件架构分析
如上图,高通 系列 的硬件部分主要由下面几个部分组成:
、
高通 !"!# 内部模块,主要负责显示数据的转换和部分图像处理功能理,如 $%& 转 '(),放大缩
小、旋转等。!* 内部的 !*+!# 负责数据从 ' 到 !,+- 的传输(可以完成 '() 之间的转
换,如 '() 转成 '(),这个转换工能载目前的 +中没有使用)。
、
一种采用差分信号的高速的串行数据传输总线,只负责数据传输,无其它功能;其中的 !,+- 提
供并行数据和串行数据之间的转换和缓冲功能。由于外面是 &(# 的屏幕,数据量较大,为了减少对 .),
总线的影响,传输总线使用 !,,而非之前的 .),。
、
由于现在采用的外接 /0 并不支持 !, 接口,故需要外加 !, 转换器,即 !,+1,来把
!, 数据转换成 '() 接口数据。这里采用的 .*"23+!,)1 还有 /0+011 功能,可以
完成其它一些数据处理的功能,如数据格式转换、支持 4&52%4、*,* 等;并且还可以提供一定数量的
(*,2。目前我们主要用它把 -2"4 端 !, 传递过来的显示数据和控制数据(初始化配置等)转换成并
行的数据传递给 /0。
、
主要是 /0+161+,0+和 474+*,负责把 !,+)1 传来的显存中的图像示在自己的 * 上。
下面简单介绍一下上图中的各个 / 1:
蓝色部分-用户空间应用程序
应用程序层,其中包括 #1 应用程序以及框架和系统运行库,和底层相关的是系统运行库,而其中
和显示相关的就是 #1 的 "19+!1:+它负责对显示子系统的管理,并且为多个应用程序提
供了 和 8 图层的无缝融合。
黑色部分- 层,在 部分会有介绍
红色部分- ! 层
/;+<1,其中和显示部分相关的就是 /; 的 71)=1,它是 /; 系统中的显示部分驱动
程序接口。/; 工作在保护模式下,%1 空间的应用程序无法直接调用显卡的驱动程序来直接画屏,
71)=1 机制模仿显卡的功能,将显卡硬件结构抽象掉,可以通过 71=1 的读写直接对显存
进行操作。用户可以将 71=1 看成是显示内存的一个映像,将其映射到进程地址空间之后,就可
以直接进行读写操作,而写操作可以立即反应在屏幕上。这种操作是抽象的,统一的。用户不必关心物理
显存的位置、换页机制等等具体细节。这些都是由 71=1 设备驱动来完成的。
绿色部分- 驱动层
该部分可以看作高通显卡的驱动程序,和高通显示部分硬件相关以及外围 /0 相关的驱动都被定义在这
边,比如上述的显卡的一些特性都是在这边被初始化的,同样 !* 和 !, 相关的驱动也都定义在这里
"# 功能介绍
这里的 %1+" 就是与应用程序相关的上层部分(参考上图中的蓝色部分),其中与 >1 空间交
互的部分称之为 -$%#%。
-#/ 其实就是用户空间的驱动程序。如果想要将 #1+在某硬件平台上执行,基本上完成这些驱动程
序就行了。其内定义了 #1+对各硬件装置例如显示芯片、声音、数字相机、(*"、("!+等等的需求。
-#/ 存在的几个原因:
、 并不是所有的硬件设备都有标准的 ;+<1 的接口。
、 >1+161 涉及到 (*/ 的版权。某些设备制造商并不原因公开硬件驱动,所以才去 -#/ 方式绕
过 (*/。
8、 针对某些硬件,#1 有一些特殊的需求。
在 部分,-#/ 的实现 在 中,应用程序直接操作这些接口即可,具体的接口如下:
1+ ?;?+@;+A+BC9B1+
?;?DDE
B;:+:+C9B@;DDE
;5F6+A+-#'G#'.?.&,0.?4#(E
;5F661+A+E
;5F6+A+E
;5F6+A+? E
;5F6?11+A+?11? E设置参数
;5F6+A+E
;5F6+A+? E传送显示数据
;5F61+A+1? E
;5F#+A+!*?#/*-#?32*E
;5F7+A+E
;5F7+A+BH619H:+2?'G':+DE打开设备
&# 功能介绍
这里的 >1 空间(与 相关)是 /; 平台下的 7) 设备(参考上图中的红色部分)。下面介
绍一下 7) 设备。
7 即 71)=1 的简称。91=1+是一种能够提取图形的硬件设备,是用户进入图形界面很好
的接口。有了 91=1,用户的应用程序不需要对底层驱动有深入了解就能够做出很好的图形。对
于用户而言,它和6+下面的其他设备没有什么区别,用户可以把
91=1+看成一块内存,既可以向这块内存中写入数据,也可以从这块内存中读取数据。它允许上
层应用程序在图形模式下直接对显示缓冲区进行读写操作。这种操作是抽象的,统一的。用户不必关心物
理显存的位置、换页机制等等具体细节。这些都是由 71=1 设备驱动来完成的。
从用户的角度看,帧缓冲设备和其他位于6 下面的设备类似,它是一个字符设备,通常主设备号是
,次设备号定义帧缓冲的个数。
在 /,3%I 系统中,设备被当作文件来处理,所有的文件包括设备文件,/; 都提供了统一的操作函数
接口。上面的结构体就是 /; 为 7) 设备提供的操作函数接口。
)、读写('(%)接口,即读写屏幕缓冲区(应用程序不一定会调用该接口)
)、映射()操作(用户空间不能直接访问显存物理空间,需 成虚拟地址后才可以)
由于 /; 工作在保护模式,每个应用程序都有自己的虚拟地址空间,在应用程序中是不能直接访问物理
缓冲区地址的。为此,/; 在文件操作 J?1 结构中提供了 函数,可将文件的内容
映射到用户空间。对于帧缓冲设备,则可通过映射操作,可将屏幕缓冲区的物理地址映射到用户空间的一
段虚拟地址中,之后用户就可以通过读写这段虚拟地址访问屏幕缓冲区,在屏幕上绘图了。实际上,使用
帧缓冲设备的应用程序都是通过映射操作来显示图形的。由于映射操作都是由内核来完成,下面我们将看
到,帧缓冲驱动留给开发人员的工作并不多
8)、') 控制:对于帧缓冲设备,对设备文件的 操作可读取设置显示设备及屏幕的参数,如分辨
率,显示颜色数,屏幕大小等等。 的操作是由底层的驱动程序来完成
3:上述部分请参考文件 9。
架构分析(三)
9889
>1+"+ 架构介绍
如上图所示,除了上层的图形应用程序外,和 & 空间有关的包括 * 设备层以及和具体
相关的驱动层,对应的源文件分别是 +$,#、,+$#、,%-$#。下面会一一
介绍。
函数和数据结构介绍
这个文件包含了 *$ 设备的所有接口,主要函数接口和数据结构如下:
、*$ 设备的文件操作接口
剩余28页未读,继续阅读
yu362398583
- 粉丝: 1
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- ExcelVBA中的Range和Cells用法说明.pdf
- 基于单片机的电梯控制模型设计.doc
- 主成分分析和因子分析.pptx
- 共享笔记服务系统论文.doc
- 基于数据治理体系的数据中台实践分享.pptx
- 变压器的铭牌和额定值.pptx
- 计算机网络课程设计报告--用winsock设计Ping应用程序.doc
- 高电压技术课件:第03章 液体和固体介质的电气特性.pdf
- Oracle商务智能精华介绍.pptx
- 基于单片机的输液滴速控制系统设计文档.doc
- dw考试题 5套.pdf
- 学生档案管理系统详细设计说明书.doc
- 操作系统PPT课件.pptx
- 智慧路边停车管理系统方案.pptx
- 【企业内控系列】企业内部控制之人力资源管理控制(17页).doc
- 温度传感器分类与特点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论15