《深入Android套用开发》是2012-7-10机械工业出版社华章公司出版的图书,作者是苗忠良 / 曾旭 / 宛斌。
基本介绍
- 作者:苗忠良 / 曾旭 / 宛斌
- ISBN:9787111379577
- 页数:452
- 定价:79.00元
- 出版社:机械工业出版社华章公司
- 出版时间:2012-7-10
- 装帧:平装
- 副标题:核心技术解析与最佳实践
内容介绍
如何才能真正进阶为Android套用开发高手?必须深入理解Android核心技术的底层原理和在开发中总结并使用各种最佳实践,别无他法!本书以Android的原始码为主,SDK为辅,针对套用开发者的需求,对各种核心技术的使用方法、底层原理和实现细节进行了深入而详细的讲解,同时辅之以大量案例和最佳实践,为开发者的进阶修炼和开发高质量的套用提供了绝佳指导。
第1章深入介绍了Android的4大核心组件和9大主要套用框架;第2章透彻讲解了资源、组件、事件处理、套用风格和数据适配等核心知识;第3章系统地展示了各种常用的UI控制项的使用方法及原理,并对XML和Java这两种控制项属性配置方式和适用场景进行了分析和比较;第4章深入阐述了Android的数据存储与管理;第5章分析了Android在UI层、框架层和核心层的通信机制和原理;第6章深入讲解了Android实现多执行绪的两种主要方式(原生Java执行绪和Android对Java执行绪的封装)的原理,并对它们进行了全方位比较;第7章深入介绍了Android网路编程的核心技术;第8章详细讲解了Android中的2D图像、3D图像、2D图形以及动画方面的知识;第9章全面介绍了Android的多媒体编程,包括音频、视频和Camera服务等,并对TTS的实现进行了剖析;第10章详细讲解了Android的跨语言调用;第11章深入剖析了Android的安全框架和安全机制;第12章针对商业套用的需要讲解了Android的调试、测试与性能最佳化;第13章全面地剖析了Android的编译系统,包括编译工具、映像档案编译、SDK编译、NDK编译和目标系统的配置等;第14章分析了Android系统的启动过程;第15章讲解了Android的系统管理原理,包含记忆体管理、套用管理、电源管理、系统管理,以及系统的还原、升级、配置和备份等多方面的内容,能帮助开发者从一个更高的视角去理解Android的运行机制。
作者介绍
苗忠良,资深Android开发工程师和嵌入式软体开发工程师,对Android、Linux和Qtopia等平台和技术有非常深入的研究,实践经验极其丰富。尤其是在Android领域,不仅擅长Android套用的开发,对Android系统的底层原理有非常深入的研究,而且还对Android套用的设计开发思想和用户体验有非常深入的认识。现担任某公司上海研发中心的技术总监,拥有发明专利3项,发表学术论文多篇,曾多次在高校和企业举办技术讲座,深受欢迎。
作品目录
前言
第1章 深入解析Android核心组件和套用框架 / 1
1.1 核心组件详解 / 1
1.1.1 Activity组件 / 1
1.1.2 Service组件 / 19
1.1.3 Intent组件 / 25
1.1.4 BroadcastReceiver组件 / 31
1.2 套用框架解析 / 31
1.2.1 Service框架 / 32
1.2.2 Activity管理机制 / 38
1.2.3 Broadcast机制 / 41
1.2.4 对话框框架 / 42
1.2.5 标题栏框架 / 46
1.2.6 状态栏框架 / 48
1.2.7 通知机制 / 52
1.2.8 搜寻框架 / 56
1.2.9 ActionBar框架 / 59
第2章 Android 资源框架详解/ 64
2.1 布局档案 / 64
2.2 值档案 / 67
2.3 创建选单 / 75
2.3.1 选项选单 / 75
2.3.2 上下文选单 / 77
2.3.3 子选单 / 79
2.3.4 弹出选单 / 80
2.4 断言的处理 / 81
2.5 Jar包和共享库 / 83
2.6 系统资源 / 84
第3章 Android UI控制项精要 / 89
3.1 布局控制项 / 89
3.1.1 LinearLayout / 89
3.1.2 RelativeLayout / 92
3.1.3 TableLayout / 93
3.1.4 FrameLayout / 94
3.2 显示控制项 / 97
3.2.1 TextView / 97
3.2.2 ProgressBar / 99
3.2.3 WebView / 100
3.2.4 ViewSwitcher / 101
3.2.5 TextSwitcher / 102
3.2.6 ViewFlipper / 103
3.2.7 SeekBar / 104
3.2.8 ViewStub / 106
3.3 容器控制项 / 106
3.3.1 SlidingDrawer / 106
3.3.2 ListView / 107
3.3.3 ExpandableListView / 111
3.3.4 GridView / 112
3.3.5 ScrollView / 113
3.3.6 TabHost / 114
3.4 输入控制项 / 114
3.4.1 EditText / 114
3.4.2 Spinner / 116
3.4.3 AutoCompleteTextView / 117
3.5 控制控制项 / 118
3.5.1 Button / 118
3.5.2 CheckBox / 119
3.5.3 RadioButton / 119
3.5.4 RatingBar / 120
3.5.5 ZoomControls / 121
3.6 多媒体控制项 / 122
3.6.1 ImageView / 122
3.6.2 ImageSwitcher / 122
3.7 特殊控制项 / 125
3.8 桌面部件 / 126
3.8.1 App Widgets的实现 / 126
3.8.2 Live folders的实现 / 128
3.9 自定义控制项 / 129
3.10 数据适配 / 130
3.10.1 视图适配 / 130
3.10.2 标準化解析 / 133
3.11 Fragment / 135
3.11.1 Fragment 生命周期 / 135
3.11.2 ListFragment / 137
3.11.3 DialogFragment / 137
3.11.4 PreferenceFragment / 138
3.11.5 WebViewFragment / 138
第4章 深入解析Android数据存储与管理 / 139
4.1 XML档案管理 / 139
4.2 内部档案管理 / 140
4.2.1 写入数据 / 141
4.2.2 读取数据 / 141
4.3 外部档案管理 / 142
4.4 资料库管理 / 143
4.4.1 Android封装接口 / 144
4.4.2 原生方法处理 / 145
4.5 数据处理 / 145
4.5.1 Set类 / 146
4.5.2 Map类 / 148
4.5.3 list类 / 150
4.5.4 流类 / 150
4.5.5 正则表达式 / 153
4.5.6 I/O管理 / 153
4.5.7 JSON实现 / 155
第5章 深入解析Android通信机制 / 159
5.1 Intent通信 / 159
5.1.1 Intent的常见用法 / 159
5.1.2 Serializable接口 / 165
5.1.3 Parcelable接口 / 165
5.2 UI事件处理 / 166
5.2.1 事件监听器、事件句柄及焦点处理 / 167
5.2.2 触控事件处理 / 168
5.2.3 按键事件处理 / 170
5.2.4 轨迹球事件处理 / 171
5.3 任务调度 / 172
第6章 深入解析Android多执行绪编程 / 174
6.1 Java执行绪实现 / 174
6.2 Android执行绪封装 / 177
6.3 执行绪间的讯息通信 / 180
6.3.1 讯息伫列 / 181
6.3.2 讯息分发 / 183
6.3.3 讯息接收 / 183
6.4 执行绪安全处理 / 184
6.4.1 synchronized同步 / 184
6.4.2 RPC通信 / 186
6.4.3 SQLite调用 / 186
第7章 深入解析Android网路编程 / 187
7.1 无线接入技术概述 / 187
7.2 基础协定封装 / 190
7.3 Java网路编程接口 / 194
7.4 Apache网路编程接口 / 195
7.5 Android网路编程接口 / 196
7.6 Web服务实现 / 199
7.6.1 Web服务概述 / 199
7.6.2 KSOAP2的实现 / 199
7.7 XML解析器 / 200
7.7.1 Pull解析器 / 201
7.7.2 DOM解析器 / 202
7.7.3 SAX解析器 / 203
7.8 套接字编程 / 203
7.9 Web套用实现 / 205
7.10 SIP服务 / 212
7.11 NFC通信 / 214
7.12 RIL层处理 / 216
7.13 报文分析 / 220
第8章 Android图形、图像与动画精要 / 222
8.1 2D图像处理 / 222
8.1.1 基本接口 / 222
8.1.2 缩略图 / 228
8.1.3 图像浏览 / 228
8.1.4 人脸检测 / 230
8.2 3D图像处理 / 233
8.2.1 OpenGL ES的实现 / 233
8.2.2 RenderScript的实现 / 236
8.3 图形处理 / 239
8.3.1 基本接口 / 239
8.3.2 Surface渲染系统 / 244
8.4 动画处理 / 247
8.4.1 补间动画 / 248
8.4.2 帧动画 / 249
8.4.3 属性动画 / 250
第9章 深入解析Android多媒体编程 / 257
9.1 音频处理 / 257
9.1.1 音频播放 / 258
9.1.2 音频录製 / 264
9.1.3 音频管理 / 265
9.1.4 音效处理 / 267
9.2 视频处理 / 269
9.2.1 视频播放 / 270
9.2.2 视频录製 / 273
9.3 Camera服务 / 274
9.4 TTS的实现 / 276
第10章 Android跨语言调用详解 / 279
10.1 C语言与彙编语言的相互调用 / 279
10.2 C++与C语言的相互调用 / 280
10.3 Java对C/C++的调用 / 282
10.4 C/C++对Java的调用 / 287
第11章 Android安全框架解析 / 292
11.1 Java混淆器 / 293
11.2 接入许可权 / 294
11.2.1 创建接入许可权 / 294
11.2.2 套用许可权 / 294
11.2.3 许可权验证 / 296
11.2.4 接入服务 / 297
11.2.5 框架层接入限制 / 298
11.3 数字证书 / 298
第12章 Android的调试、测试与性能最佳化 / 300
12.1 Android调试 / 300
12.1.1 Logcat日誌调试 / 300
12.1.2 dmtracedump跟蹤 / 300
12.1.3 Dev Tools调试 / 301
12.1.4 萤幕截图分析 / 301
12.1.5 记忆体调试 / 302
12.2 Android布局最佳化 / 305
12.2.1 Layoutopt最佳化 / 305
12.2.2 Hierarchyviewer最佳化 / 306
12.3 Android测试 / 307
12.3.1 Monkey压力测试 / 307
12.3.2 JUnit回归测试 / 308
12.3.3 CTS兼容性测试 / 312
12.3.4 目标环境测试 / 313
12.4 Android性能最佳化 / 314
12.4.1 最佳化资源读取 / 314
12.4.2 最佳化APK载入 / 315
12.4.3 Dalvik虚拟机 / 315
12.4.4 TraceView性能分析 / 315
12.4.5 运行效率的最佳化 / 317
第13章 深入解析Android编译系统 / 318
13.1 原始码编译 / 318
13.1.1 映像档案 / 318
13.1.2 编译方法 / 319
13.1.3 主要脚本 / 322
13.1.4 环境变数 / 332
13.1.5 目标环境 / 333
13.2 SDK编译 / 333
13.2.1 Linux下的SDK编译 / 334
13.2.2 Windows下的SDK编译 / 334
13.2.3 ADT外挂程式的编译 / 334
13.3 NDK编译 / 335
13.3.1 编译脚本 / 336
13.3.2 配置脚本 / 337
13.3.3 GDB调试 / 340
13.3.4 NativeActivity实现 / 340
13.4 应用程式编译 / 342
13.4.1 本地环境变数 / 342
13.4.2 在Eclipse下编译 / 343
13.5 目标系统配置 / 343
13.5.1 自定义模拟器配置 / 343
13.5.2 目标板配置 / 348
13.5.3 目标环境配置 / 350
13.6 档案系统配置 / 350
13.7 编译工具 / 350
13.8 fastboot模式 / 352
第14章 Android启动过程详解 / 353
14.1 系统的启动过程 / 353
14.1.1 系统属性配置 / 354
14.1.2 档案系统挂载 / 355
14.1.3 守护进程启动 / 356
14.2 套用的启动过程 / 362
14.2.1 套用的启动配置 / 362
14.2.2 套用的启动过程 / 364
第15章 深入解析Android系统管理 / 369
15.1 记忆体管理 / 369
15.1.1 对象引用 / 369
15.1.2 垃圾回收策略 / 370
15.2 套用管理 / 373
15.2.1 套用的配置 / 373
15.2.2 套用的启动 / 374
15.2.3 套用的销毁 / 375
15.3 电源管理 / 376
15.3.1 电源管理框架 / 376
15.3.2 套用层策略 / 379
15.4 下载管理 / 380
15.4.1 Gingerbread前的下载 / 380
15.4.2 Gingerbread后的下载 / 382
15.5 系统配置 / 383
15.5.1 系统资料库 / 383
15.5.2 系统属性 / 385
15.6 数据管理 / 386
15.6.1 数据备份 / 386
15.6.2 剪下板管理 / 387
15.7 设备管理 / 388
15.7.1 管理工具 / 388
15.7.2 感测器管理 / 395
15.7.3 USB管理 / 398
15.8 套用发布 / 399
15.8.1 套用商店概述 / 399
15.8.2 目标环境的适配 / 401
15.8.3 发布套用 / 410
附录A Android开发环境搭建 / 413
附录B 常用Linux命令 / 436
附录C 编码规範 / 441
附录D 学习资源 / 447
参考文献 / 451
第1章 深入解析Android核心组件和套用框架 / 1
1.1 核心组件详解 / 1
1.1.1 Activity组件 / 1
1.1.2 Service组件 / 19
1.1.3 Intent组件 / 25
1.1.4 BroadcastReceiver组件 / 31
1.2 套用框架解析 / 31
1.2.1 Service框架 / 32
1.2.2 Activity管理机制 / 38
1.2.3 Broadcast机制 / 41
1.2.4 对话框框架 / 42
1.2.5 标题栏框架 / 46
1.2.6 状态栏框架 / 48
1.2.7 通知机制 / 52
1.2.8 搜寻框架 / 56
1.2.9 ActionBar框架 / 59
第2章 Android 资源框架详解/ 64
2.1 布局档案 / 64
2.2 值档案 / 67
2.3 创建选单 / 75
2.3.1 选项选单 / 75
2.3.2 上下文选单 / 77
2.3.3 子选单 / 79
2.3.4 弹出选单 / 80
2.4 断言的处理 / 81
2.5 Jar包和共享库 / 83
2.6 系统资源 / 84
第3章 Android UI控制项精要 / 89
3.1 布局控制项 / 89
3.1.1 LinearLayout / 89
3.1.2 RelativeLayout / 92
3.1.3 TableLayout / 93
3.1.4 FrameLayout / 94
3.2 显示控制项 / 97
3.2.1 TextView / 97
3.2.2 ProgressBar / 99
3.2.3 WebView / 100
3.2.4 ViewSwitcher / 101
3.2.5 TextSwitcher / 102
3.2.6 ViewFlipper / 103
3.2.7 SeekBar / 104
3.2.8 ViewStub / 106
3.3 容器控制项 / 106
3.3.1 SlidingDrawer / 106
3.3.2 ListView / 107
3.3.3 ExpandableListView / 111
3.3.4 GridView / 112
3.3.5 ScrollView / 113
3.3.6 TabHost / 114
3.4 输入控制项 / 114
3.4.1 EditText / 114
3.4.2 Spinner / 116
3.4.3 AutoCompleteTextView / 117
3.5 控制控制项 / 118
3.5.1 Button / 118
3.5.2 CheckBox / 119
3.5.3 RadioButton / 119
3.5.4 RatingBar / 120
3.5.5 ZoomControls / 121
3.6 多媒体控制项 / 122
3.6.1 ImageView / 122
3.6.2 ImageSwitcher / 122
3.7 特殊控制项 / 125
3.8 桌面部件 / 126
3.8.1 App Widgets的实现 / 126
3.8.2 Live folders的实现 / 128
3.9 自定义控制项 / 129
3.10 数据适配 / 130
3.10.1 视图适配 / 130
3.10.2 标準化解析 / 133
3.11 Fragment / 135
3.11.1 Fragment 生命周期 / 135
3.11.2 ListFragment / 137
3.11.3 DialogFragment / 137
3.11.4 PreferenceFragment / 138
3.11.5 WebViewFragment / 138
第4章 深入解析Android数据存储与管理 / 139
4.1 XML档案管理 / 139
4.2 内部档案管理 / 140
4.2.1 写入数据 / 141
4.2.2 读取数据 / 141
4.3 外部档案管理 / 142
4.4 资料库管理 / 143
4.4.1 Android封装接口 / 144
4.4.2 原生方法处理 / 145
4.5 数据处理 / 145
4.5.1 Set类 / 146
4.5.2 Map类 / 148
4.5.3 list类 / 150
4.5.4 流类 / 150
4.5.5 正则表达式 / 153
4.5.6 I/O管理 / 153
4.5.7 JSON实现 / 155
第5章 深入解析Android通信机制 / 159
5.1 Intent通信 / 159
5.1.1 Intent的常见用法 / 159
5.1.2 Serializable接口 / 165
5.1.3 Parcelable接口 / 165
5.2 UI事件处理 / 166
5.2.1 事件监听器、事件句柄及焦点处理 / 167
5.2.2 触控事件处理 / 168
5.2.3 按键事件处理 / 170
5.2.4 轨迹球事件处理 / 171
5.3 任务调度 / 172
第6章 深入解析Android多执行绪编程 / 174
6.1 Java执行绪实现 / 174
6.2 Android执行绪封装 / 177
6.3 执行绪间的讯息通信 / 180
6.3.1 讯息伫列 / 181
6.3.2 讯息分发 / 183
6.3.3 讯息接收 / 183
6.4 执行绪安全处理 / 184
6.4.1 synchronized同步 / 184
6.4.2 RPC通信 / 186
6.4.3 SQLite调用 / 186
第7章 深入解析Android网路编程 / 187
7.1 无线接入技术概述 / 187
7.2 基础协定封装 / 190
7.3 Java网路编程接口 / 194
7.4 Apache网路编程接口 / 195
7.5 Android网路编程接口 / 196
7.6 Web服务实现 / 199
7.6.1 Web服务概述 / 199
7.6.2 KSOAP2的实现 / 199
7.7 XML解析器 / 200
7.7.1 Pull解析器 / 201
7.7.2 DOM解析器 / 202
7.7.3 SAX解析器 / 203
7.8 套接字编程 / 203
7.9 Web套用实现 / 205
7.10 SIP服务 / 212
7.11 NFC通信 / 214
7.12 RIL层处理 / 216
7.13 报文分析 / 220
第8章 Android图形、图像与动画精要 / 222
8.1 2D图像处理 / 222
8.1.1 基本接口 / 222
8.1.2 缩略图 / 228
8.1.3 图像浏览 / 228
8.1.4 人脸检测 / 230
8.2 3D图像处理 / 233
8.2.1 OpenGL ES的实现 / 233
8.2.2 RenderScript的实现 / 236
8.3 图形处理 / 239
8.3.1 基本接口 / 239
8.3.2 Surface渲染系统 / 244
8.4 动画处理 / 247
8.4.1 补间动画 / 248
8.4.2 帧动画 / 249
8.4.3 属性动画 / 250
第9章 深入解析Android多媒体编程 / 257
9.1 音频处理 / 257
9.1.1 音频播放 / 258
9.1.2 音频录製 / 264
9.1.3 音频管理 / 265
9.1.4 音效处理 / 267
9.2 视频处理 / 269
9.2.1 视频播放 / 270
9.2.2 视频录製 / 273
9.3 Camera服务 / 274
9.4 TTS的实现 / 276
第10章 Android跨语言调用详解 / 279
10.1 C语言与彙编语言的相互调用 / 279
10.2 C++与C语言的相互调用 / 280
10.3 Java对C/C++的调用 / 282
10.4 C/C++对Java的调用 / 287
第11章 Android安全框架解析 / 292
11.1 Java混淆器 / 293
11.2 接入许可权 / 294
11.2.1 创建接入许可权 / 294
11.2.2 套用许可权 / 294
11.2.3 许可权验证 / 296
11.2.4 接入服务 / 297
11.2.5 框架层接入限制 / 298
11.3 数字证书 / 298
第12章 Android的调试、测试与性能最佳化 / 300
12.1 Android调试 / 300
12.1.1 Logcat日誌调试 / 300
12.1.2 dmtracedump跟蹤 / 300
12.1.3 Dev Tools调试 / 301
12.1.4 萤幕截图分析 / 301
12.1.5 记忆体调试 / 302
12.2 Android布局最佳化 / 305
12.2.1 Layoutopt最佳化 / 305
12.2.2 Hierarchyviewer最佳化 / 306
12.3 Android测试 / 307
12.3.1 Monkey压力测试 / 307
12.3.2 JUnit回归测试 / 308
12.3.3 CTS兼容性测试 / 312
12.3.4 目标环境测试 / 313
12.4 Android性能最佳化 / 314
12.4.1 最佳化资源读取 / 314
12.4.2 最佳化APK载入 / 315
12.4.3 Dalvik虚拟机 / 315
12.4.4 TraceView性能分析 / 315
12.4.5 运行效率的最佳化 / 317
第13章 深入解析Android编译系统 / 318
13.1 原始码编译 / 318
13.1.1 映像档案 / 318
13.1.2 编译方法 / 319
13.1.3 主要脚本 / 322
13.1.4 环境变数 / 332
13.1.5 目标环境 / 333
13.2 SDK编译 / 333
13.2.1 Linux下的SDK编译 / 334
13.2.2 Windows下的SDK编译 / 334
13.2.3 ADT外挂程式的编译 / 334
13.3 NDK编译 / 335
13.3.1 编译脚本 / 336
13.3.2 配置脚本 / 337
13.3.3 GDB调试 / 340
13.3.4 NativeActivity实现 / 340
13.4 应用程式编译 / 342
13.4.1 本地环境变数 / 342
13.4.2 在Eclipse下编译 / 343
13.5 目标系统配置 / 343
13.5.1 自定义模拟器配置 / 343
13.5.2 目标板配置 / 348
13.5.3 目标环境配置 / 350
13.6 档案系统配置 / 350
13.7 编译工具 / 350
13.8 fastboot模式 / 352
第14章 Android启动过程详解 / 353
14.1 系统的启动过程 / 353
14.1.1 系统属性配置 / 354
14.1.2 档案系统挂载 / 355
14.1.3 守护进程启动 / 356
14.2 套用的启动过程 / 362
14.2.1 套用的启动配置 / 362
14.2.2 套用的启动过程 / 364
第15章 深入解析Android系统管理 / 369
15.1 记忆体管理 / 369
15.1.1 对象引用 / 369
15.1.2 垃圾回收策略 / 370
15.2 套用管理 / 373
15.2.1 套用的配置 / 373
15.2.2 套用的启动 / 374
15.2.3 套用的销毁 / 375
15.3 电源管理 / 376
15.3.1 电源管理框架 / 376
15.3.2 套用层策略 / 379
15.4 下载管理 / 380
15.4.1 Gingerbread前的下载 / 380
15.4.2 Gingerbread后的下载 / 382
15.5 系统配置 / 383
15.5.1 系统资料库 / 383
15.5.2 系统属性 / 385
15.6 数据管理 / 386
15.6.1 数据备份 / 386
15.6.2 剪下板管理 / 387
15.7 设备管理 / 388
15.7.1 管理工具 / 388
15.7.2 感测器管理 / 395
15.7.3 USB管理 / 398
15.8 套用发布 / 399
15.8.1 套用商店概述 / 399
15.8.2 目标环境的适配 / 401
15.8.3 发布套用 / 410
附录A Android开发环境搭建 / 413
附录B 常用Linux命令 / 436
附录C 编码规範 / 441
附录D 学习资源 / 447
参考文献 / 451