新書推薦:
《
新能源材料
》
售價:NT$
290.0
《
传统文化有意思:古代发明了不起
》
售價:NT$
199.0
《
亚述:世界历史上第一个帝国的兴衰
》
售價:NT$
490.0
《
人工智能与大数据:采煤机智能制造
》
售價:NT$
440.0
《
新民说·逝去的盛景:宋朝商业文明的兴盛与落幕(上下册)
》
售價:NT$
790.0
《
我从何来:自我的心理学探问
》
售價:NT$
545.0
《
失败:1891—1900 清王朝的变革、战争与排外
》
售價:NT$
390.0
《
送你一匹马(“我不求深刻,只求简单。”看三毛如何拒绝内耗,为自己而活)
》
售價:NT$
295.0
|
編輯推薦: |
是技术的涵盖面广泛并且讲解精细;内容的主线清晰,由浅入深;语言通俗易懂,图片恰当。
作者多年从事Android的应用以及系统定制开发,经验丰富。
对知识点的描述语言绝大多数来自作者的工作经验以及总结,语言通俗易懂,贴近实际工作需要。
使用一个谷歌播放器这一成功应用为例子,说明Android的重要的知识点,读者可以很清楚地了解如何使用相关知识点,并了解它们是如何发挥作用的。
|
內容簡介: |
《深入剖析Android开发:小应用里的大智慧》以谷歌的音乐播放器为例,深入剖析了Android的重要组件和核心服务,书中首先介绍了Android开发环境的搭建,以及Android SDK中一些重要工具的用法,接着介绍了Android的组件及其配置,最后从源代码的角度剖析了Android的核心管理服务。
《深入剖析Android开发:小应用里的大智慧》不仅适合从事或者正准备从事Android开发的工程师学习,也可以作为培训教材使用。
|
關於作者: |
张泳
多年从事各种软件开发工作,熟练使用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: labelandroid: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
|
|