Android图形系统的分析与移植--二、Android显示系统软件架构分析

Android系统软件架构图如图1所示:

Android图形系统的分析与移植 -- 二、Android显示系统软件架构分析_第1张图片

图1 Android系统软件架构图

其中蓝色部分和显示相关。同时在Surface Manager所在的核心服务层和Display Driver所在的操作系统内核层中间还存在着一层硬件抽象层,里面包含gralloc、overlay等和显示相关的抽象层硬件模块。

下面简单介绍一下上图中的各个层:

上面两层为用户空间应用程序,属于应用程序层,其中包括Android应用程序以及框架和系统运行库,和底层相关的是系统运行库,而其中和显示相关的就是Android的Surface Manager,它负责对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。

第三层为HAL层,是与Kernel内核空间交互的部分。HAL其实就是用户空间的驱动程序,如果想要将Android在谋硬件平台上执行,基本上完成这些驱动就行了,其内定义了Android对个硬件装置例如显示芯片、声音、数字相机、GPS、GSM等等的需求。

操作系统内核层中和显示部分相关的就是Linux的FrameBuffer,它是Linux系统中的显示部分驱动程序接口。Linux工作在保护模式下,User空间的应用程序无法直接调用显卡的驱动程序来直接画屏,FrameBuffer机制模仿显卡的功能,将显卡硬件结构抽象掉,可以通过Framebuffer的读写直接对显存进行操作。用户可以将Framebuffer看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操作可以立即反应在屏幕上。这种操作是抽象的,统一的。用户不必关心物理显存的位置、换页机制等等具体细节。这些都是由 Framebuffer设备驱动来完成的。

最底层为硬件驱动层,可以看做是硬件显卡的驱动程序,和显示部分硬件相关以及外围LCD相关的驱动都被定义在这边,比如上述的显卡的一些特性都是在这边被初始化的。


更多相关文章

  1. Android 之 硬件加速
  2. Android音频子系统源码分析之AudioTrack的使用
  3. 在 Android 应用程序中使用 Internet 数据
  4. 第15章 Android启动过程 [Android应用开发与系统改造实战]
  5. 帮同事找到了一个问题的解决办法:在android 3.0版本以上的系统 we
  6. 2015Android设备、系统、分辨率最新统计数据
  7. Android的参数大致分成两块:系统服务参数和平台系统信息。

随机推荐

  1. Android复合文本SpannableString使用总结
  2. Android中使用硬盘模拟SD卡
  3. Android FileProvider应用之间共享数据
  4. Android 4.4 meminfo 实现分析
  5. 2011年linux数据库的android在线分享
  6. Android Studio 第一次新建Android Gradl
  7. [Android] 内存泄漏调试经验分享 (一)
  8. android 两个应用之间的通信与调用
  9. android 无线启动过程分析
  10. android源代码的利用