【每日一书】android 2 高级编程
![]() |
编辑推荐
介绍android开发平台及最佳移动开发方法
利用实例深入分析android应用程序组件
详细介绍如何创建布局和视图,生成与分辨率无关的美观用户界面
用android编写移动应用程序的实用精品指南
图书详情:http://product.china-pub.com/54465
基本信息
原书名: Professional Android 2 Application Development
原出版社: Wrox
作者: (英)Reto Meier [作译者介绍]
译者: 王超
丛书名: 移动与嵌入式开发技术
出版社:清华大学出版社
ISBN:9787302241027
上架时间:2010-12-20
出版日期:2010 年12月
开本:16开
页码:509
版次:2-1
内容简介
《Android 2高级编程(第2版)》讲述如何有效利用android 2的功能来改进当前产品或创建新产品。《Android 2高级编程(第2版)》是使用android编写移动应用程序的实用精品指南,穿插了一系列示例项目来深入分析android的新功能和技术。大量示例和说明可引导您熟练掌握基础知识,使您不仅能使用当前android 功能编写赏心悦目的移动应用程序,还能灵活快捷地运用未来的android增强功能构建最前沿的解决方案。
目录
第1章 android简介
1.1 一些背景信息
1.1.1 不远的过去
1.1.2 未来的前景
1.2 对android的误解
1.3 开放的移动开发平台
1.4 自带的android应用程序
1.5 androidsdk的特征
1.5.1 访问硬件(包括摄像头、gps和加速计)
1.5.2 自带的google地图、地理编码和基于位置的服务
1.5.3 后台服务
1.5.4 sqlite数据存储和检索数据库
1.5.5 共享数据和应用程序间通信
1.5.6 使用小组件、livefolder和livewallpaper增强主屏幕
1.5.7 广泛的媒体支持和2d/3d图形
1.5.8 优化的内存和进程管理
1.6 开放手机联盟简介
1.7 运行android的环境
1.8 从事移动开发的原因
1.9 从事android开发的原因
.1.9.1 推动android普及的因素
1.9.2 android的独到之处
1.9.3 改变移动开发格局
1.10 开发框架简介
1.10.1 开发包中的资源
1.10.2 理解android软件栈
1.10.3 dalvik虚拟机
1.10.4 android应用程序架构
1.10.5 android库
1.11 小结
第2章 开始入手
2.1 android开发
2.1.1 开始前的准备工作
2.1.2 创建第一个android应用程序
2.1.3 android应用程序的类型
2.2 面向移动设备的开发
2.2.1 硬件限制带来的设计考虑事项
2.2.2 考虑用户环境
2.2.3 android开发
2.3 to-dolist示例
2.4 android开发工具
2.4.1 android虚拟设备和sdk管理器
2.4.2 android模拟器
2.4.3 dalvik调试监控服务(ddms)
2.4.4 android调试桥(adb)
2.5 小结44
第3章 创建应用程序和活动
3.1 android应用程序的组成部分
3.2 应用程序清单简介
3.3 使用清单编辑器
3.4 android应用程序生命周期
3.5 理解应用程序的优先级和进程状态
3.6 分离资源
3.6.1 创建资源
3.6.2 使用资源
3.6.3 to-dolist资源示例
3.6.4 为不同的语言和硬件创建资源
3.6.5 运行时配置更改
3.7 application类简介
3.7.1 扩展和使用application类
3.7.2 重写应用程序的生命周期事件
3.8 深入探讨android活动
3.8.1 创建一个活动
3.8.2 活动生命周期
3.8.3 android活动类
3.9 小结
第4章 创建用户界面
4.1 androidui基本设计
4.2 视图简介
4.2.1 使用视图创建活动的用户界面
4.2.2 androidwidget工具箱
4.3 布局简介
4.3.1 使用布局
4.3.2 优化布局
4.4 创建新视图
4.4.1 修改现有的视图
4.4.2 创建复合控件
4.4.3 创建定制的视图
4.4.4 使用定制的控件
4.5 drawable资源
4.5.1 形状、颜色和渐变
4.5.2 复合drawable
4.5.3 ninepatchdrawable
4.6 分辨率和像素密度无关性
4.6.1 资源框架和分辨率无关性
4.6.2 分辨率无关性的最佳实践
4.6.3 反复测试
4.7 创建和使用菜单
4.7.1 android菜单系统简介
4.7.2 定义活动的菜单
4.7.3 菜单项选项
4.7.4 动态更新菜单项
4.7.5 处理菜单选择
4.7.6 子菜单和上下文菜单
4.7.7 使用xml定义菜单
4.7.8 to-dolist示例续
4.8 小结
第5章 意图、广播接收器、adapter和internet
5.1 意图简介
5.1.1 使用意图来启动活动
5.1.2 使用意图过滤器来为隐式意图提供服务
5.1.3 使用意图过滤器作为插件和扩展
5.1.4 linkify简介
5.1.5 使用意图来广播事件
5.2 待处理意图简介
5.3 adapter简介
5.2.1 部分本地adapter简介
5.2.2 定制arrayadapter
5.2.3 使用adapter绑定数据
5.4 使用internet资源
5.4.1 连接到internet资源
5.4.2 使用internet资源
5.5 对话框简介1
5.5.1 dialog类简介
5.5.2 将活动用作对话框
5.5.3 管理和显示对话框
5.6 创建一个地震查看器
5.7 小结
第6章 文件、保存状态和首选项
6.1 保存简单的应用程序数据
6.2 创建并保存首选项
6.3 检索共享首选项
6.4 为地震查看器创建一个设置活动
6.5 首选项活动和首选项框架概述
6.5.1 在xml中定义一个首选项屏幕布局
6.5.2 首选项活动简介
6.5.3 查找并使用首选项屏幕共享首选项
6.5.4 共享首选项变更监听程序简介
6.6 为地震查看器创建一个标准的首选项活动
6.7 保存活动状态
6.7.1 保存并还原实例状态
6.7.2 保存to-dolist活动状态
6.8 保存和加载文件
6.9 将静态文件作为资源添加
6.10 文件管理工具
6.11 小结
第7章 数据库和内容提供器
7.1 android数据库简介
7.1.1 sqlite数据库简介
7.1.2 内容提供器简介
7.2 sqlite简介
7.3 游标和内容值
7.4 使用sqlite数据库2
7.4.1 使用sqliteopenhelper
7.4.2 在不使用sqlitehelper的情况下打开和创建数据库
7.4.3 android数据库设计注意事项
7.4.4 查询数据库
7.4.5 从cursor中提取结果
7.4.6 添加、更新和删除行
7.4.7 保存to-dolist
7.5 创建一个新的内容提供器
7.5.1 提供对数据源的访问
7.5.2 注册提供器
7.6 使用内容提供器
7.6.1 内容解析器简介
7.6.2 查询内容219
7.6.3 添加、更新和删除内容
7.6.4 在内容提供器中访问文件
7.7 创建和使用地震内容提供器
7.7.1 创建内容提供器
7.7.2 使用提供器
7.8 本地android内容提供器
7.8.1 使用媒体库提供器
7.8.2 使用联系人提供器
7.9 小结
第8章 地图、地理编码和基于位置的服务
8.1 使用基于位置的服务
8.2 配置模拟器来测试基于位置的服务
8.3 更新模拟位置提供器中的位置
8.4 选择一个位置提供器
8.4.1 查找可用的提供器
8.4.2 根据标准查找位置提供器
8.5 确定自己所在的位置
8.5.1 “whereami”示例2
8.5.2 追踪移动
8.5.3 更新“whereami”示例中的位置
8.6 使用邻近提醒
8.7 使用地理编码器
8.7.1 反向地理编码
8.7.2 前向地理编码
8.7.3 对“whereami”示例进行地理编码
8.8 创建基于地图的活动
8.8.1 mapview和mapactivity简
8.8.2 获得地图的api键
8.8.3 创建一个基于地图的活动
8.8.4 配置和使用mapview
8.8.5 使用mapcontroller
8.8.6 对“whereami”示例使用地图
8.8.7 创建和使用覆盖(overlay)
8.8.8 mylocationoverlay简介
8.8.9 itemizedoverlay和overlayitem简介
8.8.10 将视图固定到地图和地图的某个位置上
8.9 对earthquake示例添加地图功能
8.10 小结
第9章 后台工作
9.1 服务简介
9.1.1 创建和控制服务
9.1.2 将活动和服务绑定
9.1.3 后台服务的优先级
9.2 使用后台线程
9.2.1 使用asynctask运行异步任务
9.2.2 使用asynctask将earthquakeservice移动到后台线程
9.2.3 手动创建线程和gui线程同步
9.3 创建一个toast
9.3.1 定制toast
9.3.2 在工作线程中使用toast
9.4 通知简介
9.4.1 通知管理器简介
9.4.2 创建通知
9.4.3 触发通知
9.4.4 向地震监控器中添加通知
9.4.5 高级通知技术
9.4.6 持续的和连续的通知
9.5 使用警报
9.5.1 设置重复警报
9.5.2 使用重复警报更新earthquake
9.6 小结
第10章 个性化手机屏幕
10.1 主屏幕小组件简介
10.2 创建appwidgets
10.2.1 创建小组件布局
10.2.2 定义小组件设置
10.2.3 创建小组件意图接收器并将其添加到应用程序清单中
10.2.4 remoteviews(远程视图)和appwidgetmanager简介
10.2.5 刷新小组件
10.2.6 创建并使用小组件配置活动
10.3 创建地震小组件
10.4 livefolder简介
10.4.1 创建livefolder
10.4.2 创建earthquakelivefolder3
10.5 将搜索添加到应用程序以及快速搜索框中
10.5.1 将搜索添加到应用程序中
10.5.2 在快速搜索框中显示搜索结果
10.5.3 将搜索添加到earthquake示例中
10.6 创建livewallpaper
10.6.1 创建livewallpaper定义资源
10.6.2 创建wallpaper服务
10.6.3 创建wallpaper服务引擎
10.7 小结
第11章 音频、视频以及摄像头的使用
11.1 播放音频和视频
11.1.1 mediaplayer简介
……
第12章 电话服务和sms
第13章 蓝牙、网络和wi-fi
第14章 传感器
第15章 android高级开发
前言
对移动开发人员来说,现在是一个令人心潮澎湃的时代。手机从来没有像今天这样流行,强大的智能手机产品已经为消费者所普遍接受。现在,外观时尚且用途广泛的手机带有GPS、加速计和触摸屏等硬件功能,并且具有固定费率且定价合理的数据计划,因此,它们成为了吸引越来越多的开发者创建各种新颖有趣的移动应用程序的平台。
现在,市面上有大量的Android设备可供消费者选择,包括带有QVGA屏幕的手机和诸如Motorola Droid及Google Nexus One这样强大的WVGA设备,但是真正的赢家却是开发人员。由于现有的手机应用程序的开发是构建在各手机厂家的私有操作系统之上的,所以它限制了第三方应用程序的开发和部署,而Android为我们提供了一个开放的平台。因为没有了人为制造的障碍,所以Android开发人员可以自由地编写能够充分利用日益强大的手机硬件的应用程序,并在一个开放的市场上销售它们。
因此,随着移动设备的销售量不断增长,开发者对Android设备的兴趣也出现了爆炸性地增长。在2009年和2010年前半年,包括HTC、Motorola、LG、Samsung和Sony Ericsson在内的OEM发布了超过20种Android手机。超过26个国家的32家以上的运营商都提供了Android设备。美国的4家主要运营商T-Mobile、Verizon、AT&T和Sprint,都销售Android设备。另外,现在也可以从Google直接购买解锁后的Google Nexus One手机,网址为http://www.google.com/phone。
由于Android构建在开源代码的框架之上,并且提供了强大的SDK库和开放的理念,所以它为广大的没有任何移动应用程序开发经验的新手开辟了一条开发完美移动应用程序的康庄大道。而富有经验的移动开发人员现在也可以方便地扩展到Android平台上来,利用它独特的功能来改进现有产品或者开发其他新颖产品。
通过使用Android Market,开发人员可以利用开放的市场向所有兼容的Android设备发布免费或者收费的应用程序,而不需要经历审查过程。
本书将指导你使用Android 2软件开发包来构建移动应用程序。每章的讲解将通过一系列示例项目帮助你逐步掌握Android中的各种新功能和技术,以便你能够最大程度地利用Android。本书所介绍的各个应用实例简明扼要且极具实用价值,它们覆盖了Android 2的所有基本功能和高级功能。
Google的理念是尽快发布,然后不断更新。自从2008年10月Android第一次完整发布以来,共推出了7个平台和SDK版本。由于发布周期如此之快,软件和开发库很可能会有定期的修改和丰富。虽然Android的开发团队会尽可能地保持向后兼容性,但在未来的版本中,本书提供的某些信息仍可能会过时。
尽管如此,本书的内容和示例提供了如何使用当前SDK来编写优秀的移动应用程序所需要的基础知识,同时也保持了快速适应未来版本更强大功能的灵活性。
0.1 读者对象
本书适合所有对使用Android SDK在Android移动手机平台上创建应用程序感兴趣的人。不管是经验丰富的移动开发人员,还是想通过Android开发移动应用程序的新手,能够从本书中获得十分有价值的信息。
如果读者使用过手机(特别是运行Android的手机),那么这些使用经验会对阅读本书有所帮助,但这不是必需的。同样,如果以前有过手机开发经验,那么也有一定的帮助,但这也不是必需的。不过希望读者应该具有一定的软件开发经验,并且熟悉基本的开发实践。了解一些Java知识很有帮助,但也不是必需的。
第1章和第2章将简要介绍移动应用程序开发过程,并包含了如何在Android上开始开发的说明。除了这两章之外,对其他章节的阅读顺序不做要求。但如果对第3~7章中描述的基本组件有所理解,将有利于你对其他章节的学习。第8~15章讨论了各种可选功能和高级功能,你可以按照任意顺序阅读,也可以按需阅读。
0.2 本书内容
第1章简要介绍Android,包括它是什么,以及它如何适应当前的移动开发。然后详细讲述了Android作为一个开发平台能够提供什么功能,并解释了它为什么是一个创建移动应用程序的良机。
第2章讲述了移动开发的一些最佳实践,并解释了如何下载Android SDK和开始开发应用程序。该章同时也介绍了Android开发工具,并说明了如何从头创建新的应用程序。
第3~7章深入探讨了基本的Android应用程序组件。首先讲述了组成Android应用程序和它的生命周期的每个部分,在介绍活动及其生存期与生命周期之前,将简要介绍应用程序清单和外部资源。
之后将学习如何使用布局和视图创建用户界面,并且还将了解在应用程序组件之间执行动作和发送消息的意图机制。接着将介绍Internet资源,之后详细讲述了数据存储、检索和共享。读者在此将了解首选项保存机制、文件处理和数据库。在这个部分的最后还讲解如何使用内容提供器来共享应用程序数据。
第8~14章涉及到较高级的主题。首先介绍了地图以及基于位置的服务,接着介绍了服务、后台线程和通知的用法。
接着介绍了如何使用小组件、Live Folder、Live Wallpaper和快速搜索框,使你的应用程序通过主屏幕与用户直接交互。在介绍了播放和录制多媒体以及使用摄像头以后,你将了解到Android的通信功能。
然后将介绍电话服务API和用来发送及接收SMS消息的API,还会讨论蓝牙和网络管理(包括Wi-Fi和移动数据连接)。
. 第14章讨论传感器API,并演示了如何使用指南针、加速计和其他硬件传感器来使应用程序对外界环境作出反应。
第15章介绍几个高级开发主题,其中包括安全、IPC、高级图像技术以及用户与硬件的交互。
0.3 本书结构
本书按照一种合理的顺序进行组织,从而帮助具有不同开发背景的读者更好地学习编写高级Android应用程序的方法。
尽管对阅读每个章节的顺序不做要求,但是请注意,某些示例项目是跨越多个章节开发的,在其中每个阶段都会添加一些新功能并做一些改进。
富有移动开发经验且拥有能正常工作的Android开发环境的开发人员可以跳过前两章的内容——这两章简要介绍了移动开发的基本知识以及如何创建开发环境——直接学习第3~7章。因为这几章涵盖了Android开发的基础知识,所以深入理解这几章所讲述的概念非常重要。在学习这几章之后,读者就可以继续学习其余章节了,它们主要介绍了地图、基于位置的服务、后台应用程序以及诸如硬件交互和联网这样的更高级主题。
0.4 使用本书的要求
要使用本书中的示例代码,你需要通过下载Android SDK库和开发工具以及Java开发包,来创建一个Android开发环境。你可能还希望通过下载和安装Eclipse和Android开发人员工具插件来简化开发工作,但是这些都不是必需的。
Windows、Mac OS和Linux系统环境都支持Android开发,可以从Android站点下载相应的SDK。
要使用本书或者开发Android应用程序,你并不需要Android设备。
0.5 源代码
读者在学习本书中的示例时,既可以手工输入所有代码,也可以使用本书附带的源代码文件。本书使用的所有源代码都可以从本书合作站点http://www.wrox.com/或www.tupwk. com.cn/downpage上下载。只要登录到站点http://www.wrox.com/,使用Search工具或使用书名列表就可以找到本书。接着单击本书细目页面上的Download Code链接,就可以获得所有源代码。
下载了代码后,只需用自己喜欢的解压缩软件对它进行解压缩即可。另外,也可以进入http://www.wrox.com/dynamic/books/download.aspx上的Wrox代码下载主页,查看本书和其他Wrox图书的所有代码。
0.6 勘误表
尽管我们已经尽了最大的努力来保证文章或代码中不出现错误,但是错误总是难免的,如果你在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免走入误区,当然,这还有助于提供更高质量的信息。
要在网站上找到本书英文版的勘误表,可以登录http://www.wrox.com,通过Search工具或书名列表查找本书,然后在本书的细目页面上,单击Book Errata链接。在这个页面上可以查看到Wrox编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是www.wrox.com/misc-pages/booklist.shtml。
如果你在勘误表上没有找到错误,那么可以到www.wrox.com/contact/techsupport.shtml上,完成上面的表格,并把找到的错误发送给我们。我们将会核查这些信息,如果无误的话,会把它放置到本书的勘误表中,并在本书的后续版本中更正这些问题。
0.7 p2p.wrox.com
要与作者和同行讨论,请加入p2p.wrox.com上的P2P论坛。这个论坛是一个基于Web的系统,便于你发布与Wrox图书相关的消息和相关技术,与其他读者和技术用户交流心得。该论坛提供了订阅功能,当论坛上有新的消息时,它可以给你传送感兴趣的论题。Wrox作者、编辑和其他业界专家和读者都会到这个论坛上来探讨问题。
在http://p2p.wrox.com上,有许多不同的论坛,它们不仅有助于阅读本书,还有助于开发自己的应用程序。要加入论坛,可以遵循下面的步骤:
(1) 进入p2p.wrox.com,单击Register链接。
(2) 阅读使用协议,并单击Agree按钮。
(3) 填写加入该论坛所需要的信息和自己希望提供的其他信息,并单击Submit按钮。
(4) 你会收到一封电子邮件,其中的信息描述了如何验证账户和完成加入过程。
加入论坛后,就可以发布新消息,回复其他用户发布的消息。可以随时在Web上阅读消息。如果要让该网站给自己发送特定论坛中的消息,可以单击论坛列表中该论坛名旁边的Subscribe to this Forum图标。
关于使用Wrox P2P的更多信息,可阅读P2P FAQ,了解论坛软件的工作情况以及P2P和Wrox图书的许多常见问题。要阅读FAQ,可以在任意P2P页面上单击FAQ链接。