《精通Android 3》PDF下载

  • 购买积分:24 如何计算积分?
  • 作  者:(印)克曼特内尼,(美)麦克莱恩著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2011
  • ISBN:9787115266026
  • 页数:908 页
图书介绍:本书介绍了线程、进程、长期运行的服务、广播接收程序和闹钟管理器。本版还介绍了更多UI控件,并用150多页的篇幅专门介绍了Android 3.0版,包括碎片、碎片对话框、ActionBar和拖放。

第1章Android计算平台简介 1

1.1面向新PC的全新平台 1

1.2 Android的历史 3

1.3 Dalvik VM剖析 4

1.4理解Android软件栈 5

1.5使用Android SDK开发最终用户应用程序 6

1.5.1 Android模拟器 6

1.5.2 Android UI 7

1.5.3 Android基础组件 7

1.5.4高级UI概念 8

1.5.5 Android Service组件 10

1.5.6 Android媒体和电话组件 10

1.5.7 Android Java包 11

1.6利用Android源代码 13

1.7本书的示例项目 14

1.8小结 15

第2章 设置开发环境 16

2.1设置环境 16

2.1.1下载JDK 6 16

2.1.2下载Eclipse 3.6 17

2.1.3下载Android SDK 18

2.1.4命令行窗口 19

2.1.5安装ADT 19

2.2了解基本组件 21

2.2.1 Vi ew 21

2.2.2 Activity 21

2.2.3 Intent 22

2.2.4 ContentProvider 22

2.2.5 Service 22

2.2.6 AndroidManifest.xml 22

2.2.7 AVD 22

2.3 Hello World! 23

2.4 AVD 27

2.5剖析Android应用程序的结构 28

2.6分析Notepad应用程序 30

2.6.1加载和运行Notepad应用程序 30

2.6.2分解应用程序 31

2.7了解应用程序生命周期 37

2.8调试应用程序 40

2.8.1启动模拟器 41

2.8.2 StrictMode 42

2.8.3参考资料 46

2.9小结 46

第3章 使用Android资源 47

3.1资源 47

3.1.1字符串资源 47

3.1.2布局资源 49

3.1.3资源引用语法 51

3.1.4定义资源ID供以后使用 52

3.1.5已编译和未编译的Android资源 52

3.2 Android关键资源 53

3.3使用任意XML资源文件 61

3.4使用原始资源 62

3.5使用资产 63

3.6了解资源目录结构 63

3.7资源和配置更改 64

3.8参考资料URL 67

3.9小结 67

第4章ContentProvider 68

4.1探索Android内置的ContentProvider 69

4.2 ContentProvider的架构 73

4.3实现ContentProvider 84

4.4练习图书提供程序 94

4.4.1添加图书 94

4.4.2删除图书 94

4.4.3获取图书数量 95

4.4.4显示图书列表 95

4.5资源 96

4.6小结 96

第5章Intent 97

5.1 Android Intent基础知识 97

5.2 Android中可用的Intent 98

5.3 Intent的组成 100

5.3.1Intent和数据URI 100

5.3.2一般操作 101

5.3.3使用extra信息 102

5.3.4使用组件直接调用活动 103

5.3.5Intent类别 104

5.3.6将Intent解析为组件的规则 106

5.4练习使用ACTION_PICK 108

5.5练习使用GET_CONTENT操作 110

5.6挂起的Intent 111

5.7资源 112

5.8小结 113

第6章 构建用户界面和使用控件 114

6.1 Android中的UI开发 114

6.1.1完全利用代码来构建UI 115

6.1.2完全使用XML构建UI 117

6.1.3使用XML结合代码构建UI 118

6.2 Android中的常见控件 120

6.2.1文本控件 120

6.2.2按钮控件 123

6.2.3ImageView控件 131

6.2.4日期和时间控件 132

6.2.5 MapVi ew控件 134

6.3适配器 134

6.3.1 SimpleCursorAdapter 135

6.3.2了解ArrayAdapter 136

6.4结合使用适配器和AdapterVi ew 138

6.4.1基本的列表控件:Li stVi ew 138

6.4.2 Gri dVi ew控件 145

6.4.3 Spinner控件 146

6.4.4 Gallery控件 148

6.4.5创建自定义适配器 148

6.4.6 Android中的其他控件 153

6.5样式和主题 154

6.5.1使用样式 154

6.5.2使用主题 156

6.6布局管理器 157

6.6.1 Li nearLayout布局管理器 157

6.6.2TableLayout布局管理器 160

6.6.3 RelativeLayout布局管理器 163

6.6.4 FrameLayout布局管理器 165

6.6.5为各种设备配置自定义布局 167

6.7使用Hierarchy Viewer调试和优化布局 168

6.8参考资料 171

6.9小结 171

第7章 使用菜单 172

7.1 Android菜单 172

7.1.1创建菜单 173

7.1.2使用菜单组 174

7.2响应菜单项 175

7.3创建测试工具来测试菜单 176

7.4使用其他菜单类型 182

7.4.1展开的菜单 182

7.4.2使用图标菜单 182

7.4.3使用子菜单 183

7.4.4配置系统菜单 183

7.4.5使用上下文菜单 184

7.4.6使用交替菜单 186

7.4.7使用菜单响应数据变化 189

7.5通过XML文件加载菜单 189

7.5.1 XML菜单资源文件的结构 189

7.5.2填充XML菜单资源文件 190

7.5.3响应基于XML的菜单项 190

7.5.4其他XML菜单标记简介 191

7.6资源 192

7.7小结 192

第8章 使用对话框 193

8.1使用Android中的对话框 193

8.1.1设计提醒对话框 193

8.1.2设计提示对话框 195

8.1.3 Android对话框的特性 199

8.1.4重新设计提示对话框 200

8.2使用托管对话框 200

8.2.1理解托管对话框协议 201

8.2.2将非托管对话框重新转换为托管对话框 201

8.2.3简化托管对话框协议 202

8.3使用Toast 209

8.4资源 210

8.5小结 210

第9章 管理和组织首选项 211

9.1探索首选项框架 211

9.1.1 ListPreference 211

9.1.2 CheckBoxPreference 219

9.1.3 EditTextPreference 220

9.1.4 RingtonePreference 222

9.2组织首选项 223

9.3以编程方式操作首选项 226

9.4使用首选项保存状态 226

9.5参考资料 227

9.6小结 228

第10章 探索安全性和权限 229

10.1理解Android安全性模型 229

10.1.1安全性概念概述 229

10.1.2为部署签名应用程序 230

10.2执行运行时安全性检查 234

10.2.1进程边界上的安全性 235

10.2.2声明和使用权限 235

10.2.3理解和使用自定义权限 237

10.2.4理解和使用 URI权限 241

10.3参考资料 243

10.4小结 243

第11章 构建和使用服务 244

11.1使用HTTP服务 244

11.1.1将HttpClient用于HTTP GET请求 244

11.1.2将HttpClient用于HTTP POST请求(多部分POST请求示例) 246

11.1.3 SOAP、 JSON和XML分析程序 248

11.1.4处理异常 249

11.1.5解决多线程问题 251

11.1.6有趣的超时 253

11.1.7使用HttpURLConnection 254

11.1.8使用AndroidHttpCIient 254

11.1.9使用后台线程(AsyncTask) 255

11.1.10使用AsyncTask处理配置更改 260

11.1.11使用DownloadManager获取文件 265

11.2使用Android服务 270

11.2.1 Android中的服务 270

11.2.2本地服务 271

11.2.3 AIDL服务 277

11.2.4在AIDL中定义服务接口 278

11.2.5实现AIDL接口 280

11.2.6从客户端应用程序调用服务 282

11.2.7向服务传递复杂的类型 285

11.3使用服务的真实示例 294

11.3.1 Google翻译API 294

11.3.2使用Google翻译API 295

11.4参考资料 303

11.5小结 303

第12章包 304

12.1包和进程 304

12.1.1包规范的细节 304

12.1.2将包名称转换为进程名称 304

12.1.3列出安装的包 305

12.1.4通过包浏览器删除包 305

12.2包签名过程回顾 306

12.2.1理解数字签名:场景1 306

12.2.2理解数字签名:场景2 306

12.2.3一种理解数字签名的模式 307

12.2.4数字签名执行方式 307

12.2.5签名过程的影响 307

12.3在包之间共享数据 308

12.3.1共享用户ID的性质 308

12.3.2共享数据的代码模式 309

12.4库项目 309

12.4.1库项目的概念 310

12.4.2库项目的性质 310

12.4.3创建库项目 312

12.4.4创建使用库的Android项目 314

12.5参考资料 320

12.6小结 320

第13章 处理程序 321

13.1 Android组件和线程 321

13.1.1活动在主线程上运行 322

13.1.2广播接收程序在主线程上运行 322

13.1.3服务在主线程上运行 322

13.1.4 ContentProvider在主线程上运行 322

13.1.5单一主线程的影响 323

13.1.6线程池、ContentProvider、外部服务组件 323

13.1.7线程实用程序:发现线程 323

13.2处理程序 324

13.2.1持有主线程的影响 325

13.2.2使用处理程序延迟主线程上的工作 325

13.2.3延迟工作的处理程序源代码示例 327

13.2.4构造合适的Message对象 327

13.2.5将Message对象发送给队列 328

13.2.6响应handleMessage回调 328

13.3使用工作线程 328

13.3.1从菜单调用工作线程 329

13.3.2在工作线程与主线程之间通信 330

13.3.3线程行为概述 332

13.4处理程序示例驱动程序类 332

13.4.1驱动程序活动文件 333

13.4.2布局文件 336

13.4.3菜单文件 336

13.4.4描述文件 336

13.5组件和进程寿命 337

13.5.1活动生命周期 337

13.5.2服务生命周期 338

13.5.3接收程序生命周期 338

13.5.4提供程序生命周期 339

13.6代码编译说明 339

13.6.1从ZIP文件创建项目 339

13.6.2从代码清单创建项目 340

13.7参考资料 340

13.8小结 341

第14章 广播接收程序和长期运行的服务 342

14.1广播接收程序 342

14.1.1发送广播 342

14.1.2编写简单的接收程序:示例代码 343

14.1.3在描述文件中注册接收程序 344

14.1.4发送测试广播 344

14.1.5容纳多个接收程序 348

14.1.6进程外接收程序项目 349

14.2从接收程序使用通知 350

14.2.1通过通知管理器监控通知 350

14.2.2发送通知 352

14.3长期运行的接收程序和服务 354

14.3.1长期运行的广播接收程序协议 355

14.3.2IntentServi ce 356

14.3.3 IntentServi ce源代码 356

14.4为广播接收程序扩展IntentService 358

14.4.1长期运行的广播服务抽象 358

14.4.2长期运行的接收程序 360

14.4.3使用LightedGreenRoom 抽象唤醒锁 362

14.5长期运行的服务的实现 367

14.5.1非粘滞性服务的细节 368

14.5.2粘滞性服务的细节 368

14.5.3非粘滞性的变体:重传送(redeliver) Intent 368

14.5.4在onStartCommand中指定服务标志 369

14.5.5挑选合适的粘滞性 369

14.5.6从两个位置控制唤醒锁 369

14.5.7长期运行的服务的实现 369

14.5.8测试长期运行的服务 371

14.6代码编译说明 372

14.6.1从ZIP文件创建项目 372

14.6.2通过代码清单创建项目 372

14.7参考资料 374

14.8小结 374

第15章 闹钟管理器 375

15.1闹钟管理器基本知识:设置一个简单的闹钟 375

15.1.1获取闹钟管理器 375

15.1.2设置闹钟时间 375

15.1.3设置闹钟接收程序 376

15.1.4创建适合闹钟的PendingIntent 377

15.1.5设置闹钟 377

15.1.6 测试项目 378

15.2探索其他闹钟管理器场景 384

15.2.1设置重复闹钟 384

15.2.2取消闹钟 386

15.2.3使用多个闹钟 388

15.2.4 Intent在设置闹钟时的首要职责 391

15.2.5闹钟的持久化 394

15.3闹钟管理器事实 394

15.4参考资料 394

15.5小结 395

第16章2D动画揭秘 396

16.1逐帧动画 396

16.1.1计划逐帧动画 396

16.1.2创建活动 398

16.1.3将动画添加到活动 399

16.2布局动画 401

16.2.1基本的补间动画类型 402

16.2.2计划布局动画测试工具 402

16.2.3创建活动和Li stVi ew 403

16.2.4将ListView制作成动画 405

16.2.5使用插值器 408

16.3视图动画 409

16.3.1理解视图动画 409

16.3.2添加动画 412

16.3.3使用Camera实现2D图像的深度效果 415

16.3.4探索AnimationListener类 416

16.3.5关于变换矩阵的一些说明 416

16.4资源 417

16.5小结 418

第17章 地图和基于位置的服务 419

17.1地图包 419

17.1.1从Google获取map-api密钥 419

17.1.2 MapVi ew和MapActivity 421

17.1.3使用覆盖图添加标记 426

17.2位置包 431

17.2.1使用Android进行地理编码 431

17.2.2使用后台线程进行地理编码 434

17.2.3 LocationManager服务 437

17.2.4使用MyLocationOverlay显示位置 443

17.2.5使用接近提醒 447

17.3参考资料 451

17.4小结 451

第18章 电话API 452

18.1使用SMS 452

18.1.1发送SMS消息 452

18.1.2监视传入的SMS消息 455

18.1.3使用SMS文件夹 457

18.1.4发送电子邮件 459

18.2使用电话管理器 459

18.3 SIP 462

18.4参考资料 464

18.5小结 464

第19章 媒体框架 465

19.1使用媒体API 465

19.2播放媒体 468

19.2.1播放音频内容 469

19.2.2播放视频内容 478

19.3录制媒体 481

19.3.1使用MediaRecorder录制音频 481

19.3.2使用AudioRecord录制音频 485

19.3.3视频录制 489

19.3.4 MediaStore类 497

19.3.5使用Intnet录制音频 498

19.3.6将媒体内容添加到媒体存储 501

19.3.7为整个SD卡触发Medi aScanner 503

19.3.8参考资料 503

19.4小结 503

第20章 使用OpenGL进行3D图形编程 504

20.1了解OpenGL的历史和背景 505

20.1.1 OpenGL ES 505

20.1.2 OpenGL ES与Java ME 506

20.1.3 M3G:另一种Java ME 3D图形标准 506

20.2 OpenGL的基本原理 507

20.2.1使用OpenGL ES进行基本绘制 507

20.2.2 OpenGL照相机和坐标 512

20.3在Android中使用OpenGL ES 515

20.3.1使用GLSurfaceView和相关类 515

20.3.2实现Renderer 515

20.3.3通过Activity使用GLSurfaceView 518

20.3.4更改照相机设置 523

20.3.5使用索引添加另一个三角形 524

20.3.6为简单的OpenGL三角形制作动画 526

20.4 OpenGL的运用:形状和纹理 528

20.4.1绘制矩形 528

20.4.2使用形状 530

20.4.3使用纹理 541

20.4.4绘制多个图形 546

20.5 OpenGL ES 2.0 548

20.5.1针对OpenGL ES 2.0的Java绑定 549

20.5.2呈现步骤 552

20.5.3着色器 552

20.5.4将着色器编译到程序中 553

20.5.5访问着色器程序变量 555

20.5.6简单的ES 2.0三角形 555

20.5.7关于OpenGL ES 2.0的更多阅读材料 558

20.6代码编译说明 559

20.7小结 560

第21章 活动文件夹 561

21.1探索活动文件夹 561

21.1.1用户如何使用活动文件夹 562

21.1.2构建活动文件夹 565

21.2代码编译说明 573

21.3参考资料 573

21.4小结 573

第22章 主屏幕部件 575

22.1主屏幕部件的架构 575

22.1.1什么是主屏幕部件 575

22.1.2主屏幕部件的用户体验 576

22.1.3部件的生命周期 578

22.2示例部件应用程序 582

22.2.1定义部件提供程序 583

22.2.2定义部件尺寸 584

22.2.3与部件布局相关的文件 586

22.2.4实现部件提供程序 586

22.2.5实现部件模型 589

22.2.6实现部件配置活动 595

22.3部件局限性和扩展 598

22.4资源 599

22.5小结 599

第23章Android搜索 600

23.1 Android搜索体验 600

23.1.1探索Android全局搜索 601

23.1.2为全局搜索启用建议提供程序 606

23.2活动与搜索键交互 608

23.2.1常规活动上的搜索键行为 609

23.2.2禁用了搜索的活动的行为 615

23.2.3通过菜单显式调用搜索 617

23.2.4本地搜索和相关活动 620

23.2.5启用键入搜索 625

23.3实现简单建议提供程序 626

23.3.1计划简单建议提供程序 626

23.3.2简单建议提供程序实现文件 626

23.3.3实现SimpleSuggestion-Provider类 627

23.3.4简单建议提供程序搜索活动 630

23.3.5搜索调用方活动 634

23.3.6简单建议提供程序用户体验 636

23.4实现自定义建议提供程序 638

23.4.1计划自定义建议提供程序 638

23.4.2 SuggestURLProvider项目实现文件 639

23.4.3实现SuggestUrlProvider类 639

23.4.4实现自定义建议提供程序的搜索活动 647

23.4.5自定义建议提供程序描述文件 652

23.4.6自定义建议用户体验 653

23.5使用操作键和应用程序特有的搜索数据 655

23.5.1在Android搜索中使用操作键 655

23.5.2使用应用程序特定的搜索上下文 658

23.6资源 659

23.7对平板电脑的意义 659

23.8小结 660

第24章 文本到语音转换 661

24.1 Android中的文本到语音转换 661

24.2使用语段跟踪语音 665

24.3使用音频文件代替话音 666

24.4 TTS引擎的高级功能 672

24.4.1设置音频流 673

24.4.2使用耳标 673

24.4.3播放静音 674

24.4.4选择不同的文本到语音转换引擎 674

24.4.5使用语言方法 674

24.5参考资料 675

24.6小结 676

第25章 触摸屏 677

25.1 MotionEvent 677

25.1.1 MotionEvent对象 677

25.1.2回收MotionEvent 687

25.1.3使用Vel oci tyTracke r 687

25.1.4探索拖放操作 689

25.2多点触摸 692

25.2.1 Android2.2之前的多点触摸 692

25.2.2自Android 2.2开始的多点触摸 699

25.3触摸地图 699

25.4手势 702

25.4.1捏合手势 702

25.4.2 GestureDetector和OnGestureListener 705

25.4.3自定义手势 707

25.4.4 Gestures Builder应用程序 708

25.5参考资料 713

25.6小结 714

第26章 传感器 715

26.1什么是传感器 715

26.1.1检测传感器 716

26.1.2可以了解的传感器信息 716

26.2获取传感器事件 718

26.3解释传感器数据 727

26.3.1光线传感器 727

26.3.2接近传感器 727

26.3.3温度传感器 727

26.3.4压力传感器 728

26.3.5陀螺仪传感器 728

26.3.6加速度计 728

26.3.7磁场传感器 733

26.3.8结合使用加速度计和磁场传感器 734

26.3.9方向传感器 734

26.3.10磁偏角和Geomagneti cFi el d 740

26.3.11重力传感器 740

26.3.12直线加速度传感器 740

26.3.13旋转矢量传感器 740

26.3.14近场通信传感器 741

26.4参考资料 749

26.5小结 749

第27章 联系人API 750

27.1账户 750

27.1.1账户屏幕概览 750

27.1.2账户与联系人的相关性 754

27.1.3枚举账户 754

27.2联系人应用程序 754

27.2.1显示联系人 755

27.2.2显示联系人详细信息 755

27.2.3编辑联系人详细信息 756

27.2.4设置联系人的照片 758

27.2.5导出联系人 758

27.2.6各种联系人数据类型 759

27.3联系人 760

27.3.1内容SQLite数据库 760

27.3.2原始联系人 761

27.3.3数据表 762

27.3.4聚合联系人 763

27.3.5 view_contacts 765

27.3.6 contact_entities_view 765

27.4联系人API 766

27.4.1浏览账户 766

27.4.2浏览聚合联系人 773

27.4.3浏览原始联系人 781

27.4.4浏览原始联系人数据 785

27.4.5添加联系人和它的详细信息 788

27.5控制聚合 790

27.6同步的影响 791

27.7参考资料 792

27.8小结 792

第28章 使用Android Market 793

28.1成为发布者 793

28.1.1遵守规则 794

28.1.2开发人员控制台 795

28.2准备销售应用程序 798

28.2.1针对不同设备进行测试 798

28.2.2支持不同的屏幕尺寸 798

28.2.3准备上传AndroidManifest.xml 799

28.2.4本地化应用程序 800

28.2.5准备应用程序图标 800

28.2.6付费应用程序考虑因素 801

28.2.7将用户引导至Market 801

28.2.8 Android授权服务 802

28.2.9准备上传.apk文件 802

28.3上传应用程序 803

28.4 Android Market上的用户体验 805

28.5更多发布途径 806

28.6参考资料 807

28.7小结 807

第29章 多用途的碎片 808

29.1什么是碎片 808

29.1.1何时使用碎片 809

29.1.2碎片的结构 809

29.1.3碎片的生命周期 810

29.1.4展示生命周期的示例碎片应用程序 814

29.2 FragmentTransactions和碎片后退栈 821

29.3 FragmentManager 823

29.3.1引用碎片时的注意事项 824

29.3.2 ListFragments和<fragment> 824

29.3.3在需要时调用独立的活动 828

29.3.4碎片的持久化 830

29.4对话框碎片 831

29.4.1 DialogFragment基础知识 831

29.4.2 DialogFragments示例应用程序 835

29.5碎片之间的更多通信方式 846

29.6使用ObjectAnimator自定义动画 847

29.7参考资料 849

29. 8小结 850

第30章Acti onBar 851

30.1 Acti onBar剖析 851

30.2选项卡导航操作栏活动 852

30.2.1实现基础活动类 853

30.2.2为ActionBar分配统一的行为 855

30.2.3实现选项卡监听器 857

30.2.4实现选项卡操作栏活动 858

30.2.5可滚动的调试文本视图布局 860

30.2.6操作栏和菜单交互 861

30.2.7 Android描述文件 863

30.2.8测试选项卡操作栏活动 863

30.3列表导航操作栏活动 864

30.3.1创建SpinnerAdapter 864

30.3.2创建列表监听器 865

30.3.3设置列表操作栏 865

30.3.4更改BaseActionBar-Acti vi ty 866

30.3.5更改AndroidManifest.xml 866

30.3.6测试列表操作栏活动 867

30.4标准导航操作栏活动 868

30.4.1标准导航操作栏活动 868

30.4.2更改BaseActionBar-Activity 869

30.4.3更改AndroidManifest.xml 870

30.4.4测试标准操作栏活动 870

30.5参考资料 871

30.6小结 872

第31章3.0版中的更多主题 873

31.1基于列表的主屏幕部件 873

31.1.1 3.0版中新的远程视图 873

31.1.2在远程视图中使用列表 875

31.1.3应用示例:测试主屏幕列表部件 885

31.1.4对测试列表部件进行测试 893

31.2拖放 894

31.2.1 3.0版中拖放的基础知识 894

31.2.2拖放示例应用程序 895

31.2.3测试示例拖放应用程序 905

31.3参考资料 906

31.4小结 907