《Android 4高级编程(第3版).docx》由会员分享,可在线阅读,更多相关《Android 4高级编程(第3版).docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Android 4高级编程(第3版)Android 4高级编程(第3版)基本信息原书名:Professional Android 4 Application Development作者: (英)Reto Meier 译者: 佘建伟 赵凯丛书名: 移动开发经典丛书出版社:清华大学出版社ISBN:82上架时间:2013-4-23出版日期:2013 年4月开本:16开页码:1版次:3-1所属分类:计算机 软件与程序设计 移动开发 Android内容简介 计算机书籍Android 4高级编程(第3版)由Android权威专家编写,涵盖了所有最新的内容,是学习使用Android 4 SDK开发移动应用程
2、序的理想指南。本书见解深刻,帮助经验丰富的Android开发人员充分挖掘Android 4的新特性的潜力,同时讲解了Android开发的基础知识,使初学者也可以借助本书入门。作为一本以实用性为目的的指导图书,本书带领您逐步完成复杂程度越来越高的Android项目,每个项目中都引入一种新的Android平台特性,并着重指出有助于编写引人入胜的应用程序的技术和最佳实践。 本书特色 深入分析了Android应用程序的组件和生命周期 探讨了Android的UI原理、设计理念和UI API,使用户界 面在手机、平板电脑和电视上都引人注目 介绍了创建基于地图的应用程序和使用基于位置的服务 的相关知识 解释
3、了如何创建后台服务、通知和Cloud to Device Messaging 演示了如何创建动态的、交互式的主屏幕微件和Live Wallpaper 探索了硬件和通信API,包括蓝牙、电话、Wi-Fi Direct、 NFC和Android Beam 讲解了摄像头和硬件传感器的使用 详述了新的动画框架和其他增强用户体验的特性,包括 拖放、Action Bar和Fragment 新增了关于应用程序发布的一章内容 介绍了License Verification和应用程序内收费服务 目录android 4高级编程(第3版) 第1章 android简介1 1.1 一些背景信息2 1.1.1 不远的过去
4、2 1.1.2 未来的前景2 1.2 对android的误解3 1.3 android:开放的移动开发平台3 1.4 原生android应用程序4 1.5 android sdk的特征5 1.5.1 访问硬件(包括摄像头、gps和传感器)5 1.5.2 使用wi-fi、蓝牙技术和nfc进行数据传输6 1.5.3 地图、地理编码和基于位置的服务6 1.5.4 后台服务6 1.5.5 使用sqlite数据库进行数据存储和检索7 1.5.6 共享数据和应用程序间通信7 1.5.7 使用widget和live wallpaper增强主屏幕7 1.5.8 广泛的媒体支持和2d/3d图形7 1.5.9 c
5、loud to device messaging8 1.5.10 优化的内存和进程管理8 1.6 开放手机联盟简介8 1.7 运行android的环境9 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 第2章 开始入手17 2.1
6、 android开发18 2.1.1 开始前的准备工作18 2.1.2 创建第一个android应用程序24 2.1.3 android应用程序的类型31 2.2 面向移动设备和嵌入式设备的开发32 2.2.1 硬件限制带来的设计考虑事项32 2.2.2 考虑用户环境35 2.2.3 android开发36 2.3 android开发工具40 2.3.1 android虚拟设备管理器41 2.3.2 android sdk管理器42 2.3.3 android模拟器42 2.3.4 dalvik调试监控服务(ddms)42 2.3.5 android调试桥(adb)43 2.3.6 hiera
7、rchy viewer和lint工具43 2.3.7 monkey和monkey runner43 第3章 创建应用程序和activity45 3.1 android应用程序的组成部分46 3.2 应用程序manifest文件简介47 3.3 使用manifest编辑器54 3.4 分离资源55 3.4.1 创建资源55 3.4.2 使用资源63 3.4.3 为不同的语言和硬件创建资源66 3.4.4 运行时配置更改68 3.5 android应用程序生命周期70 3.6 理解应用程序的优先级和进程状态70 3.7 android application类简介72 3.7.1 扩展和使用app
8、lication类72 3.7.2 重写应用程序的生命周期事件73 3.8 深入探讨android activity74 3.8.1 创建activity74 3.8.2 activity的生存期76 3.8.3 android activity类81 第4章 创建用户界面83 4.1 android ui基本设计84 4.2 android ui的基础知识84 4.3 布局简介85 4.3.1 定义布局86 4.3.2 使用布局创建设备无关的ui87 4.3.3 优化布局90 4.4 to-do list示例93 4.5 fragment介绍100 4.5.1 创建新的fragment101
9、 4.5.2 fragment的生命周期101 4.5.3 fragment manager介绍105 4.5.4 向activity中添加fragment105 4.5.5 fragment和activity之间的接口110 4.5.6 没有用户界面的fragment111 4.5.7 android fragment 类112 4.5.8 对to-do list示例使用fragment112 4.6 android widget 工具箱116 4.7 创建新视图117 4.7.1 修改现有的视图118 4.7.2 创建复合控件122 4.7.3 使用布局创建简单的复合控件124 4.7.4
10、 创建定制的视图124 4.7.5 使用定制的控件137 4.8 adapter简介137 4.8.1 部分原生adapter简介138 4.8.2 定制arrayadapter138 4.8.3 使用adapter绑定数据到视图139 第5章 intent和broadcast receiver145 5.1 intent简介145 5.1.1 使用intent来启动activity146 5.1.2 linkify简介153 5.1.3 使用intent广播事件155 5.1.4 local broadcast manager159 5.1.5 pending intent简介160 5.2
11、 创建intent filter和broadcast receiver161 5.2.1 使用intent filter为隐式intent提供服务161 5.2.2 使用intent filter作为插件和扩展170 5.2.3 监听本地broadcast intent173 5.2.4 使用broadcast intent监控设备的状态变化174 5.2.5 在运行时管理manifest receiver176 第6章 使用internet资源177 6.1 下载和分析internet资源177 6.1.1 连接internet资源178 6.1.2 使用xml pull parser分析x
12、ml179 6.1.3 创建一个地震查看器180 6.2 使用download manager186 6.2.1 下载文件186 6.2.2 自定义download manager notification187 6.2.3 指定下载位置188 6.2.4 取消和删除下载189 6.2.5 查询download manager189 6.3 使用internet服务192 6.4 连接到google app engine192 6.5 下载数据而不会耗尽电量的最佳实践194 第7章 文件、保存状态和首选项195 7.1 保存简单的应用程序数据195 7.2 创建并保存shared prefer
13、ence196 7.3 检索shared preference197 7.4 为地震查看器创建一个设置activity197 7.5 首选项框架和preference activity概述205 7.5.1 在xml中定义一个preference screen布局206 7.5.2 preference fragment简介208 7.5.3 使用preference header定义preference fragment的层次结构208 7.5.4 preference activity简介209 7.5.5 向后兼容性与preference screen210 7.5.6 找到并使用pre
14、ference screen设置的shared preference210 7.5.7 shared preference change listener简介211 7.6 为地震查看器创建一个标准的preference activity211 7.7 持久化应用程序实例的状态215 7.7.1 使用shared preference保存activity状态215 7.7.2 使用生命周期处理程序保存和还原activity实例215 7.7.3 使用生命周期处理程序保存和还原fragment实例状态216 7.8 将静态文件作为资源添加218 7.9 在文件系统下工作218 7.9.1 文件管
15、理工具218 7.9.2 使用特定于应用程序的文件夹存储文件219 7.9.3 创建私有的应用程序文件219 7.9.4 使用应用程序文件缓存220 7.9.5 存储公共可读的文件220 第8章 数据库和content provider223 8.1 android数据库简介223 8.1.1 sqlite数据库简介224 8.1.2 content provider简介224 8.2 sqlite简介224 8.3 content value和cursor225 8.4 使用sqlite数据库225 8.4.1 sqliteopenhelper简介226 8.4.2 在不使用sqliteop
16、en helper的情况下打开和创建数据库228 8.4.3 android数据库设计注意事项228 8.4.4 查询数据库228 8.4.5 从cursor中提取值229 8.4.6 添加、更新和删除行230 8.5 创建content provider232 8.5.1 注册content provider233 8.5.2 发布content provider的uri地址233 8.5.3 创建content provide的数据库234 8.5.4 实现content provider查询235 8.5.5 content provider事务236 8.5.6 在content pr
17、ovider中存储文件239 8.5.7 一个content provider的实现框架240 8.6 使用content provider244 8.6.1 content resolver简介244 8.6.2 查询content provider244 8.6.3 使用cursor loader异步查询内容247 8.6.4 添加、删除和更新内容249 8.6.5 访问content provider中存储的文件251 8.6.6 创建一个to-do list数据库和content provider253 8.7 将搜索功能添加到应用程序中260 8.7.1 使content provi
18、der可搜索261 8.7.2 为应用程序创建一个搜索activity261 8.7.3 将搜索activity设置为应用程序的默认搜索provider263 8.7.4 使用搜索视图微件266 8.7.5 由content provider支持搜索建议267 8.7.6 在快速搜索框中显示搜索结果270 8.8 创建可搜索的地震content provider270 8.8.1 创建content provider270 8.8.2 使用地震content provider276 8.8.3 搜索earthquakecontent provider279 8.9 本地android cont
19、ent provider285 8.9.1 使用media storecontent provider285 8.9.2 使用contacts contract content provider286 8.9.3 使用calendar content provider293 第9章 在后台操作297 9.1 service简介298 9.1.1 创建和控制service298 9.1.2 将service绑定到activity302 9.1.3 地震监控service示例304 9.1.4 创建前台service308 9.2 使用后台线程309 9.2.1 使用asynctask运行异步任务
20、310 9.2.2 intent service简介312 9.2.3 loader简介313 9.2.4 手动创建线程和gui线程同步313 9.3 使用alarm315 9.3.1 创建、设置和取消alarm316 9.3.2 设置重复alarm317 9.3.3 使用重复alarm调度网络刷新318 9.4 使用intent service简化earthquake更新service320 第10章 扩展用户体验323 10.1 操作栏简介324 10.1.1 自定义操作栏325 10.1.2 自定义操作栏来控制应用程序的导航行为328 10.1.3 操作栏操作简介333 10.2 向地震
21、监控程序添加一个操作栏333 10.3 创建并使用菜单和操作栏操作项339 10.3.1 android菜单系统简介340 10.3.2 创建菜单341 10.3.3 指定操作栏的操作342 10.3.4 菜单项选项343 10.3.5 添加操作view和操作提供程序344 10.3.6 在fragment中添加菜单项345 10.3.7 使用xml定义菜单层次结构345 10.3.8 动态更新菜单项347 10.3.9 处理菜单选择347 10.3.10 子菜单和上下文菜单简介348 10.4 更新地震监控程序351 10.5 全屏显示353 10.6 对话框简介355 10.6.1 创建一
22、个对话框356 10.6.2 使用alertdialog类356 10.6.3 使用专门的输入对话框357 10.6.4 通过dialog fragment管理和显示对话框358 10.6.5 通过activity事件处理程序管理和显示对话框360 10.6.6 将activity用作对话框361 10.7 创建toast361 10.7.1 自定义toast362 10.7.2 在工作线程中使用toast364 10.8 notification简介365 10.8.1 notification manager简介366 10.8.2 创建notification366 10.8.3 设置和
23、自定义通知托盘ui369 10.8.4 配置持续和连续的notification373 10.8.5 触发、更新和取消notification374 10.9 向地震监控程序中添加notification和对话框376 第11章 高级用户体验381 11.1 为每个屏幕尺寸和分辨率做设计382 11.1.1 分辨率无关382 11.1.2 为不同的屏幕大小提供支持和优化383 11.1.3 创建可缩放的图形资源386 11.1.4 创建优化的、自适应的、动态的设计390 11.1.5 反复测试390 11.2 确保可访问性391 11.2.1 为非触屏设备提供导航391 11.2.2 为每个v
24、iew提供文本描述391 11.3 android text-to-speech简介392 11.4 使用语音识别394 11.4.1 使用语音识别进行语音输入395 11.4.2 使用语音识别进行搜索396 11.5 控制设备振动396 11.6 使用动画397 11.6.1 补间view动画397 11.6.2 创建和使用逐帧动画400 11.6.3 插值属性动画400 11.7 强化view404 11.7.1 高级canvas绘图404 11.7.2 硬件加速419 11.7.3 surface view简介420 11.7.4 创建交互式控件423 11.8 高级drawable资源
25、428 11.9 复制、粘贴和剪贴板431 11.9.1 向剪贴板中复制数据431 11.9.2 粘贴剪贴板数据431 第12章 硬件传感器433 12.1 使用传感器和传感器管理器433 12.1.1 受支持的android传感器434 12.1.2 虚拟传感器简介435 12.1.3 查找传感器435 12.1.4 监视传感器436 12.1.5 解释传感器值438 12.2 监视设备的移动和方向439 12.2.1 确定设备的自然方向440 12.2.2 加速计简介441 12.2.3 检测加速度变化442 12.2.4 创建一个重力计443 12.2.5 确定设备方向446 12.2.
26、6 创建一个指南针和人工地平仪450 12.2.7 陀螺仪传感器简介453 12.3 环境传感器简介454 12.3.1 使用气压计传感器454 12.3.2 创建气象站455 第13章 地图、地理编码和基于位置的服务461 13.1 使用基于位置的服务461 13.2 在模拟器中使用基于位置的服务462 13.2.1 更新模拟器位置提供器中的位置463 13.2.2 配置模拟器来测试基于位置的服务463 13.3 选择一个位置提供器464 13.3.1 查找位置提供器464 13.3.2 通过指定条件查找位置提供器464 13.3.3 确定位置提供器的能力465 13.4 确定当前位置466
27、 13.4.1 位置的隐私性466 13.4.2 找出上一次确定的位置466 13.4.3 where am i示例466 13.4.4 刷新当前位置469 13.4.5 在where am i中跟踪位置472 13.4.6 请求单独一次位置更新473 13.5 位置更新的最佳实践474 13.6 使用近距离提醒477 13.7 使用地理编码器478 13.7.1 反向地理编码479 13.7.2 前向地理编码480 13.7.3 对“where am i”示例进行地理编码481 13.8 创建基于地图的activity482 13.8.1 mapview和mapactivity简介482 1
28、3.8.2 获得地图的api key483 13.8.3 创建一个基于地图的activity483 13.8.4 地图和fragment485 13.8.5 配置和使用mapview486 13.8.6 使用mapcontroller486 13.8.7 对“where am i”示例使用地图487 13.8.8 创建和使用覆盖(overlay)490 13.8.9 mylocationoverlay简介497 13.8.10 itemizedoverlay和overlayitem简介498 13.8.11 将视图固定到地图和地图的某个位置上500 13.9 对earthquake示例添加地图
29、功能501 第14章 个性化主屏幕507 14.1 主屏幕widget简介507 14.2 创建app widgets509 14.2.1 创建widget的xml布局资源509 14.2.2 定义widget设置511 14.2.3 创建widget broadcast receiver并将其添加到应用程序的manifest文件中512 14.2.4 appwidgetmanager和remoteview简介513 14.2.5 刷新widget518 14.2.6 创建并使用widget配置activity521 14.3 创建地震widget522 14.4 collection vie
30、w widget简介528 14.4.1 创建collection view widget的布局529 14.4.2 创建remoteviewsservice530 14.4.3 创建一个remoteviews-factory531 14.4.4 使用remoteviewsservice填充collectionviewwidget533 14.4.5 向collection view widget中的项添加交互性534 14.4.6 将collection view widget绑定到content provider535 14.4.7 刷新collection view widget537
31、14.4.8 创建earthquake collection view widget537 14.5 live folder简介543 14.5.1 创建live folder544 14.5.2 创建earthquake live folder548 14.6 使用快速搜索框显示应用程序搜索结果551 14.6.1 在快速搜索框中显示搜索结果551 14.6.2 将earthquake示例的搜索结果添加到快速搜索框中552 14.7 创建live wallpaper553 14.7.1 创建live wallpaper定义资源553 14.7.2 创建wallpaper service554
32、 14.7.3 创建wallpaper service引擎555 第15章 音频、视频以及摄像头的使用557 15.1 播放音频和视频558 15.1.1 media player简介559 15.1.2 准备音频播放559 15.1.3 准备视频播放560 15.1.4 控制media player的播放564 15.1.5 管理媒体播放输出566 15.1.6 响应音量控制566 15.1.7 响应media播放控件567 15.1.8 请求和管理音频焦点569 15.1.9 当音频输出改变时暂停播放571 15.1.10 remote control client简介572 15.2 操
33、作原始音频574 15.2.1 使用audiorecord录制声音574 15.2.2 使用audiotrack播放音频575 15.3 创建一个sound pool577 15.4 使用音效578 15.5 使用摄像头拍摄照片579 15.5.1 使用intent拍摄照片579 15.5.2 直接控制摄像头581 15.5.3 读取并写入 jpeg exif图像详细信息588 15.6 录制视频589 15.6.1 使用intent录制视频589 15.6.2 使用mediarecorder录制视频590 15.7 使用媒体效果593 15.8 向媒体库中添加新媒体594 15.8.1 使用
34、媒体扫描仪插入媒体594 15.8.2 手动插入媒体595 第16章 蓝牙、nfc、网络和wi-fi597 16.1 使用蓝牙597 16.1.1 管理本地蓝牙设备适配器598 16.1.2 可发现性和远程设备发现600 16.1.3 蓝牙通信604 16.2 管理网络和internet连接609 16.2.1 connectivity manager简介609 16.2.2 支持用户首选项以进行后台数据传输609 16.2.3 查找和监视网络连接611 16.3 管理wi-fi612 16.3.1 监视wi-fi连接613 16.3.2 监视活动的wi-fi连接的详细信息613 16.3.3
35、 扫描热点613 16.3.4 管理wi-fi配置614 16.3.5 创建wi-fi网络配置615 16.4 使用wi-fi direct传输数据615 16.4.1 初始化wi-fi direct框架615 16.4.2 启用wi-fi direct并监视其状态617 16.4.3 发现对等设备618 16.4.4 连接对等设备618 16.4.5 在对等设备之间传输数据620 16.5 近场通信621 16.5.1 读取nfc标签622 16.5.2 使用前台分派系统623 16.5.3 android beam简介625 第17章 电话服务和sms629 17.1 电话服务的硬件支持6
36、29 17.1.1 将电话功能指定为必需的硬件功能629 17.1.2 检查电话硬件630 17.2 使用电话服务630 17.2.1 启动电话呼叫630 17.2.2 替换本机拨号程序631 17.2.3 访问电话服务的属性及状态632 17.2.4 使用phonestatelistener监视电话状态的变化635 17.2.5 使用intent receiver监视传入的电话呼叫639 17.3 sms和mms简介640 17.3.1 在应用程序中使用sms和mms640 17.3.2 使用intent从应用程序中发送sms和mms640 17.3.3 使用sms manager发送sms
37、消息641 17.3.4 监听传入的sms消息644 17.3.5 紧急响应程序sms示例646 17.3.6 自动紧急响应程序654 17.4 sip和voip简介662 第18章 android高级开发663 18.1 android的安全性664 18.1.1 linux内核安全664 18.1.2 权限简介664 18.2 cloud to device messaging简介666 18.2.1 c2dm的局限性667 18.2.2 注册使用c2dm667 18.2.3 在c2dm服务器上注册设备667 18.2.4 向设备发送c2dm消息670 18.2.5 接收c2dm消息672
38、 18.3 使用license verification library实现版权保护673 18.3.1 安装license verification library673 18.3.2 获得license verification公钥673 18.3.3 配置license validation policy674 18.3.4 执行许可验证检查674 18.4 应用程序内收费675 18.4.1 应用程序内收费的局限性676 18.4.2 安装iab库676 18.4.3 获得公钥和定义可购买的物品676 18.4.4 开始iab交易677 18.4.5 处理iab购买请求的响应678 1
39、8.5 使用wake lock679 18.6 使用aidl支持service的ipc680 18.7 处理不同硬件和软件的可用性686 18.7.1 指定硬件的要求686 18.7.2 确认硬件可用性687 18.7.3 构建向后兼容的应用程序687 18.8 利用strict模式优化ui性能689 第19章 推广和发布应用程序并从中获利691 19.1 签名和发布应用程序691 19.2 发布应用程序693 19.2.1 google play简介693 19.2.2 开始使用google play694 19.2.3 发布应用程序695 19.2.4 开发者控制台上的应用程序报告697 19.2.5 查看应用程序错误报告697 19.3 如何通过应用程序赚钱698 19.4 应用程序销售、推广和分发的策略699 19.4.1 应用程序的起步策略699 19.4.2 在google play上推广700 19.4.3 国际化700 19.5 分析数据和跟踪推荐人701 19.5.1 使用移动应用程序的google analytics702 19.5.2 使用google analytics追踪推荐703本图书信息来源:中国互动出版网www.china-