第一篇 Android开发起航 2
第1章 环境搭建 2
1.1搭建Android开发环境的需求 2
1.2 Android开发环境配置 3
1.2.1 JDK的下载、安装及配置 3
1.2.2下载并安装Eclipse 6
1.2.3 Android SDK的安装和配置 6
1.2.4 ADT的安装和配置 9
1.2.5创建并运行模拟器 12
第2章 测试方法及工具 16
2.1向世界问好——HelloWorld项目 16
2.1.1两种创建HelloWorld项目的方法 16
2.1.2 HelloWorld项目中的默认配置解读 23
2.2 HelloWorld项目运行及调试信息 26
2.2.1运行HelloWorld应用程序 26
2.2.2 HelloWorld运行过程的调试信息 29
2.3DDMS工具介绍 30
2.3.1 DDMS工具及其打开方式 30
2.3.2使用DDMS工具调测 HelloWorld项目 31
2.3.3详解DDMS工具界面 36
2.3.4 DDMS工具菜单中的重要工具 41
2.4Android的主要工具介绍 62
2.4.1 ADB工具 63
2.4.2 android工具 64
2.4.3 sdcard相关命令 65
2.4.4模拟器的操作 65
2.4.5 LogCat工具 67
2.4.6数据库工具 68
2.5 Android其他小工具简介 68
2.5.1截屏工具 69
2.5.2 Monkey工具 69
2.6下载谷歌播放器源代码 72
第二篇 Android组件及其配置 78
第3章 应用的五脏六腑——AndroidManifest.xml 78
3.1 Android Manifest.xml文件 78
3.2 一切从〈manifest〉节 点开始 82
3.2.1 xmlns : android属性——定义命名空间 82
3.2.2 package属性——应用程序的身份证 84
3.2.3 android: sharedUserld属性——共享数据 85
3.2.4 android: versionCode属性——内部版本号 86
3.2.5 android: versionName属性——显示给用户的版本号 86
3.2.6 android: instal lLocation属性——安装位置 87
3.2.7 HelloWorld示例——再向世界打个招呼 89
3.2.8动动手,验证知识 90
3.3应用程序权限的声明 93
3.3.1 〈uses-permission〉——应用程序的权限申请 93
3.3.2 〈permission〉节点——自定义应用程序的访问权限 100
3.3.3 〈uses-sdk〉节点——SDK版本限定 103
3.3.4 〈instrumentation〉节点——应用的监控器 105
3.3.5动动手,验证知识 107
3.3.6 〈instrumentation〉节点的另一种使用方法 114
3.4应用程序的根节点——〈application〉 117
3.4.1 〈application〉节点配置 117
3.4.2音乐播放器的〈application〉节点 118
3.4.3如何实现Application类 119
3.4.4 Application提供的函数及其用法 123
3.5backupAgent的用法 134
3.5.1 backupAgent简介 134
3.5.2如何使用backupAgent来实现备份 134
3.5.3从备份中实现恢复 141
3.5.4如何使用bmgr工具 144
3.6〈application〉的属性详解 150
3.6.1 android: allowBackup 151
3.6.2 allowTaskReparenting 152
3.6.3 android:killAfterRestore 152
3.6.4 android: restoreAnyversion 153
3.6.5 android: debuggable 156
3.6.6 android: description 158
3.6.7 android: enabled 159
3.6.8 android:hasCode 160
3.6.9 android:hardwareAccele-rated 161
3.6.10 android: label/android: icon 162
3.6.11 android:logo 164
3.6.12 android:manageSpace-Activity 165
3.6.13 android: permission 165
3.6.14 android:persistent 165
3.6.15android:process 166
3.6.16 android:taskAffinity 167
3.6.17 android:theme 168
3.6.18 android:uioptions 171
3.6.19 android :vmSafeMode 174
3.6.20 android:largeHeap 174
第4章 让程序活动起来——Activity 176
4.1什么是Activity 176
4.1.1简介 176
4.1.2解读音乐播放器中的Activity 177
4.2定义Activity 179
4.2.1定义Activity的回调方法 179
4.2.2在AndroidManifest.xml中声明Activity 181
4.3管理Activity的生命周期 182
4.3.1 Activity的3种状态 182
4.3.2实现Activity的生命周期回调 182
4.3.3回调方法在音乐播放器中的应用 186
4.4保存和协调Activity 189
4.4.1保存Activity状态 189
4.4.2协调Activity 191
4.5解读关于生命周期的一个实例 192
4.6〈activity〉节点的属性 195
4.6.1 android: allowTaskRepa-renting 195
4.6.2 android:alwaysRetain-TaskState 195
4.6.3 android: clearTaskon-Launch 196
4.6.4 android:configChanges 196
4.6.5 android: enabled 197
4.6.6 android: excludeFrom-Recents 197
4.6.7 android: exported 197
4.6.8 android: finishonTask-Launch 197
4.6.9 android: hardwareAccele-rated 198
4.6.10 android: icon 198
4.6.11 android: label 198
4.6.12 android: launchMode 198
4.6.13 android: multiprocess 199
4.6.14 android:name 199
4.6.15android:noHistory 199
4.6.16 android: permission 200
4.6.17 android:process 200
4.6.18 android: screenorienta-ticn 200
4.6.19 android: stateNotNeeded 200
4.6.20 android: taskAffinity 201
4.6.21 android: theme 201
4.6.22 android:windowSoft-InputMode 201
第5章 我会默默地为你服务——service 202
5.1服务 202
5.1.1何为服务 202
5.1.2服务可采用的方法 202
5.1.3 〈service〉节点的属性 203
5.2创建并使用服务 204
5.2.1创建Service子类的重要回调方法 204
5.2.2在manifest文件中声明服务 205
5.3创建一个启动的服务 206
5.3.1继承IntentService类 206
5.3.2继承Service类 207
5.3.3启动服务 208
5.3.4停止服务 208
5.3.5 TuringService实例 209
5.4创建一个被绑定的服务 212
5.4.1基本介绍 212
5.4.2 TuringBoundService实例 213
第6章 我可以更漂亮——布局 217
6.1最简单的布局类——FrameLayout 217
6.1.1 FrameLayout简介 217
6.1.2 FrameLayout特有的属性 218
6.1.3 FrameLayout内子视图的特色布局参数 220
6.2线性布局——LinearLayout 222
6.2.1 LinearLayout简介 222
6.2.2 LinearLayout的特有属性 225
6.2.3 LinearLayout特有的布局参数 231
6.3相对布局——RelativeLayout 231
6.3.1 RelativeLayout简介 231
6.3.2 RelativeLayout的特色属性及其参数 233
第三篇 核心服务解析篇 244
第7章 Android系统的启动 244
7.1初始化流程 244
7.1.1应用的初始化流程 244
7.1.2 init.rc的用法 246
7.1.3用init解析整个init.rc文件 251
7.2创建system_service进程 254
7.2.1创建流程 254
7.2.2 system-service简介 256
第8章 备份管理服务 258
8.1备份管理服务的启动方式和流程 258
8.1.1备份管理服务的启动 258
8.1.2详解备份管理服务的流程 258
8.2使用备份管理服务 263
8.2.1 bmgr工具简介 263
8.2.2使用bmgr工具实现备份与恢复 264
8.2.3用编程的方式实现备份与恢复 272
8.3应用程序在被重新安装过程中的备份和还原 274
第9章 Activity管理服务 276
9.1 ActivityManagerService简介 276
9.2 ActivityManagerService的使用 276
9.2.1孵化进程 276
9.2.2 ActivityManagerService启动的3个阶段 277
9.2.3 ActivityManagerService的工作原理 289
9.2.4 Act ivityManagerService依赖的两个类 294
9.3 Activity的启动流程 295
9.3.1启动Activity的方式 295
9.3.2 Activity启动的4个阶段 297
9.4结束Activity 306
9.4.1结束Activity的3种主要方法 306
9.4.2结束Activity的4个阶段 308
9.5广播接收器 315
9.5.1注册广播接收器 315
9.5.2 ActivityManagerService的行为 316
9.6服务 318
9.6.1服务的数据结构 318
9.6.2启动服务 320
9.6.3停止服务 327
9.6.4以绑定的方式启动/停止服务 331
9.7发布Content Provi der 339
9.7.1启动ContentProvider发布工作时的操作 339
9.7.2解读发布流程中Activity-ManagerService的行为 342
9.8 ActivityManagerService如何应付异常 345
第10章 包管理服务 349
10.1PackageManagerService概述 349
10.2PackageManagerService的组成和应用 349
10.2.1 PackageManagerService的重要组成部分 350
10.2.2解读PackageManager-Service如何关注目录 351
10.2.3 PackageManagerService定义的PackageParser类 354
10.3启动PackageManagerService 355
10.3.1 PackageManagerService的启动流程 355
10.3.2 PackageManagerService构造函数的流程 356
10.3.3 scanDirLI()方法 361
10.4解析AndroidManifest.xml文件 366
10.4.1解析流程 366
10.4.2解析音乐播放器的AndroidManifest.xml文件 368
10.5安装应用程序 377
10.5.1用ADB的install命令安装应用程序 377
10.5.2解析installPackageWith-Verification()的行为 379
10.6卸载应用程序 383