《Android 2高级编程 移动与嵌入式开发技术 第2版》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(英)梅尔著;王超译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2010
  • ISBN:9787302241027
  • 页数:509 页
图书介绍:本书是使用Android编写移动应用程序的实用指南书籍,介绍如何利用Android 2的功能来完善当前产品或创建新产品。

第1章 Android简介 1

1.1 一些背景信息 2

1.1.1 不远的过去 2

1.1.2 未来的前景 3

1.2 对Android的误解 3

1.3 开放的移动开发平台 4

1.4 自带的Android应用程序 4

1.5 Android SDK的特征 5

1.5.1 访问硬件(包括摄像头、GPS和加速计) 6

1.5.2 自带的Google地图、地理编码和基于位置的服务 6

1.5.3 后台服务 6

1.5.4 SQLite数据存储和检索数据库 7

1.5.5 共享数据和应用程序间通信 7

1.5.6 使用小组件、Live Folder和Live Wallpaper增强主屏幕 7

1.5.7 广泛的媒体支持和2D/3D图形 8

1.5.8 优化的内存和进程管理 8

1.6 开放手机联盟简介 8

1.7 运行Android的环境 8

1.8 从事移动开发的原因 9

1.9 从事Android开发的原因 9

1.9.1 推动Android普及的因素 10

1.9.2 Android的独到之处 10

1.9.3 改变移动开发格局 11

1.10 开发框架简介 11

1.10.1 开发包中的资源 12

1.10.2 理解Android软件栈 12

1.10.3 Dalvik虚拟机 14

1.10.4 Android应用程序架构 14

1.10.5 Android库 15

1.11 小结 15

第2章 开始入手 17

2.1 Android开发 18

2.1.1 开始前的准备工作 18

2.1.2 创建第一个Android应用程序 22

2.1.3 Android应用程序的类型 27

2.2 面向移动设备的开发 29

2.2.1 硬件限制带来的设计考虑事项 29

2.2.2 考虑用户环境 32

2.2.3 Android开发 33

2.3 To-Do List示例 36

2.4 Android开发工具 40

2.4.1 Android虚拟设备和SDK管理器 41

2.4.2 Android模拟器 42

2.4.3 Dalvik调试监控服务(DMS) 43

2.4.4 Android调试桥(ADB) 43

2.5 小结 44

第3章 创建应用程序和活动 45

3.1 Android应用程序的组成部分 46

3.2 应用程序清单简介 47

3.3 使用清单编辑器 52

3.4 Android应用程序生命周期 53

3.5 理解应用程序的优先级和进程状态 54

3.6 分离资源 55

3.6.1 创建资源 55

3.6.2 使用资源 62

3.6.3 To-Do List资源示例 65

3.6.4 为不同的语言和硬件创建资源 66

3.6.5 运行时配置更改 67

3.7 Application类简介 69

3.7.1 扩展和使用Application类 69

3.7.2 重写应用程序的生命周期事件 70

3.8 深入探讨Android活动 71

3.8.1 创建一个活动 71

3.8.2 活动生命周期 73

3.8.3 Android活动类 78

3.9 小结 78

第4章 创建用户界面 79

4.1 Android UI基本设计 80

4.2 视图简介 80

4.2.1 使用视图创建活动的用户界面 81

4.2.2 Android Widget工具箱 82

4.3 布局简介 83

4.3.1 使用布局 83

4.3.2 优化布局 85

4.4 创建新视图 85

4.4.1 修改现有的视图 86

4.4.2 创建复合控件 90

4.4.3 创建定制的视图 93

4.4.4 使用定制的控件 103

4.5 Drawable资源 104

4.5.1 形状、颜色和渐变 104

4.5.2 复合Drawable 107

4.5.3 NinePatch Drawable 110

4.6 分辨率和像素密度无关性 110

4.6.1 资源框架和分辨率无关性 111

4.6.2 分辨率无关性的最佳实践 112

4.6.3 反复测试 114

4.7 创建和使用菜单 115

4.7.1 Android菜单系统简介 115

4.7.2 定义活动的菜单 117

4.7.3 菜单项选项 118

4.7.4 动态更新菜单项 119

4.7.5 处理菜单选择 120

4.7.6 子菜单和上下文菜单 120

4.7.7 使用XML定义菜单 122

4.7.8 To-Do List示例续 123

4.8 小结 128

第5章 意图、广播接收器、Adapter和Internet 131

5.1 意图简介 132

5.1.1 使用意图来启动活动 132

5.1.2 使用意图过滤器来为隐式意图提供服务 138

5.1.3 使用意图过滤器作为插件和扩展 146

5.1.4 Linkify简介 148

5.1.5 使用意图来广播事件 151

5.2 待处理意图简介 155

5.3 Adapter简介 156

5.2.1 部分本地Adapter简介 156

5.2.2 定制ArrayAdapter 156

5.2.3 使用Adapter绑定数据 157

5.4 使用Internet资源 162

5.4.1 连接到Internet资源 163

5.4.2 使用Internet资源 164

5.5 对话框简介 164

5.5.1 Dialog类简介 164

5.5.2 将活动用作对话框 166

5.5.3 管理和显示对话框 167

5.6 创建一个地震查看器 168

5.7 小结 176

第6章 文件、保存状态和首选项 179

6.1 保存简单的应用程序数据 180

6.2 创建并保存首选项 180

6.3 检索共享首选项 181

6.4 为地震查看器创建一个设置活动 181

6.5 首选项活动和首选项框架概述 189

6.5.1 在XML中定义一个首选项屏幕布局 190

6.5.2 首选项活动简介 192

6.5.3 查找并使用首选项屏幕共享首选项 193

6.5.4 共享首选项变更监听程序简介 193

6.6 为地震查看器创建一个标准的首选项活动 194

6.7 保存活动状态 195

6.7.1 保存并还原实例状态 195

6.7.2 保存To-Do List活动状态 196

6.8 保存和加载文件 198

6.9 将静态文件作为资源添加 199

6.10 文件管理工具 200

6.11 小结 200

第7章 数据库和内容提供器 201

7.1 Android数据库简介 201

7.1.1 SQLite数据库简介 202

7.1.2 内容提供器简介 202

7.2 SQLite简介 202

7.3 游标和内容值 203

7.4 使用SQLite数据库 203

7.4.1 使用SQLiteOpenHelper 206

7.4.2 在不使用SQLiteHelper的情况下打开和创建数据库 207

7.4.3 Android数据库设计注意事项 207

7.4.4 查询数据库 207

7.4.5 从Cursor中提取结果 208

7.4.6 添加、更新和删除行 209

7.4.7 保存To-Do List 210

7.5 创建一个新的内容提供器 216

7.5.1 提供对数据源的访问 217

7.5.2 注册提供器 219

7.6 使用内容提供器 219

7.6.1 内容解析器简介 219

7.6.2 查询内容 219

7.6.3 添加、更新和删除内容 220

7.6.4 在内容提供器中访问文件 221

7.7 创建和使用地震内容提供器 222

7.7.1 创建内容提供器 222

7.7.2 使用提供器 227

7.8 本地Android内容提供器 229

7.8.1 使用媒体库提供器 230

7.8.2 使用联系人提供器 231

7.9 小结 235

第8章 地图、地理编码和基于位置的服务 237

8.1 使用基于位置的服务 238

8.2 配置模拟器来测试基于位置的服务 238

8.3 更新模拟位置提供器中的位置 238

8.4 选择一个位置提供器 239

8.4.1 查找可用的提供器 239

8.4.2 根据标准查找位置提供器 240

8.5 确定自己所在的位置 241

8.5.1 “Where Am I”示例 241

8.5.2 追踪移动 244

8.5.3 更新“Where Am I”示例中的位置 245

8.6 使用邻近提醒 247

8.7 使用地理编码器 248

8.7.1 反向地理编码 249

8.7.2 前向地理编码 249

8.7.3 对“Where Am I”示例进行地理编码 251

8.8 创建基于地图的活动 252

8.8.1 MapView和MapActivity简介 252

8.8.2 获得地图的API键 253

8.8.3 创建一个基于地图的活动 254

8.8.4 配置和使用MapView 255

8.8.5 使用MapController 256

8.8.6 对“Where Am I”示例使用地图 256

8.8.7 创建和使用覆盖(Overlay) 260

8.8.8 MyLocationOverlay简介 267

8.8.9 ItemizedOverlay和OverlayItem简介 267

8.8.10 将视图固定到地图和地图的某个位置上 269

8.9 对Earthquake示例添加地图功能 271

8.10 小结 276

第9章 后台工作 277

9.1 服务简介 278

9.1.1 创建和控制服务 279

9.1.2 将活动和服务绑定 289

9.1.3 后台服务的优先级 291

9.2 使用后台线程 292

9.2.1 使用AsyncTask运行异步任务 292

9.2.2 使用AsyncTask将Earthquake Service移动到后台线程 294

9.2.3 手动创建线程和GUI线程同步 295

9.3 创建一个Toast 297

9.3.1 定制Toast 297

9.3.2 在工作线程中使用Toast 299

9.4 通知简介 299

9.4.1 通知管理器简介 300

9.4.2 创建通知 300

9.4.3 触发通知 304

9.4.4 向地震监控器中添加通知 304

9.4.5 高级通知技术 307

9.4.6 持续的和连续的通知 310

9.5 使用警报 310

9.5.1 设置重复警报 312

9.5.2 使用重复警报更新Earthquake 313

9.6 小结 315

第10章 个性化手机屏幕 317

10.1 主屏幕小组件简介 318

10.2 创建App Widgets 318

10.2.1 创建小组件布局 319

10.2.2 定义小组件设置 321

10.2.3 创建小组件意图接收器并将其添加到应用程序清单中 321

10.2.4 Remote Views(远程视图)和App Widget Manager简介 322

10.2.5 刷新小组件 327

10.2.6 创建并使用小组件配置活动 329

10.3 创建地震小组件 330

10.4 Live Folder简介 335

10.4.1 创建Live Folder 336

10.4.2 创建Earthquake Live Folder 338

10.5 将搜索添加到应用程序以及快速搜索框中 340

10.5.1 将搜索添加到应用程序中 341

10.5.2 在快速搜索框中显示搜索结果 344

10.5.3 将搜索添加到Earthquake示例中 344

10.6 创建Live Wallpaper 348

10.6.1 创建Live Wallpaper定义资源 348

10.6.2 创建Wallpaper服务 348

10.6.3 创建Wallpaper服务引擎 349

10.7 小结 350

第11章 音频、视频以及摄像头的使用 351

11.1 播放音频和视频 352

11.1.1 Media Player简介 352

11.1.2 准备音频播放 353

11.1.3 准备视频播放 354

11.1.4 控制播放 357

11.1.5 管理媒体播放输出 358

11.2 录制音频和视频 358

11.2.1 使用意图录制视频 358

11.2.2 使用媒体刻录机 359

11.13 使用摄像头并拍摄照片 362

11.3.1 使用意图拍摄照片 362

11.3.2 控制摄像头并拍摄照片 364

11.3.3 读取并写入JPEG EXIF图像详细信息 368

11.4 向媒体库中添加新媒体 369

11.4.1 使用媒体扫描仪 369

11.4.2 向媒体库中插入媒体 370

11.5 原始音频操作 370

11.5.1 录制带有音频记录的声音 370

11.5.2 使用音频轨道播放声音 372

11.6 语音识别 373

11.7 小结 374

第12章 电话服务和SMS 377

12.1 电话服务 378

12.1.1 启动拨号程序以初始化电话呼叫 378

12.1.2 替换本机拨号程序 378

12.1.3 访问电话和网络属性以及状态 379

12.1.4 监视电话状态、电话活动以及数据连接中的变化 382

12.2 SMS和MMS简介 386

12.2.1 在应用程序中使用SMS和MMS 386

12.2.2 使用意图和本机客户端从应用程序中发送SMS和MMS 387

12.2.3 手动发送SMS消息 388

12.2.4 监听传入的SMS消息 391

12.2.5 紧急响应程序SMS示例 393

12.2.6 自动化紧急响应程序 402

12.3 小结 410

第13章 蓝牙、网络和Wi-Fi 411

13.1 使用蓝牙 411

13.1.1 访问本地蓝牙设备适配器 412

13.1.2 管理蓝牙属性和状态 413

13.1.3 可发现性和远程设备发现 415

13.1.4 蓝牙通信 418

13.1.5 蓝牙数据传输示例 424

13.2 管理网络连接 433

13.2.1 Connectivity Manager(连接管理器)简介 433

13.2.2 读取用户首选项用于后台数据传输 434

13.2.3 监视网络详细信息 435

13.2.4 查找并配置网络首选项以及控制硬件信号 435

13.2.5 监视网络连接 436

13.3 管理Wi-Fi 436

13.3.1 监视Wi-Fi连接 437

13.3.2 监视活动连接详细信息 437

13.3.3 扫描热点 438

13.3.4 管理Wi-Fi配置 438

13.3.5 创建Wi-Fi网络配置 439

13.4 小结 439

第14章 传感器 441

14.1 使用传感器和传感器管理器 442

14.2 解释传感器数值 445

14.3 使用指南针、加速计和方向传感器 445

14.3.1 加速计简介 446

14.3.2 检测加速度变化 447

14.3.3 创建一个G-Forccometer(重力测力计) 448

14.3.4 确定设备方向 451

14.3.5 创建一个指南针和人工地平仪 454

14.4 控制设备振动 458

14.5 小结 459

第15章 Android高级开发 461

15.1 Android的安全性 462

15.1.1 Linux内核安全 462

15.1.2 权限简介 462

15.1.3 声明和实施权限 463

15.1.4 为广播意图实施权限 464

15.2 使用Wake Lock 464

15.3 Android Text To Speech简介 465

15.4 使用AIDL来支持服务的IPC 467

15.4.1 实现AIDL接口 467

15.4.2 将类对象作为Parcelable传递 468

15.4.3 实现和提供IPC接口 470

15.5 使用Internet服务 472

15.6 构建内容丰富的用户界面 473

15.6.1 使用动画 473

15.6.2 高级画布绘图 484

15.6.3 Surface View简介 499

15.6.4 创建交互式控件 502

15.7 小结 508