Android核心原理与系统级应用高效开发

《Android核心原理与系统级应用高效开发》
基本信息
作者: 韩超 [作译者介绍]
出版社:电子工业出版社
ISBN:9787121173615
上架时间:2012-7-2
出版日期:2012 年7月
开本:16开
页码:448
版次:1-1
所属分类: 计算机
 
更多关于 》》》《Android核心原理与系统级应用高效开发
内容简介
书籍
计算机书籍
  《android核心原理与系统级应用高效开发》是一本介绍android核心开发的技术图书,主要目标是让android的开发者更深入地理解android系统,让开发的过程更正确、更有效率。本书主要由两大部分组成,第1篇自下而上介绍android核心框架层的结构,并将开发的技巧和要点蕴含于其中;第2篇偏重系统级的应用层,关注android开发过程中的重点方面。
  《android核心原理与系统级应用高效开发》为android系统级别的开发者系统化而有条理性地展示了庞大的android系统的软件结构,点明开发思路;android应用程序的开发者可以通过本书加深认识,拓展开发手段;从事android硬件移植的开发者可以通过本书加深对系统全局的了解。
目录
《android核心原理与系统级应用高效开发》
第1篇 android核心框架层开发
第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服务库services.jar 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系统级应用开发要点
第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

图书信息来源:中国互动出版网
posted on 2012-07-02 18:06  china-pub   阅读(363)  评论(0编辑  收藏  举报