新書推薦: 
			  
			《 
			探古论金--曾侯乙青铜器工艺图解
			》 
			 售價:HK$ 
			2030
			 
			 
	
			  
			《 
			死亡与右手(修订译本)
			》 
			 售價:HK$ 
			296
			 
			 
	
			  
			《 
			一寸灰(全新增订版)
			》 
			 售價:HK$ 
			352
			 
			 
	
			  
			《 
			东方美学口袋书 华夏青铜
			》 
			 售價:HK$ 
			203
			 
			 
	
			  
			《 
			初识密码学
			》 
			 售價:HK$ 
			653
			 
			 
	
			  
			《 
			政策与对策 宋代政治史探索 大沨丛书009
			》 
			 售價:HK$ 
			439
			 
			 
	
			  
			《 
			美国货币与财政史(1961-2021)
			》 
			 售價:HK$ 
			551
			 
			 
	
			  
			《 
			中华后土文化·万荣后土祠卷
			》 
			 售價:HK$ 
			857
			 
			 
	
 
      | 
     
      
      
         
          | 編輯推薦: | 
         
         
          |  
            本书从框架和流程两个角度介绍图形显示系统,配合示例和全彩图解辅助读者学习。
           | 
         
       
      
      
      
      
         
          | 內容簡介: | 
         
         
           
            本书主要介绍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月
           | 
         
       
      
        
     |