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 window类
  2. Android(安卓)P 图像显示系统(三)Android(安卓)HWUI 绘制流程
  3. Android编程实现连接Wifi(运用Wifi 相关 API)
  4. Android的Window类
  5. android客户端与服务器数据交换原则
  6. Android(安卓)OpenGl ES2.0编程_相关概念与绘制顶点
  7. Android使用相机获取照片并显示的代码
  8. Android可视化调试工具Hierarchy Viewer的使用
  9. 可显示Android设备选择列表,并进入指定Android设备Console的Shell

随机推荐

  1. React Native开发——Image组件
  2. Android Media (Audio) Framework Analys
  3. Android编程实现屏幕自适应方向尺寸与分
  4. 20172321 2017-2018-2 《程序设计与数据
  5. Android图形系统分析与移植 -- 五、Andro
  6. Android(安卓)Fragment---创建Fragment
  7. Android学习进阶和IoC
  8. Android中自定义控件和属性
  9. Android Launcher 分析
  10. Android之RelativeLayout属性