《Android移动应用开发从入门到精通》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)ShaneConder著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2010
  • ISBN:9787115230195
  • 页数:470 页
图书介绍:本书全面而深入讲解了涵盖了Android移动应用开发,特别是作者数年来在移动开发领域所积累的经验,以及成功进行移动项目开发所需的全部概念和实用技术,包括移动开发过程与传统软件开发的区别,帮助你节约宝贵时间和规避隐患的技巧。

第一部分 Android概览 2

第1章 Android简介 2

1.1 移动软件开发简史 2

1.1.1 遥想当年 2

1.1.2 “砖头” 3

1.1.3 无线应用协议(WAP) 4

1.1.4 商用移动平台 6

1.2 开放手机联盟(OHA) 8

1.2.1 无线Google 8

1.2.2 开放手机联盟成立 8

1.2.3 制造商:设计Android手机 9

1.2.4 内容提供商:开发Android应用程序 9

1.2.5 移动操作系统:传播Android体验 9

1.2.6 充分发挥Android的优势 10

1.3 Android平台的不同之处 10

1.3.1 Android:下一代平台 10

1.3.2 免费开放源代码 11

1.3.3 熟悉和廉价的开发工具 11

1.3.4 合理的开发人员学习曲线 12

1.3.5 强大的应用程序开发支持 12

1.3.6 丰富、安全的应用集成 12

1.3.7 无障碍发布 13

1.3.8 为应用程序提供的“自由市场” 13

1.3.9 新生并逐渐成长的平台 14

1.4 Android平台 14

1.4.1 Android的基本体系结构 14

1.4.2 安全与许可权限 16

1.4.3 开发Android应用程序 17

小结 18

参考资料和更多信息 19

第2章 你的Android开发环境 20

2.1 配置你的开发环境 20

2.1.1 支持的操作系统 20

2.1.2 安装Java开发包(JDK) 20

2.1.3 安装Eclipse开发环境 21

2.1.4 其他开发环境 22

2.1.5 安装Android软件开发包(SDK) 22

2.1.6 安装与配置Android Eclipse插件(ADT) 23

2.1.7 ADT安装释疑 25

2.1.8 升级Android SDK 25

2.1.9 Android SDK的问题 25

2.1.10 配置Android编译硬件 26

2.1.11 配置操作系统以适应设备编译 26

2.1.12 本书使用的开发环境 27

2.2 探索Android SDK 27

2.2.1 Android SDK许可协议 27

2.2.2 Android SDK文档 28

2.2.3 Android应用程序框架 29

2.2.4 Android工具 30

2.2.5 Android示例应用程序 33

小结 34

参考资料和更多信息 34

第3章 编写第一个Android应用程序 35

3.1 测试你的开发环境 35

3.1.1 在Eclipse工程中导入Snake应用程序 35

3.1.2 为Snake工程创建Android虚拟设备(AVD) 37

3.1.3 为Snake工程创建运行配置参数 37

3.1.4 在Android模拟器中运行Snake应用程序 39

3.2 构建你的第一个Android应用程序 39

3.2.1 创建和配置新的Android工程 40

3.2.2 Android应用程序的核心文件和目录 40

3.2.3 为新工程创建Android虚拟设备 41

3.2.4 为工程配置运行参数 41

3.2.5 在模拟器中运行Android应用程序 42

3.2.6 在模拟器中调试Android应用程序 43

3.2.7 为Android应用程序添加日志记录 45

3.2.8 为应用程序添加媒体支持 46

3.2.9 为应用程序添加基于位置的服务(LBS) 48

3.2.10 在硬件上调试应用程序 50

小结 51

参考资料和更多信息 51

第二部分 Android应用程序设计精髓第4章 剖析Android应用程序 54

4.1 Android应用程序的生存周期 54

4.1.1 使用Activity执行应用程序任务 54

4.1.2 使用Intent在不同Activity之间实现跳转 55

4.1.3 Android Activity的生存周期 58

4.2 使用Android Manifest文件定义应用程序 62

4.2.1 管理你的应用程序身份 65

4.2.2 注册Activity和其他应用程序组件 65

4.2.3 使用许可权限 67

4.2.4 指定应用程序所需输入设备和软件 69

4.2.5 使用库和Android SDK版本 70

4.2.6 在Manifest文件中定义应用程序的其他配置参数 71

小结 71

第5章 管理应用程序资源 72

5.1 什么是资源 72

5.1.1 应用程序资源的存储方式和位置 72

5.1.2 资源目录的层级结构 72

5.1.3 资源的类型 73

5.1.4 存储不同的资源类型 74

5.1.5 使用程序访问资源 75

5.2 实例:使用Eclipse设置简单资源 75

5.3 使用资源 78

5.3.1 使用String(字符串)资源 79

5.3.2 使用格式化的String资源 80

5.3.3 使用String数组 81

5.3.4 使用颜色 82

5.3.5 使用尺寸 82

5.3.6 使用简单Drawable资源 83

5.3.7 使用图像 84

5.3.8 使用动画 88

5.3.9 使用菜单 89

5.3.10 使用XML文件 90

5.3.11 使用原始文件 91

5.3.12 资源引用 92

5.3.13 使用布局(layout) 93

5.3.14 使用样式(style) 97

5.3.15 使用主题(theme) 100

5.4 引用系统资源 100

5.5 管理各种应用程序配置 101

5.5.1 为本地化和设备配置指定资源 102

5.5.2 在程序中使用适当的配置资源 104

5.5.3 高效地组织应用程序资源 106

小结 107

参考资料和更多信息 108

第三部分 Android用户界面设计精髓第6章 探索用户界面屏幕元素 110

6.1 Android视图、Widget和布局简介 110

6.1.1 Android视图简介 110

6.1.2 Android Widget简介 110

6.1.3 Android布局简介 111

6.2 使用TextView显示文本 111

6.2.1 配置布局和尺寸 112

6.2.2 在文本中创建上下文链接 113

6.3 使用EditText和Spinner获取用户文本 114

6.3.1 使用自动补全辅助用户 116

6.3.2 使用输入过滤器约束用户输入 118

6.3.3 使用Spinner Widget的下拉列表约束用户输入 119

6.4 使用按钮、多选框和单选组 121

6.4.1 使用基本按钮 122

6.4.2 使用多选框和Toggle按钮 123

6.4.3 使用RadioGroup和RadioButton 124

6.5 获取用户输入的日期和时间 126

6.6 向用户显示信息 127

6.6.1 使用ProgressBar指示进度 128

6.6.2 使用SeekBar指示和调整进度 130

6.6.3 使用RatingBar指示和调整评分 130

6.6.4 使用Chronometer指示时间推移 131

6.6.5 使用AnalogClock和DigitalClock指示当前时间 133

6.7 为用户提供选项和上下文菜单 133

6.7.1 使用选项菜单 133

6.7.2 使用ContextMenu(上下文菜单) 136

6.8 掌控用户事件 137

6.8.1 监听触摸模式状态改变 138

6.8.2 监听全屏幕上的事件 138

6.8.3 监听长时单击 139

6.8.4 监听手势 140

6.8.5 监听焦点改变 142

6.8.6 监听屏幕旋转 143

6.9 使用样式 143

6.10 使用主题 146

小结 147

第7章 使用布局设计Android用户界面 149

7.1 创建Android用户界面 149

7.1.1 使用XML资源创建布局 149

7.1.2 使用代码创建布局 150

7.2 使用ViewGroup组织用户界面 152

7.3 使用内建的布局类 156

7.3.1 使用AbsoluteLayout 158

7.3.2 使用FrameLayout 159

7.3.3 使用LinearLayout 161

7.3.4 使用RelativeLayout 162

7.3.5 使用TableLayout 165

7.3.6 在屏幕上使用多布局 167

7.4 使用内建的View容器类 167

7.4.1 结合AdapterView使用数据驱动View容器 168

7.4.2 使用TabActivity和TabHost组织视图 171

7.4.3 探索其他视图容器 173

7.5 使用AppWidget显示应用程序视图 175

7.6 成为AppWidget提供者 176

小结 177

第8章 Android绘图与动画 178

8.1 屏幕绘图 178

8.2 使用文字 182

8.2.1 使用默认字体 182

8.2.2 使用自定义字体 183

8.2.3 测量文字所需的屏幕尺寸 184

8.3 使用位图 184

8.3.1 在画布上绘制位图 185

8.3.2 缩放位图 185

8.3.3 使用Matrix变换位图 186

8.4 使用图形 186

8.4.1 用XML资源定义图形 187

8.4.2 使用程序定义图形 187

8.4.3 绘制各种图形 188

8.5 使用动画 193

8.5.1 使用逐帧动画 194

8.5.2 使用补间动画 195

小结 200

第四部分 常用Android API第9章 使用Android数据和存储API 202

9.1 使用应用程序首选项 202

9.1.1 创建私有和共享首选项 203

9.1.2 搜索和读取首选项 203

9.1.3 新增、修改和删除首选项 204

9.1.4 使用Android文件系统查找首选项数据 204

9.2 使用文件和目录 205

9.2.1 探索Android应用程序目录 206

9.2.2 在默认应用程序目录中创建和写入文件 206

9.2.3 在默认应用程序目录中读取文件内容 207

9.2.4 使用Android文件系统操作其他目录和文件 208

9.3 使用SQLite数据库储结构化数据 209

9.3.1 创建SQLite数据库 210

9.3.2 创建、修改和删除数据库记录 212

9.3.3 在SQLite数据库中执行查询 215

9.3.4 关闭和删除SQLite数据库 220

9.3.5 设计持久数据库 220

9.3.6 向应用程序界面绑定数据 223

9.4 使用Content Provider在应用程序间共享数据 227

9.4.1 为访问图像调整Content Provider 227

9.4.2 探索Android的部分内建Content Provider 232

9.4.3 在Content Provider中修改数据 239

9.5 使用自定义Content Provider扩展你的Android应用程序 241

9.5.1 继承Content Provider 241

9.5.2 定义数据URI 242

9.5.3 定义数据列 242

9.5.4 实现query()、insert()、update()、delete()和getType() 243

9.5.5 更新Manifest文件 248

9.6 使用Live Folder 249

小结 251

参考资料和更多信息 252

第10章 使用Android网络API 253

10.1 访问因特网(HTTP) 253

10.1.1 从Web读取数据 253

10.1.2 使用HttpURLConnection 254

10.1.3 解析从网络获取的XML 255

10.1.4 使用线程访问网络 257

10.1.5 显示从网络资源获取的图像 260

10.1.6 获取Android网络状态 262

10.2 使用WebView浏览Web 263

小结 265

参考资料和更多信息 266

第11章 使用位置服务(LBS)API 267

11.1 使用全球定位服务(GPS) 267

11.1.1 查找你的位置 267

11.1.2 定位你的模拟器 269

11.2 位置地理编码 269

11.3 在地图上标注位置 272

11.3.1 地图标注内容 272

11.3.2 地图标注视图 272

11.3.3 获得调试API Key 274

11.3.4 拖曳地图视图 275

11.3.5 缩放地图视图 276

11.3.6 标记点 277

11.4 位置服务扩展应用 281

小结 282

参考资料和更多信息 282

第12章 使用Android多媒体API 283

12.1 操作静态图像 283

12.1.1 使用摄像头捕捉静态图像 283

12.1.2 分享图像 287

12.1.3 将图像指定为墙纸 288

12.2 使用视频 289

12.2.1 录制视频 289

12.2.2 播放视频 290

12.3 使用音频 291

12.3.1 录制音频 291

12.3.2 播放音频 293

12.3.3 共享音频 294

12.3.4 使用铃音 294

小结 295

第13章 使用Android电话API 296

13.1 使用电话功能包 296

13.1.1 为获取手机状态信息取得许可权限 296

13.1.2 请求获取通话状态 297

13.1.3 请求获取服务信息 299

13.1.4 使用电话号码 299

13.2 使用短消息 300

13.2.1 获得发送和接收短消息的许可权限 301

13.2.2 发送短消息 301

13.2.3 接收短消息 303

13.3 拨打电话 305

小结 307

参考资料和更多信息 307

第14章 通过OpenGL ES使用Android 3D图形 308

14.1 定义OpenGL ES 308

14.2 使用基于OpenGL ES的Android 3D应用程序 309

14.2.1 创建SurfaceView 309

14.2.2 启动OpenGL ES线程 311

14.2.3 初始化EGL 312

14.2.4 初始化GL 314

14.2.5 绘制 315

14.3 绘制3D物体 316

14.3.1 绘制顶点(vertices) 316

14.3.2 为顶点着色 317

14.3.3 绘制更多复杂物体 318

14.3.4 照亮你的场景 320

14.3.5 为对象赋予材质 321

14.4 同Android视图和事件进行交互 323

14.4.1 允许OpenGL线程向应用程序线程发送信息 324

14.4.2 允许应用程序线程向OpenGL线程发送信息 325

14.5 清理OpenGL ES 326

14.6 使用GLSurfaceView类 327

小结 330

参考资料和更多信息 330

第15章 使用Android可选硬件API 331

15.1 使用设备传感器 331

15.2 使用Wi-Fi 334

15.3 监视电池 337

小结 339

第五部分 更多Android应用程序设计原则第16章 使用通知 342

16.1 使用状态栏发布通知 342

16.2 让手机震动 345

16.3 灯光闪烁 346

16.4 发出声响 347

16.5 自定义通知 348

小结 350

第17章 使用服务 351

17.1 创建服务 351

17.2 控制服务 355

17.3 实现远程接口 356

17.4 实现可包装(parcelable)类 358

小结 360

第六部分 对外发布你的Android应用程序第18章 移动软件开发过程 364

18.1 移动开发过程概览 364

18.2 选择一种软件开发方法 364

18.2.1 理解“瀑布模型”的危险 365

18.2.2 认识迭代式开发的价值 365

18.3 整合应用程序需求 366

18.3.1 确定工程需求 366

18.3.2 为移动应用程序开发用例 367

18.3.3 吸纳第三方需求 367

18.3.4 管理手机设备数据库 368

18.4 项目风险评估 370

18.4.1 确定目标手机 370

18.4.2 获取目标手机 371

18.4.3 确定应用程序需求的可行性 372

18.4.4 理解质量保障的风险 372

18.5 编写基本项目文档 373

18.5.1 为质量保障制定测试计划 374

18.5.2 提供第三方所需的文档 374

18.5.3 提供维护和移植所需的文档 374

18.6 实现移动应用程序配置管理系统 374

18.6.1 选择一个源代码控制系统 374

18.6.2 实现一个可用的版本管理系统 375

18.7 设计移动应用程序 375

18.7.1 认识移动设备的局限 375

18.7.2 移动应用程序体系结构探索 376

18.7.3 可扩展和维护设计 376

18.7.4 应用程序交互设计 377

18.8 开发移动应用程序 377

18.9 测试移动应用程序 378

18.10 发布移动应用程序 378

18.10.1 确定目标市场 379

18.10.2 将市场需求引入应用程序需求 379

18.11 支持和维护移动应用程序 379

18.11.1 维护适当的应用程序文档 379

18.11.2 管理服务器的动态更改 379

18.11.3 确定低风险移植机会 380

小结 380

参考资料和更多信息 380

第19章 开发和测试“防弹”Android应用程序 381

19.1 “防弹”移动应用程序设计最佳实践 381

19.1.1 满足移动用户的需求 382

19.1.2 为移动设备设计用户界面 382

19.1.3 设计稳定、灵敏的移动应用程序 384

19.1.4 设计安全的移动应用程序 385

19.1.5 在设计移动应用程序时考虑利益的最大化 385

19.1.6 在Android应用程序设计时使用第三方标准 386

19.1.7 设计便于维护和升级的移动应用程序 386

19.1.8 在应用程序设计中使用Andriod工具 388

19.1.9 避免设计时的愚蠢错误 388

19.2 “防弹”移动应用程序开发最佳实践 388

19.2.1 设计有效的移动开发过程 389

19.2.2 提早和经常地测试应用程序可行性 389

19.2.3 使用代码标准、代码检查和单元测试以提高代码质量 389

19.2.4 处理某单一手机的缺陷 391

19.2.5 在应用程序开发中使用Android工具 392

19.2.6 避免开发时的愚蠢错误 392

19.3 移动应用程序测试最佳实践 392

19.3.1 设计一个应用程序漏洞跟踪系统 392

19.3.2 管理测试环境 393

19.4 确定设备的“洁净”初始状态 394

19.4.1 模仿现实世界的活动 395

19.4.2 尽量全面地进行测试 395

19.4.3 在应用程序测试中使用Android工具 400

19.4.4 避免测试时的愚蠢错误 401

19.4.5 外包测试的责任 401

小结 401

参考资料和更多信息 401

第20章 销售你的Android应用程序 402

20.1 为发布而打包你的应用程序 402

20.1.1 准备封装你的代码 402

20.1.2 准备你的软件包 403

20.1.3 测试软件包的发布版本 406

20.1.4 认证你的Android应用程序 406

20.2 赚钱 406

20.2.1 在Android Market上销售你的应用程序 406

20.2.2 在自己的服务器上销售你的应用程序 411

20.2.3 销售应用程序的其他途径 412

20.2.4 保护你的知识产权 413

20.2.5 让用户付费 413

小结 414

参考资料和更多信息 414

第七部分 附录 416

附录A Android模拟器快速入门 416

A.1 玩转默认模拟器 416

A.2 使用Android虚拟设备管理模拟器配置 418

A.3 列表显示Android目标操作系统 418

A.3.1 创建AVD 419

A.3.2 列表显示所有已知的AVD 424

A.3.3 删除AVD 424

A.3.4 使用其他的AVD命令 425

A.4 使用启动选项控制模拟器行为 425

A.4.1 以命令行的方式配置模拟器启动选项 426

A.4.2 使用Eclipse配置模拟器启动选项 426

A.5 配置模拟器的位置信息 427

A.6 在两个模拟器实例之间拨打电话 427

A.7 在两个模拟器实例之间发送消息 429

A.8 通过控制台与模拟器交互 429

A.8.1 使用控制台模拟来电 429

A.8.2 使用控制台模拟短消息 429

A.8.3 使用控制台发送GPS坐标 430

A.8.4 使用控制台监视网络状态 431

A.8.5 使用控制台操作电源设置 431

A.8.6 使用其他控制台命令 432

A.9 享受模拟器 432

A.10 认识模拟器的局限 433

附录B Android DDMS快速入门 434

B.1 独立或结合Eclipse使用DDMS 434

B.2 熟悉DDMS的关键特性 436

B.3 使用进程 436

B.3.1 向Android应用程序关联调试器 437

B.3.2 监视Android应用程序的线程活动 437

B.3.3 在Android应用程序中触发垃圾回收(GC) 438

B.3.4 监视Android应用程序的堆活动 438

B.3.5 终止Android进程 438

B.4 使用文件浏览器 439

B.4.1 从模拟器或设备上拷贝文件 440

B.4.2 向模拟器或设备拷贝文件 440

B.4.3 删除模拟器或设备上的文件 440

B.5 使用模拟器控制 441

B.5.1 模拟语音来电 441

B.5.2 模拟短消息接收 441

B.5.3 发送位置坐标 442

B.6 使用应用程序日志 442

B.7 在模拟器或目标设备上截屏 443

附录C Android调试桥快速入门 445

C.1 列表显示连接到计算机的设备和模拟器 445

C.2 针对特定设备使用ADB命令 446

C.3 启动和停止ADB服务进程 446

C.3.1 停止ADB服务进程 446

C.3.2 启动和检测ADB服务进程 446

C.4 使用ADB从/向Android应用程序拷贝文件 446

C.4.1 向设备发送文件 447

C.4.2 从设备提取文件 447

C.5 使用ADB安装和卸载Android应用程序 447

C.5.1 使用ADB安装应用程序 447

C.5.2 使用ADB重装应用程序 448

c.5.3 使用ADB卸载应用程序 448

C.6 使用LogCat记录日志 448

C.6.1 显示所有的日志信息 448

C.6.2 更改日志记录模式以包含日期和时间信息 449

C.6.3 过滤日志信息 449

C.6.4 清除日志 450

C.6.5 将日志输出重定向至一个文件 450

C.6.6 访问次级日志 450

C.7 生成Bug报告 451

C.8 发布Shell命令 451

C.8.1 发布单条Shell命令 451

C.8.2 启动和使用一个Shell会话 451

C.8.3 使用ADB Shell启动和终止模拟器 452

C.8.4 使用ADB Shell查看SQLite数据库 452

C.8.5 在ADB Shell中使用Monkey进行应用程序压力测试 452

C.8.6 通过Shell安装和使用自定义二进制文件 455

C.9 其他ADB命令探索 456

附录D SQLite快速入门 457

D.1 探索SQLite的常见任务 457

D.2 使用sqlite3命令行接口 457

D.2.1 启动sqlite3命令行接口并连接数据库 458

D.2.2 探索你的数据库 458

D.2.3 导入和导出数据库 460

D.2.4 在命令行中执行SQL命令 461

D.2.5 窥视SQLite内部 462

D.2.6 使用其他的sqlite3命令 462

D.2.7 认识SQLite的局限 462

D.3 通过实例理解SQLite:学生成绩数据库 463

D.3.1 设计学生成绩数据库的模式 463

D.3.2 结合AUTOINCREMENT创建简单表 464

D.3.3 向表中插入数据 464

D.3.4 使用SELECT查询表数据 465

D.3.5 创建具有外键和复合主键的表 466

D.3.6 修改和更新表数据 467

D.3.7 使用JOIN进行多表查询 467

D.3.8 使用计算列 468

D.3.9 对计算列使用子查询 469

D.3.10 删除表 470