《Android系统原理及开发要点详解》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:韩超,梁泉著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2010
  • ISBN:9787121101380
  • 页数:393 页
图书介绍:本书紧紧把握Android系统的4个层次,分章节介绍,并且有重点地介绍了Android整个系统的代码结构、编译系统、相关工具、各部分组织等全局性的内容,主要包括:Android系统开发综述、Android的Linux内核与驱动程序、Android的底层库和程序、Android的Java虚拟机和Java环境,以及Android的GUI系统、Audio系统、Video输入输出系统、多媒体系统、电话部分、连接部分等。这将让读者在较短的时间内,对Android系统有一个大致的感性理解。

第1章 Android系统概述 1

1.1基础知识 1

1.1.1 Android开发系统的由来 1

1.1.2移动电话系统开发模式 2

1.1.3未来移动电话的功能及Android的优势 4

1.2 Android的开发工作 6

1.2.1 Android移植开发 6

1.2.2 Android应用开发 8

1.2.3 Android系统开发 9

1.3 Android的SDK与源代码 10

1.3.1基于SDK的Android开发 10

1.3.2基于源代码SDK Android开发 11

第2章 Android系统开发综述 13

2.1 Android的系统架构 13

2.1.1软件结构 13

2.1.2 Android的工具 16

2.2 Android源代码的开发环境 18

2.2.1 Android源代码的获取和提交 18

2.2.2 Android源代码结构 21

2.2.3编译 24

2.2.4系统的运行 25

2.3 Android SDK的开发环境 32

2.3.1 SDK的结构 32

2.3.2 Windows环境SDK开发 33

2.3.3 Linux环境SDK开发 42

第3章 Android的Linux内核与驱动程序 44

3.1 Linux核心与驱动 44

3.2 Android专用驱动 45

3.2.1 Ashmem 45

3.2.2 Binder 45

3.2.3 Logger 46

3.3 Android使用的设备驱动 46

3.3.1 Framebuffer显示驱动 46

3.3.2 Event输入设备驱动 48

3.3.3 v412摄像头——视频驱动 50

3.3.4 OSS音频驱动 53

3.3.5 ALSA音频驱动 54

3.3.6 MTD驱动 56

3.3.7蓝牙驱动 57

3.3.8 Wlan驱动 58

第4章 Android的底层库和程序 60

4.1底层库和程序的结构 60

4.1.1本地实现的基本结构 60

4.1.2增加本地程序和库的方法 61

4.2标准C/C++库bionic 64

4.3 C语言工具库libcutils 65

4.4 init可执行程序 66

4.5 Shell工具 72

4.6 C++工具库libutils 75

4.6.1 libutils的基本内容 75

4.6.2 Binder 76

4.6.3 libutils中的其他内容 82

4.7 Android的系统进程 85

4.7.1 servicemanager 85

4.7.2 zygote 87

第5章 Android的Java虚拟机和Java环境 88

5.1 Dalvik虚拟机和核心库 88

5.1.1 dex工具库和虚拟机的实现 89

5.1.2核心库 90

5.1.3 nativehelper库 91

5.2 Android的Java程序环境 91

5.2.1 Java类的层次结构 91

5.2.2 Android Java类的代码 92

5.2.3 Android系统API 92

5.3 JNl的使用 96

5.3.1 JNI的架构和实现方式 97

5.3.2 JNI的实现方式 97

5.3.3在应用程序中使用JNI 99

5.4系统服务的Java部分 101

5.4.1 Binder 102

5.4.2 ServiceManager 103

5.4.3系统进程 103

第6章 Android的GUI系统 106

6.1 Android GUI系统综述 106

6.2 pixelflinger和libui库 108

6.2.1 pixelflinger 108

6.2.2 libui 108

6.2.3输出/输入与硬件的接口 109

6.3 Surface系统 113

6.3.1 Surface系统本地接口 113

6.3.2 SurfaceFlinger本地代码 115

6.3.3 Surface的Java和JNI代码 119

6.4 Skia和2D图形系统 121

6.4.1 Skia底层库 121

6.4.2 Android图形系统的JNI接口 124

6.4.3 Android的图形包(graphics) 125

6.5 Android的OpenGL系统与3D图形系统 125

6.5.1 OpenGL的本地代码 125

6.5.2 OpenGL的JNI代码 130

6.5.3 OpenGL的Java类 130

第7章 Android的Audio系统 132

7.1 Audio系统综述 132

7.2 Audio系统和上层接口 134

7.2.1 Audio系统的各个层次 134

7.2.2 media库中的Audio框架部分 135

7.2.3 AudioFlinger本地代码 138

7.2.4 Audio系统的JNI代码 140

7.2.5 Audio系统的Java代码 142

7.3 Audio的硬件抽象层 142

7.3.1 Audio硬件抽象层的接口定义 142

7.3.2 AudioFlinger中自带Audio硬件抽象层实现 144

7.3.3 Audio硬件抽象层的真正实现 150

第8章 Android的Video输入输出系统 151

8.1 Video输入输出系统综述 151

8.1.1 Android的Overlay系统结构 152

8.1.2 Android的Camera系统结构 153

8.2 Overlay系统 155

8.2.1 Overlay系统的框架部分定义 156

8.2.2 SurfaceFlinger系统的Overlay部分 158

8.3 Overlay的硬件抽象层 161

8.3.1 Overlay系统硬件抽象层的接口 161

8.3.2 Overlay系统硬件实现框架 164

8.3.3 Overlay系统硬件实现的注意事项 166

8.4 Camera系统与上层接口 169

8.4.1 Camera本地代码框架 169

8.4.2 CameraService 176

8.4.3 Camera的JNI代码 179

8.4.4 Camera的Java代码 182

8.5 Camera的硬件抽象层 182

8.5.1 Camera硬件抽象层的接口定义 182

8.5.2 Camera硬件抽象层的桩实现 184

8.5.3 Camera硬件抽象层的硬件实现 188

第9章 Android的多媒体系统 190

9.1 Android多媒体系统的结构和业务 190

9.1.1多媒体系统的宏观结构 190

9.1.2多媒体的各种业务 192

9.2多媒体系统的各个层次 199

9.2.1 libmedia的框架部分 199

9.2.2多媒体服务 208

9.2.3多媒体部分的JNI代码 213

9.2.4多媒体部分的Java框架代码 215

9.2.5 android.widget.VideoView类 216

9.3多媒体实现的核心部分 OpenCore 216

9.3.1 OpenCore概述 216

9.3.2 OpenCore的层次结构 217

9.3.3 OpenCore的OSCL部分 219

9.3.4 OpenCore的文件格式和编解码部分 221

9.3.5 OpenCore的Node 222

9.3.6 OpenCore的功能扩展 223

9.3.7 OpenCore的Player 226

9.3.8 OpenCore的Author 236

第10章 Android的电话部分 243

10.1 Android电话部分综述 243

10.2 Modem驱动 243

10.3本地的RIL代码 245

10.3.1简介 245

10.3.2 RILD守护进程 246

10.3.3 libril库 247

10.3.4 RIL的实现库Reference RIL 247

10.3.5 Request(请求)流程 248

10.3.6 Response(响应)流程 249

10.3.7 RIL的移植工作 251

10.4 Java框架及应用 251

10.4.1基本架构 252

10.4.2呼叫 255

10.4.3短信 256

10.4.4数据连接 257

10.4.5其他框架部分及其他应用 258

第11章 Android的连接部分 259

11.1 WiFi部分 259

11.1.1 WiFi基本架构 259

11.1.2 WiFi本地实现 260

11.1.3 WiFi的Java和JNI 263

11.1.4 Settings中的WiFi设置 265

11.1.5 WiFi工作流程实例 265

11.2蓝牙部分 267

11.2.1蓝牙基本架构 268

11.2.2蓝牙用户空间库bluez 269

11.2.3 bluez适配层 272

11.2.4蓝牙的JNI和Java部分 272

11.3 GPS和定位部分 280

11.3.1定位系统基本架构 281

11.3.2定位系统驱动层 281

11.3.3 GPS本地实现 282

11.3.4 GPS JNI实现 283

11.3.5定位系统Java实现 284

第12章 Android的传感器系统 286

12.1传感器系统综述 286

12.2传感器系统层次结构 288

12.2.1传感器系统的各个层次 288

12.2.2传感器系统的JNI 288

12.2.3传感器系统的Java代码 290

12.3传感器系统的硬件抽象层 291

12.3.1传感器系统硬件抽象层的接口定义 291

12.3.2传感器系统硬件抽象层的示例实现 293

12.3.3传感器系统硬件抽象层的实现要点 296

12.4 Sensor的使用 296

第13章 Android应用程序概述及框架 299

13.1 Android应用程序的开发方式 299

13.2 Android应用程序的内容 300

13.2.1 Android应用程序的概念性描述 300

13.2.2应用程序包含的各个文件 305

13.2.3使用am工具启动Android应用程序 306

13.3 Android应用程序示例 308

13.3.1 HelloActivity程序 308

13.3.2 HelloActivity的源代码结构 308

13.3.3 HelloActivity的编译结构(源代码开发) 312

13.3.4 HelloActivity的编译结构(SDK开发) 314

13.4 Android应用层API参考文档 315

第14章 Android应用程序的主要方面 317

14.1应用的基本控制 318

14.1.1 UI元素及其控制 318

14.1.2屏幕间的跳转 320

14.1.3弹出对话框和菜单 324

14.1.4样式的设置 328

14.1.5使用服务 331

14.1.6使用广播接收器 337

14.2各种UI元素的使用 339

14.2.1基本的UI元素 340

14.2.2视图组的使用 345

14.2.3自定义的视图 353

14.2.4滚动视图的使用 354

14.2.5布局(Layout) 355

14.2.6网格(Grid)视图组 359

14.2.7列表(List)视图组 360

14.2.8使用Tab 362

14.3图形API的使用 363

14.3.1 2D图形的API 363

14.3.2 3D图形的API 366

第15章 Android应用程序的设计思想 369

15.1 Android程序思想 369

15.1.1 Java源程序思想 369

15.1.2资源的思想 373

15.1.3工程描述文件的思想 375

15.1.4三位一体的思想 376

15.1.5安全性和权限 378

15.1.6 App Widget的使用 379

15.2 Android应用开发实例 381

15.2.1 GUI依赖类的程序 382

15.2.2单独模块类程序 387

15.3 Android的设计理念 393