书籍详情
《Android图形显示系统 李先儒 图形显示工作原理用户计算机交互设计 安卓软件开发教材书 清华大学出版社》[95M]百度网盘|亲测有效|pdf下载
  • Android图形显示系统 李先儒 图形显示工作原理用户计算机交互设计 安卓软件开发教材书 清华大学出版社

  • 热度:4762
  • 上架时间:2025-01-04 08:18:29
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

内容简介

本书主要介绍Android图形显示系统。首先介绍图形显示系统的框架;然后在对图形显示系统有一个整体认识的基础上,重点介绍每个图形组件的工作原理;最后介绍输入,输入与显示结合在一起才能实现用户与计算机的交互。

全书共分7章。第1章介绍图形显示系统的框架;第2章介绍图形显示系统涉及的进程间通信方式;第3章介绍硬件抽象层的图形组件;第4章介绍图形流消费者处理图形缓冲的流程;第5章介绍窗口位置管理服务的内容;第6章介绍图形流的生产过程;第7章介绍输入。

本书适合作为高等院校计算机、软件工程及相关专业本科生、研究生的参考资料,也可供有Android基础的软件开发者参考。


目录


第1章 绪论/1

1.1 简介/1

1.2 图形显示系统框架/1

第2章 进程间通信/4

2.1 简介/4

2.1.1 定义/4

2.1.2 必要性/5

2.1.3 实现方法/6

2.2 Binder/7

2.2.1 示例/7

2.2.2 框架/8

2.2.3 Binder驱动/9

2.2.4 服务管理进程/12

2.2.5 服务进程/17

2.2.6 客户进程/29

2.2.7 示例回顾/31

2.2.8 线程池/32

2.2.9 Java Binder/34

2.2.10 文件描述符/35

2.2.11 通信模式/36

2.2.12 使用场合/37

2.3 共享内存/38

2.3.1 简介/38

2.3.2 实现方法/38

2.3.3 使用场合/39

2.4 套接字/39

2.4.1 简介/39

2.4.2 使用场合/40

2.5 本章小结/40

第3章 图形硬件/41

3.1 硬件抽象层/41

3.1.1 作用/41

3.1.2 接口定义/41

3.1.3 使用示例/42

3.2 硬件抽象层接口定义语言/45

3.2.1 背景/45

3.2.2 使用方法/46

3.2.3 进程间通信方式/48

3.3 Gralloc/48

3.3.1 简介/48

3.3.2 接口定义/49

3.3.3 分配图形缓冲流程/50

3.3.4 图形缓冲/51

3.4 Hardware Composer/53

3.4.1 简介/53

3.4.2 接口定义/53

3.4.3 硬件混合渲染器合成/56

3.4.4 图形库合成/60

3.5 本章小结/61

第4章 图形流消费者/62

4.1 简介/62

4.1.1 SurfaceFlinger初始化/62

4.1.2 客户进程与SurfaceFlinger交互/63

4.1.3 SurfaceFlinger与硬件抽象层交互/64

4.2 图层/64

4.2.1 创建图层/64

4.2.2 缓冲图层/67

4.2.3 图形的生产与消费/69

4.3 VSync/72

4.3.1 简介/72

4.3.2 作用/73

4.3.3 基本流程/74

4.4 图形合成/79

4.4.1 合成原理/79

4.4.2 纹理/80

4.4.3 混合/84

4.4.4 渲染引擎/84

4.4.5 合成流程/87

4.5 本章小结/91

第5章 窗口位置管理/92

5.1 简介/92

5.1.1 WMS/92

5.1.2 客户进程与WMS交互/93

5.1.3 WMS与SurfaceFlinger交互/94

5.2 窗口/94

5.2.1 创建窗口/94

5.2.2 窗口容器/95

5.2.3 控制窗口/96

5.3 窗口容器树/97

5.3.1 DisplayContent/97

5.3.2 DisplayChildWindow Container/99

5.3.3 TaskStack/100

5.3.4 Task/101

5.3.5 AppWindowToken/102

5.3.6 WindowState/103

5.3.7 SurfaceControl/104

5.4 窗口切换/106

5.4.1 切换原理/106

5.4.2 切换动画/107

5.4.3 切换流程/107

5.5 本章小结/113

第6章 图形流生产者/114

6.1 生产环境/114

6.1.1 启动流程/114

6.1.2 设置内容视图/116

6.1.3 设置根视图/118

6.1.4 初始化图形库/118

6.1.5 请求VSync信号/119

6.2 2D图形/119

6.2.1 视图/119

6.2.2 生产流程/120

6.3 3D图形/125

6.3.1 示例/125

6.3.2 生产流程/126

6.4 本章小结/133

第7章 输入/134

7.1 输入系统/134

7.2 输入管理/134

7.2.1 输入管理框架/134

7.2.2 启动过程/135

7.2.3 读取事件/137

7.2.4 分发事件/140

7.2.5 建立连接通道/141

7.2.6 分发到目标进程/142

7.2.7 在视图树中分发/144

7.2.8 处理事件/145

7.3 输入法/146

7.3.1 输入法框架/147

7.3.2 初始化服务/147

7.3.3 启动应用/149

7.3.4 显示应用界面/149

7.3.5 触摸输入框/150

7.3.6 输入内容/152

7.4 本章小结/152

附录A Binder通信示例/153

附录B 共享内存与套接字示例/156

附录C 纹理示例/163


查看全部↓

前言/序言


图形显示系统在计算机、智能手机的普及过程中发挥着重要作用。早期的计算机只能通过命令行的方式进行交互,需要用户熟悉各种命令,这对于普通用户而言难度比较大。后来出现了支持图形显示系统的操作系统,用户与计算机之间通过图形的方式进行交互,大大降低用户使用计算机的难度,使得普通用户也可以用计算机完成特定任务,如玩游戏、看电影等。在以图形方式交互的系统中,软件开发者需要为应用开发各种图形界面,掌握图形显示系统更容易优化图形界面的交互体验。

图形显示系统是一个非常复杂的系统,涉及的模块比较多,而且很多模块偏底层,通过阅读代码很难掌握其中的知识点。笔者主要从事Android系统方面的开发工作,在工作中常常遇到与显示相关的问题,为了更好地处理这些问题,对Android的图形显示系统进行了系统性的学习,经过长时间的研究、摸索才有了一定程度的理解。为了使读者能更轻松、容易地了解图形显示系统方面的知识,笔者把相关的知识点整理出来,编写了本书。

本书从框架和流程两个角度对图形显示系统进行介绍。从框架开始认识图形显示系统的全貌,在此基础上学习框架中各个图形组件的工作流程。由于流程比较多,本书只对关键的流程进行重点介绍。为了帮助读者更容易地理解其中的知识点,笔者会结合简单的示例逐步展开介绍,分析示例背后的工作流程,同时配有大量的图例。

本书共分为7章,各章的主要内容如下。

第1章,从整体上认识图形显示系统的框架,了解图形显示系统需要掌握哪些内容。

第2章,介绍图形显示系统涉及的3种进程间通信方式,分别为Binder、共享内存和套接字。本章是学习图形显示系统的基础。

第3章,介绍硬件抽象层的图形组件的功能及其工作流程。

第4章,介绍图形流消费者的工作原理,主要介绍将多个图形缓冲合成到帧缓冲的过程。

第5章,介绍窗口位置管理服务的内容,包括如何创建和管理窗口。

第6章,介绍图形流生产者的工作原理,主要介绍2D图形、3D图形的生产和显示过程。

第7章,介绍图形窗口响应输入事件及输入法输入文字的流程。


本书之所以选择Android系统,是因为它是目前智能手机主流的操作系统,并且是开源的,其源码便于研究。本书基于Android 9基线,因此读者在阅读本书时需要下载AOSP(Android Open Source Project)源码,还需要准备一台装有Ubuntu系统的计算机,用于对源码进行编译,编译之后在模拟器上运行,方便对底层的源码进行跟踪学习。为了更好地理解本书的内容,读者需要先了解Android的基本概念,掌握C、C++和Java等编程语言的基本语法。

全书由李先儒编写,在编写过程中得到梁云侠的大力支持,在此表示衷心的感谢。

本书的内容基于笔者个人的理解写就,且笔者水平有限,书中难免会有不当之处,欢迎广大同行和读者批评指正。


李先儒

2023年8月


查看全部↓


下载客户端,开始阅读之旅



相关推荐