出版日期:2014-8
ISBN:9787115358567
作者:张泳,葛丽娜
页数:396页
内容概要
张泳
多年从事各种软件开发工作,熟练使用C++、JAVA编程语言。2009年初开始接触Android,精通Eclipse下的Android开发和测试,曾独立完成Android桌面、Android RSS阅读器(已商用)、Android音乐播放器、RSS桌面应用等多个应用程序的开发。熟悉Android SDK的工作原理、OPENGL技术、Android开发,并对Android重力感应、NFC、SIP有所研究。
近两年来,主要从事Android应用开发及定制开发等工作,包括定制化Android版本(修改Launcher、settings、锁屏等部分),解决Android 2.1~4.4原生代码的疑难问题,独立完成Android平台上的多个控件开发。
书籍目录
第一篇 Android开发起航
第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.3 DDMS工具介绍 30
2.3.1 DDMS工具及其打开方式 30
2.3.2 使用DDMS工具调测HelloWorld项目 31
2.3.3 详解DDMS工具界面 36
2.3.4 DDMS工具菜单中的重要工具 41
2.4 Android的主要工具介绍 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组件及其配置
第3章 应用的五脏六腑——AndroidManifest.xml 78
3.1 Android Manifest.xml文件 78
3.2 一切从节点开始 82
3.2.1 xmlns:android属性——定义命名空间 82
3.2.2 package属性——应用程序的身份证 84
3.2.3 android:sharedUserId属性——共享数据 85
3.2.4 android:versionCode属性——内部版本号 86
3.2.5 android:versionName属性——显示给用户的版本号 86
3.2.6 android:installLocation属性——安装位置 87
3.2.7 HelloWorld示例——再向世界打个招呼 89
3.2.8 动动手,验证知识 90
3.3 应用程序权限的声明 93
3.3.1——应用程序的权限申请 93
3.3.2节点——自定义应用程序的访问权限 100
3.3.3节点——SDK版本限定 103
3.3.4节点——应用的监控器 105
3.3.5 动动手,验证知识 107
3.3.6节点的另一种使用方法 114
3.4 应用程序的根节点——117
3.4.1节点配置 117
3.4.2 音乐播放器的节点 118
3.4.3 如何实现Application类 119
3.4.4 Application提供的函数及其用法 123
3.5 backupAgent的用法 134
3.5.1 backupAgent简介 134
3.5.2 如何使用backupAgent来实现备份 134
3.5.3 从备份中实现恢复 141
3.5.4 如何使用bmgr工具 144
3.6的属性详解 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.15 android: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节点的属性 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.15 android:noHistory 199
4.6.16 android:permission 200
4.6.17 android:process 200
4.6.18 android:screenOrienta-tion 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节点的属性 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
第三篇 核心服务解析篇
第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 ActivityManagerService依赖的两个类 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 发布ContentProvider 339
9.7.1 启动ContentProvider发布工作时的操作 339
9.7.2 解读发布流程中Activity-ManagerService的行为 342
9.8 ActivityManagerService如何应付异常 345
第10章 包管理服务 349
10.1 PackageManagerService概述 349
10.2 PackageManagerService的组成和应用 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
作者简介
《深入剖析Android开发:小应用里的大智慧》以谷歌音乐播放器为例,全面介绍了Android平台应用程序的开发,内容主要包括框架原理、控件使用及定制化、Android四大组件的原理和定制,重点关注应用程序的开发要点。本书主线清晰,由浅入深,没有过多繁杂的例子,只以谷歌播放器为主例,详细分析各个部件的实现过程。分析过程贯穿全书,图文并茂,讲解精细,涵盖丰富的扩展知识和作者多年的开发经验。真正做到以一个例子来解析Android系统关键部件,让读者在理解的前提下,能够举一反三,进而做出非凡的应用程序。