提醒:假如百度云分享链接失效,请联系站长,我会补上的。
《精通Android 3中文版》PDF 下载 下载地址:《精通Android 3中文版》PDF 下载 图书简介: 《精通Android 3》在上一版的基础上进行了全面改进,增加了Android内部构件的相关知识,介绍了线程、进程、长期运行的服务、广播接收程序和闹钟管理器。本版还介绍了更多UI控件,并用150多页的篇幅专门介绍了Android 3.0版,包括碎片、碎片对话框、ActionBar和拖放。此外,《精通Android 3》对服务和传感器的相关章节做了大幅改进,还对介绍OpenGL的章节做了修订,涵盖了OpenGL ES 2.0。 《精通Android 3》囊括了Android开发人员所需的一切知识,既可为Android开发人员夯实基础,又能提高Android开发人员的技能。 相关截图: ![]() 第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 View 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.1 Intent和数据URI 100 5.3.2 一般操作 101 5.3.3 使用extra信息 102 5.3.4 使用组件直接调用活动 103 5.3.5 Intent类别 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.3 ImageView控件 131 6.2.4 日期和时间控件 132 6.2.5 MapView控件 134 6.3 适配器 134 6.3.1 SimpleCursorAdapter 135 6.3.2 了解ArrayAdapter 136 6.4 结合使用适配器和AdapterView 138 6.4.1 基本的列表控件:ListView 138 6.4.2 GridView控件 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 LinearLayout布局管理器 157 6.6.2 TableLayout布局管理器 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用于HTTPGET请求 244 11.1.2 将HttpClient用于HTTPPOST请求(多部分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 使用AndroidHttpClient 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.2 IntentService 356 14.3.3 IntentService源代码 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 创建活动和ListView 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 MapView和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卡触发MediaScanner 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 使用VelocityTracker 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 磁偏角和GeomagneticField 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和 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章 ActionBar 851 30.1 ActionBar剖析 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-Activity 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 (责任编辑:admin) |