当前位置:首页 > 工业技术
Android核心原理与系统级应用高效开发
Android核心原理与系统级应用高效开发

Android核心原理与系统级应用高效开发PDF电子书下载

工业技术

  • 电子书积分:14 积分如何计算积分?
  • 作 者:韩超等著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2012
  • ISBN:9787121173615
  • 页数:434 页
图书介绍:本书是一本介绍Android核心开发的技术图书,主要目标是让Android的开发者更深入地理解Android系统,让开发的过程更正确、更有效率。本书主要由两个大部分组成,第1篇自下而上介绍Android核心框架层的结构,并将开发的技巧和要点蕴含于其中;第2篇偏重系统级的应用层,关注Android开发过程中的重点方面。
《Android核心原理与系统级应用高效开发》目录

第1篇Android核心框架层开发 2

第1章Android系统框架 2

1.1 Android系统基础结构 2

1.2 Android的开发环境 3

1.2.1开发环境 3

1.2.2源代码获取 4

1.2.3编译Android源代码 4

1.2.4仿真器运行 5

1.2.5使用工具 5

1.3系统结构和代码结构 7

1.3.1软件系统结构 7

1.3.2源代码结构 9

第2章 编译结构和各种构建 13

2.1 Android的系统构建 13

2.1.1编译环境要求 13

2.1.2构建流程 14

2.1.3环境设置 16

2.1.4系统构建结果 16

2.2各种部件的构建 18

2.2.1 Android.mk的语法 18

2.2.2各种部件的构建方式 19

2.2.3预编译内容的安装 23

2.3 Android编译的板级支持 24

2.3.1支持一个板的工作 24

2.3.2 buildspec.mk文件的作用 25

2.3.3 vendersetup.sh和lunch命令 26

2.3.4 BoardConfig.mk文件的作用 27

2.3.5 AndroidProducts.mk文件 28

2.3.6 AndroidBoard.mk文件 29

2.3.7编译中的层叠加 30

第3章 本地层基础部分 31

3.1本地层基础部分结构 31

3.2 C语言基础:Bionic 31

3.2.1 Bionic各个部分的结构 32

3.2.2 Bionic的头文件 32

3.2.3内存泄露的检查库 33

3.2.4属性系统的支持 34

3.3 C语言底层库 35

3.3.1 Log库 35

3.3.2 C语言工具库libcutils 36

3.3.3属性和套接字支持 40

3.4 init可执行程序和相关脚本 42

3.4.1 init可执行程序的结构 42

3.4.2启动脚本init.rc 43

3.4.3 init的内建动作和初始化 48

3.4.4 init的循环 50

3.4.5设备管理功能 55

3.5 shell工具 57

3.5.1 shell程序sh 57

3.5.2命令工具箱toolbox 59

3.6 Android属性和套接字机制 60

3.6.1属性机制 60

3.6.2套接字机制 63

第4章 本地层框架部分 67

4.1本地层框架部分结构 67

4.2框架层的工具库libutils 67

4.2.1 libutils的结构 68

4.2.2基本的定义和类型 69

4.2.3数据结构和容器类 70

4.2.4工具类 75

4.2.5引用计数和强弱引用指针 77

4.2.6线程类及相关辅助功能 83

4.2.7文件操作的监听循环 87

4.3作为全局守护进程的可执行程序 89

4.3.1 app_process 89

4.3.2 keystore 90

4.3.3 installd 91

4.3.4 vold 92

4.3.5 netd 94

4.4 Binder的IPC机制结构 96

4.4.1 Android Binder机制的层次结构 96

4.4.2具体Binder的实现 97

4.5 Binder库以及相关内容 98

4.5.1具体Binder的实现 98

4.5.2 Binder库的核心功能 99

4.5.3 Binder框架和具体IPC结构的实现 100

4.5.4 IServiceManager相关 110

4.5.5 Binder库中的其他部分 113

4.6 servicemanager可执行程序和服务的实现 115

4.6.1服务管理器可执行程序和进程 115

4.6.2在系统中实现“服务” 118

4.6.3 servicemanager对服务的管理 121

4.6.4 Android中本地服务的层次结构 121

第5章 本地的启动流程、调试和设计结构 123

5.1 Android启动流程的本地阶段 123

5.1.1启动流程概述 123

5.1.2 BootLoader运行及加载内核 124

5.1.3 Linux内核运行和加载根文件系统 125

5.1.4运行用户空间的第一个进程 125

5.1.5挂接各个文件系统 126

5.1.6系统各个进程的运行 126

5.1.7启动图 128

5.2 Android本地部分的调试 130

5.2.1标准Linux调试方法 130

5.2.2使用log的方法 138

5.2.3 Android的特殊调试工具 139

5.3本地程序的结构设计 145

5.3.1目标和设计思路 145

5.3.2守护进程+保留Socket的设计结构 146

5.3.3守护进程+本地层Binder的设计结构 147

第6章Java运行环境 149

6.1 Dalvik虚拟机和相关工具 149

6.1.1 Dalvik的概述 149

6.1.2虚拟机的实现和运行 150

6.1.3 Dalvik工具 154

6.1.4 nativehelper库 156

6.2 Java基础库libcore 156

6.2.1 libcore的源代码结构 156

6.2.2 luni目录中的内容 158

6.2.3 libcore中的其他内容 159

第7章Java框架层 160

7.1 Java框架层结构 160

7.2 Android的Java层的API 161

7.2.1 Java框架层API的含义 161

7.2.2 API的描述文件 162

7.2.3被隐藏的内容 166

7.2.4不赞成使用的(过时的) API 166

7.3 Java框架库framework jar 168

7.3.1框架库的组成和作用 168

7.3.2框架库的API 168

7.3.3框架库的编译结构 169

7.3.4框架库的各个部分 170

7.3.5属性机制 173

7.3.6套接字机制 174

7.4 Java服务库servicesjar 175

7.4.1服务库的组成和作用 176

7.4.2服务管理器 176

7.4.3主要的服务功能 177

7.4.4启动结束的处理 180

7.5资源包framework-res.apk 180

7.5.1资源包的组成和作用 181

7.5.2作为API的资源id 182

7.5.3资源包AndroidManifest.Xml文件 182

7.6策略库 183

7.6.1策略库的组成和作用 183

7.6.2策略库的功能和使用 183

7.7 Java层的Binder机制 184

7.7.1 Java Binder的框架 185

7.7.2 Java框架层的Binder使用 189

7.7.3 Binder中参数和返回值的类型 194

第8章Java本地调用 198

8.1 Android的Java本地调用 198

8.1.1 JNI的基本概念 198

8.1.2 Android的JNI实现基础 198

8.1.3 Android中JNI的存在方式 201

8.2在框架中使用JNI 201

8.2.1框架层使用JNI的结构 201

8.2.2框架层JNI的实现 204

8.3在应用程序包中使用JNI 207

8.3.1应用程序包的JNI部分 207

8.3.2应用程序包中JNI的典型实现方式 207

8.3.3结构上的几种变化 210

8.4 JNI的高级使用 211

8.4.1 JNI的双向调用 211

8.4.2线程的处理 215

8.4.3 JNIHelp中的特殊处理 216

第9章Java启动流程、调试和程序结构 218

9.1 Java部分的启动流程 218

9.1.1启动流程概述 218

9.1.2 Java系统的守护进程 219

9.1.3 ZygoteInit类的执行 220

9.1.4系统服务器部分 222

9.1.5 Java应用程序部分的启动 227

9.2 Java部分的调试 229

9.2.1在Java中使用Log 229

9.2.2 Java层的命令行程序 229

9.2.3代码内容相关的调试 232

9.2.4 DDMS工具 237

9.2.5 HierarchyViewer工具 239

9.3 Java层程序的结构设计 241

9.3.1目标和设计思路 241

9.3.2在系统服务器中服务的设计结构 242

9.3.3 Service组件的设计结构 243

第10章GUI系统和应用程序管理 245

10.1 GUI系统的结构和模块关系 245

10.2 UI框架库及相关 246

10.2.1基本类型方面 246

10.2.2显示相关 247

10.2.3按键和事件的处理 247

10.2.4其他内容 249

10.3 Surface图层系统 249

10.3.1 Surface系统的结构 250

10.3.2 Surface本地的接口部分 251

10.3.3 Surface本地实现部分 254

10.3.4 Surface的JNI代码 255

10.3.5 Surface的Java部分 256

10.4 2D图形系统 258

10.4.1 2D图形系统的结构 258

10.4.2 Skia底层库 259

10.4.3图形系统的JNI接口 263

10.4.4 2D图形包 264

10.5 3D图形系统 264

10.5.1 OpenGL系统的结构 265

10.5.2 OpenGL的本地代码 265

10.5.3 OpenGL的JNI代码 267

10.5.4 OpenGL的Java类 268

10.6窗口和视图部分 270

10.6.1窗口和视图部分的结构 270

10.6.2窗口管理的底层实现 271

10.6.3视图实现和上层的窗口管理器的实现 275

10.7活动和应用程序管理 277

10.7.1活动和应用程序管理的结构 277

10.7.2活动界面的实现 278

10.7.3应用程序管理的实现 282

第2篇Android系统级应用开发要点 288

第11章Android应用层接口结构与安全 288

11.1 Android应用层接口结构 288

11.1.1标准应用程序和源代码开发的应用程序 288

11.1.2第三方应用程序和预置应用程序 290

11.2 Android的安全系统 290

11.2.1安全机制概述 290

11.2.2 Linux的用户和组 291

11.2.3 Android的许可 294

11.3程序签名问题 296

11.3.1 Android应用签名的概念 296

11.3.2 Android应用签名的流程 296

11.3.3不同的程序签名 298

11.3.4证书生成工具 299

11.4安全策略 300

11.4.1安全策略的几个方面 300

11.4.2安全策略的实现 306

11.4.3安全策略的定制 310

第12章 应用层的本地内容和NDK开发 312

12.1本地应用的标准化 312

12.2 NDK环境 313

12.2.1 NDK的基本概念 313

12.2.2从几个方面理解NDK的不同含义 313

12.3 NDK的组成结构 314

12.3.1 NDK环境的结构 314

12.3.2 NDK中包含的内容 315

12.4 NDK开发基础 317

12.4.1编译流程 317

12.4.2 NDK编程要点 318

12.4.3开发结构 319

12.5使用JNI的方式 320

12.5.1 NDK中使用JNI工程结构 320

12.5.2在本地操作Bitmap位图 320

12.5.3在本地使用OpenGL ES绘制 321

12.5.4程序实现 321

12.6在本地构建应用 328

12.6.1本地应用接口基础 328

12.6.2实现本地活动的辅助库:android native_ app_glue 332

12.6.3程序实现 333

第13章 预置的应用程序层 339

13.1预置应用层程序概述 339

13.2预置综合应用程序 340

13.2.1主屏幕 340

13.2.2设置 342

13.2.3联系人和电话 345

13.2.4短信息和彩信 347

13.2.5浏览器和邮件 349

13.2.6音乐 352

13.2.7照相机和录音机 354

13.2.8画廊 358

13.2.9搜索 359

13.2.10时钟、计算器和日历 360

13.3预置内容提供者 361

13.3.1联系人信息提供者 361

13.3.2媒体信息提供者 362

13.3.3电话信息提供者 363

13.3.4下载信息提供者 363

13.4预置输入法 364

13.5活动墙纸系统 365

13.5.1活动墙纸选择器 365

13.5.2几个具体的活动墙纸 366

13.6实现框架功能的应用程序包 366

13.6.1系统界面 367

13.6.2设置信息提供者 368

13.6.3几个主体为Service组件的应用程序包 369

第14章Android系统定制 371

14.1 Android系统定制概述 371

14.2普通应用程序的定制 371

14.2.1普通应用定制的方面 371

14.2.2预置的应用程序的组件可见性 372

14.2.3组件的intent-filter 372

14.3桌面的定制 373

14.3.1桌面程序的入口和功能 374

14.3.2桌面程序细节 375

14.3.3在桌面之前执行的程序 378

14.4系统资源的定制 378

14.4.1定义资源的概念和原则 379

14.4.2一些配置的数值 379

14.4.3可绘制内容的定制 379

14.4.4样式和主题的定制 380

14.4.5内部布局的定制 382

14.5框架内部组件和界面的定制 383

14.5.1内部组件 383

14.5.2内部界面 385

14.6状态栏界面的定制 385

14.6.1状态栏界面的功能和布局 385

14.6.2状态栏界面 387

14.7锁屏界面的定制 389

14.7.1锁屏界面的功能 390

14.7.2锁屏界面 391

14.8开机动画的定制 393

第15章 系统级的调试和测试 396

15.1调试 396

15.1.1命令行调试工具 396

15.1.2界面上的辅助工具 402

15.2测试系统和工具 403

15.2.1测试系统的结构 404

15.2.2 Monkey 404

15.2.3 MonkeyRunner 406

15.3代码级别的测试 409

15.3.1代码测试框架 409

15.3.2代码测试方式 411

15.4兼容性及兼容性测试 414

15.4.1 Android兼容性 414

15.4.2 CTS兼容性验证 416

15.4.3 CTS的相关源代码和原理 419

附录A Android版本演进和Android 4.x 423

A.1 Android版本的演进 423

A.2编译系统的更新 423

A.3本地框架层的更新 425

A.3.1 init.rc中的关键字 425

A.3.2 surfaceflinger作为独立的守护进程 425

A.3.3 netd守护进程 426

A.4 Java框架的更新 426

A.4.1 Java框架的API描述 426

A.4.2 Java类库的升级 427

A.4.3 Java服务包 428

A.4.4工具 428

A.5 GUI系统的更新 429

A.5.1 GUI系统 429

A.5.2 Skia引擎的改动 430

A.5.3 OpenGL引擎的改动 430

A.5.4窗口的变化 430

A.6 Java应用程序层的更新 432

A.6.1 SystemUI 432

A.6.2桌面 432

A.6.3普通应用程序 433

A.7本地标准应用和NDK环境 434

相关图书
作者其它书籍
返回顶部