文件名称:Android高级编程--源代码
文件大小:251KB
文件格式:ZIP
更新时间:2016-02-27 11:26:01
Android 高级编程 源代码
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 该资料是《Android高级编程》的源代码 对应的书籍资料见: Android高级编程 基本信息 原书名: Professional Android Application Development 原出版社: Wrox 作者: (英)Reto Meier 译者: 王鹏杰 霍建同 出版社:清华大学出版社 ISBN:9787302228448 上架时间:2010-7-1 出版日期:2010 年6月 开本:16开 页码:398 版次:1-1 内容简介 android提供一个开放的开发环境,为针对移动设备编写创新应用程序带来了激动人心的新机遇。作为使用androidsdk构建这些应用程序的实用指南书籍,《android高级编程》从始至终穿插了一系列示例项目,每个项目都引入android的新功能和新技术,以助您达到最圆满的学习效果。书中介绍android的所有基本功能,并通过简明扼要的示例引导您使用高级功能。 《android高级编程》首先简要介绍android软件栈,接着陈述为手机创建稳定可靠、赏心悦目的应用程序的基本原理。通过学习,您可以打下牢固的理论根基,了解使用当前android 1.0 sdk编写定制移动程序所需的知识,还能灵活快捷地运用未来的增强功能构建最前沿的解决方案。 主要内容 ◆android移动开发的最佳实践 ◆简要介绍活动、intent、清单和资源 ◆如何使用布局和定制view创建用户界面 ◆存储和共享应用程序数据的技术 ◆如何创建基于地图的应用程序,如何使用gps和地理编码位置等基于位置的服务 ◆如何创建和使用后台服务及notification ◆使用加速计、指南针和摄像头硬件 ◆与电话和网络硬件相关的所有内容,如电话api、sms和网络管理等 ◆高级开发主题,包括安全、ipc以及一些高级图形和用户界面技术 读者对象 本书面向希望在android手机平台上创建应用程序的所有人员。不管是经验丰富的移动开发人员,还是初出茅庐的新手,都能从本书提供的宝贵信息中获益。 作译者 Reto Meier出生于澳大利西南的珀斯市,现居伦敦。 Reto是一位经验丰富的软件开发人员,拥有逾10年的GUI程序架构、设计和开发经验。他在涉足IT行业前曾从事过海洋石油和天然气开发以及金融工作。 Reto始终不渝地追求掌握新技术,从2007年Android发布之初Reto就迷恋上了此项技术。他利用业余时间研究包括WPF在内的多种开发平台以及Google的各种开发工具。 详情请访问Reto的个人网站RadioactiveYak,网址是http://blog.radioactiveyak.com。 目录 封面 -14 封底 -13 扉页 -12 版权 -11 作者简介 -10 前言 -9 目录 -4 第1章 Android简介 1 1.1 一些背景信息 2 1.1.1 不远的过去 2 1.1.2 未来的前景 2 1.2 对Android的误解 3 1.3 开放的移动开发平台 3 1.4 自带的Android应用程序 4 1.5 Android SDK功能 5 1.5.1 对包括摄像头、GPS和加速计在内的硬件的访问 5 1.5.2 自带的Google地图、地理编码和基于位置的服务 6 1.5.3 后台服务 6 1.5.4 SQLite 数据存储和检索数据库 6 1.5.5 共享数据和应用程序间通信 7 1.5.6 使用Google Talk的P2P服务 7 1.5.7 扩展的数据支持和2D/3D图形 7 1.5.8 优化的内存和进程管理 8 1.6 开放手机联盟简介 8 1.7 运行Android的环境 8 1.8 从事Android开发的原因 9 1.8.1 推动Android普及的因素 9 1.8.2 Android的独到之处 10 1.8.3 改变移动开发格局 10 1.9 开发框架简介 11 1.9.1 开发包中的资源 11 1.9.2 理解Android软件栈 12 1.9.3 Dalvik虚拟机 13 1.9.4 Android应用程序架构 14 1.9.5 Android库 14 1.9.6 高级Android库 15 1.10 小结 16 第2章 开始入手 17 2.1 Android开发 18 2.1.1 开始前的准备工作 18 2.1.2 创建第一个Android活动 22 2.1.3 Android应用程序的类型 27 2.2 面向移动设备的开发 28 2.2.1 关于硬件设计的考虑事项 28 2.2.2 考虑用户环境 31 2.2.3 Android开发 32 2.3 To-Do List示例 35 2.4 Android开发工具 40 2.4.1 Android模拟器 41 2.4.2 Dalvik调试监控服务(DDMS) 41 2.4.3 Android调试桥(ADB) 41 2.5 小结 42 第3章 创建应用程序和活动 43 3.1 Android应用程序的组成部分 43 3.2 程序清单简介 44 3.3 使用清单编辑器 47 3.4 Android应用程序生命周期 48 3.5 理解应用程序的优先级和进程状态 49 3.6 分离资源 50 3.6.1 创建资源 50 3.6.2 使用资源 57 3.6.3 To-Do List资源示例 60 3.6.4 为不同的语言和硬件创建资源 61 3.6.5 运行时配置更改 62 3.7 深入探讨Android活动 63 3.7.1 创建一个活动 63 3.7.2 活动生命周期 65 3.7.3 Android活动类 70 3.8 小结 70 第4章 创建用户界面 73 4.1 Android UI基本设计 74 4.2 View简介 74 4.2.1 使用View创建Activity(活动)用户界面 75 4.2.2 Android Widget工具箱 76 4.3 布局简介 77 4.4 创建新的View 78 4.4.1 修改现有的View 79 4.4.2 创建复合控件 83 4.4.3 创建定制的Widget和控件 86 4.4.4 使用定制的控件 97 4.5 创建和使用菜单 98 4.5.1 Android菜单系统简介 98 4.5.2 定义活动的菜单 100 4.5.3 动态更新菜单项 102 4.5.4 处理菜单选择 103 4.5.5 子菜单和上下文菜单 103 4.5.6 To-Do List示例续 105 4.6 小结 111 第5章 Intent、广播接收器、Adapter和Internet 113 5.1 Intent简介 113 5.1.1 使用Intent来启动活动 114 5.1.2 使用Intent Filter来为隐式Intent提供服务 121 5.1.3 使用Intent Filter作为插件和扩展 129 5.1.4 使用Intent来广播事件 132 5.2 Adapter简介 135 5.2.1 Android提供的部分Adapter简介 135 5.2.2 使用Adapter绑定数据 136 5.3 使用Internet资源 141 5.3.1 连接到Internet资源 142 5.3.2 利用Internet资源 142 5.4 Dialog简介 143 5.4.1 Dialog类简介 144 5.4.2 使用活动作为对话框 146 5.5 创建一个地震查看器 147 5.6 小结 156 第6章 数据存储、检索和共享 159 6.1 Android中的数据保存技术 160 6.2 保存简单的应用程序数据 160 6.2.1 创建和保存preference 160 6.2.2 检索共享的preference 161 6.2.3 保存活动状态 162 6.2.4 为地震查看器创建一个Preference页 165 6.3 保存和载入文件 174 6.3.1 将静态文件作为资源添加 174 6.3.2 文件管理工具 175 6.4 Android中的数据库 175 6.4.1 SQLite简介 175 6.4.2 Cursor和内容值 176 6.4.3 使用Android数据库 177 6.5 内容提供器简介 189 6.5.1 使用内容提供器 190 6.5.2 本地Android内容提供器 192 6.5.3 创建一个新的内容提供器 194 6.5.4 创建和使用地震内容提供器 197 6.6 小结 206 第7章 地图、地理编码和基于位置的服务 207 7.1 使用基于位置的服务 207 7.2 使用Test Provider构建模拟器 208 7.2.1 更新模拟位置提供器中的位置 208 7.2.2 创建一个应用程序来管理Test Location Provider 209 7.3 选择一个Location Provider 211 7.3.1 查找可用的提供器 212 7.3.2 根据要求标准查找提供器 212 7.4 确定自己所在的位置 213 7.4.1 “Where Am I”示例 213 7.4.2 追踪移动 216 7.4.3 更新“WhereAmI”示例中的位置 217 7.5 使用邻近提醒 219 7.6 使用Geocoder 220 7.6.1 反向地理编码 221 7.6.2 前向地理编码 221 7.6.3 对“Where Am I”示例进行地理编码 222 7.7 创建基于地图的活动 223 7.7.1 MapView和MapActivity简介 224 7.7.2 创建一个基于地图的活动 224 7.7.3 配置和使用Map View 226 7.7.4 使用Map Controller 227 7.7.5 对“Where Am I”示例使用地图 227 7.7.6 创建和使用覆盖(Overlay) 231 7.7.7 MyLocationOverlay简介 238 7.7.8 ItemizedOverlay和OverlayItem简介 239 7.7.9 将View固定到地图和地图的某个位置上 240 7.8 对Earthquake示例添加地图功能 241 7.9 小结 247 第8章 后台工作 249 8.1 服务简介 250 8.1.1 创建和控制服务 250 8.1.2 将活动和服务绑定 259 8.2 使用后台工作线程 260 8.2.1 创建新的线程 260 8.2.2 为GUI操作同步线程 261 8.2.3 将Earthquake Service移动到后台线程 262 8.3 创建一个Toast 263 8.3.1 定制Toast 263 8.3.2 在工作(worker)线程中使用Toast 265 8.4 Notification简介 266 8.4.1 Notification Manager简介 267 8.4.2 创建Notification 267 8.4.3 触发Notification 268 8.4.4 向Earthquake Monitor中添加Notification 268 8.4.5 高级Notification技术 271 8.4.6 持续的和连续的Notification 273 8.5 使用Alarm 274 8.6 使用Alarm更新Earthquake 276 8.7 小结 278 第9章 P2P通信 279 9.1 Android即时消息简介 279 9.1.1 使用GTalk服务 280 9.1.2 和GTalk服务绑定 281 9.1.3 建立GTalk连接,开始一个IM会话 282 9.1.4 在线状态和联系人列表简介 282 9.1.5 管理聊天会话 285 9.1.6 发送和接收数据信息 289 9.2 SMS简介 291 9.2.1 在应用程序中使用SMS 291 9.2.2 发送SMS信息 291 9.2.3 监听SMS消息 294 9.2.4 紧急响应的SMS示例 296 9.2.5 紧急响应自动化 306 9.3 小结 314 第10章 访问Android硬件 317 10.1 使用媒体API 317 10.1.1 播放媒体资源 318 10.1.2 录制多媒体 319 10.2 使用摄像头 321 10.2.1 控制摄像头设置 321 10.2.2 使用摄像头预览 321 10.2.3 照相 322 10.3 Sensor Manager简介 323 10.4 使用加速计和指南针 324 10.4.1 加速计介绍 325 10.4.2 检测加速度的改变 325 10.4.3 创建一个速度计 327 10.4.4 确定方向 330 10.4.5 创建指南针和地平仪 332 10.5 Android电话功能 335 10.5.1 打电话 335 10.5.2 监控电话状态和电话活动 336 10.5.3 监控数据连通性和活动 338 10.5.4 访问手机的属性和状态 339 10.5.5 控制电话 340 10.6 使用蓝牙 341 10.6.1 蓝牙服务介绍 341 10.6.2 控制本地蓝牙设备 341 10.6.3 发现并配对蓝牙设备 342 10.6.4 管理蓝牙连接 343 10.6.5 使用蓝牙进行通信 343 10.6.6 使用蓝牙耳机 345 10.7 管理网络和Wi-Fi连接 346 10.7.1 监控和管理Internet连接 346 10.7.2 管理活动的连接 347 10.7.3 管理你的Wi-Fi 348 10.8 控制设备震动 351 10.9 小结 352 第11章 Android高级开发 353 11.1 Android的安全性 353 11.1.1 Linux内核安全 354 11.1.2 权限简介 354 11.1.3 声明和实施权限 354 11.1.4 为广播Intent实施权限 355 11.2 使用AIDL来支持服务IPC 355 11.3 使用Internet服务 360 11.4 构建内容丰富的用户界面 361 11.4.1 使用动画 361 11.4.2 使用主题来为应用程序添加皮肤 372 11.4.3 高级画布绘图 373 11.4.4 SurfaceView简介 389 11.4.5 创建交互式控件 392 11.5 小结 397 前言 对移动开发人员来说,现在是一个令人心潮澎湃的时代。手机从来没有像今天这样流行,强大的智能手机产品已经为消费者所普遍接受。诸如GPS、加速计和触摸屏等外观时尚且用途广泛的手机功能硬件,正在吸引越来越多的开发者创建各种新颖有趣的移动应用程序。 虽然设计Android硬件的目的是为了吸引消费者,但是真正的赢家却是开发人员。由于现有的手机应用程序的开发是构建在各手机厂家的私有操作系统之上的,所以它限制了第三方应用程序的开发,而Android为我们提供了一个开放和通用的选择。因为没有了人为制造的障碍,所以Android开发人员可以*地编写能够充分利用日益强大的手机硬件的应用程序。因此,对Android感兴趣的开发人员都把Google在2008年发布Android这一举措作为移动技术发展史上的一个非常令人期待的重大事件。 由于Android构建在开源代码的框架之上,而且提供了强大的SDK库和开放的理念,所以它为广大的没有任何移动应用程序开发经验的新手开辟了一条开发完美的移动应用程序的康庄大道。而富有经验的移动开发人员现在也可以方便地扩展到Android平台上来,利用它独特的功能来改进现有产品或者开发其他新奇产品。 本书将指导你使用Androidl.0软件开发包来构建移动应用程序。在每章的讲解中,它会让你通过一系列示例项目逐步掌握Android中的各种新功能和技术,助你取得最圆满的学习效果。本书所介绍的各个应用实例简明扼要且极具实用价值,它们覆盖了Android 1.0的所有基本功能和高级功能。 由于Android 1.0是一个正在兴起的全新手机操作系统,所以当前支持它的手机还不多。和任何其他产品早期的发行版一样,Android的软件和开发库还会经历很多正常的改进和完善。本书的内容和示例提供了如何使用当前SDK来编写优秀的移动程序所需要的基础知识,同时也保持了快速适应未来版本更强大功能的灵活性。 0.1 读者对象 本书适合所有对在Android移动手机平台上创建应用程序感兴趣的人。不管是对经验丰富的移动开发人员,还是想通过Android开发移动应用程序的新手,本书都会提供富有价值的信息。 如果读者使用过手机(特别是运行Android的手机),那么这些使用经验会对阅读本书有所帮助,但这不是必需的。同样,如果以前有过手机开发经验,那么也有一定的帮助,但这也不是必需的。不过我们希望读者具有一定的软件开发经验,并且熟悉基本的开发流程。虽然了解一些Java知识也有用,但也不是必需的。 本书将在第1章和第2章中介绍移动应用程序开发的概要,并包含了如何在Android上开始开发的说明。除了这两章之外,对其他章节的阅读顺序不做要求。但是对第3~6章中描述的基本组件的理解,有利于你对其他章节的学习。第7~11章覆盖了各种可选和高级功能,你可以按照任意顺序阅读,也可以按需阅读。 0.2 本书内容 第1章简要介绍了Android,包括它是什么,以及它如何适应当前的移动开发。然后详细地讲述了Android作为一个开放平台能够提供什么功能,并解释了它为什么是一个创建移动应用程序的良机。 第2章讲述了移动开发的一些最佳实践,并解释了如何下载AndroidSDK和开始开发应用程序。该章同时也介绍了Android开发工具,并说明了如何从头创建新的应用程序。 第3-6章深入地探讨了基本的Android应用程序组件。首先讲述了组成Android应用程序和它的生命周期的每个部分,在介绍“活动”内容及其生存期与生命周期之前,将简要介绍应用程序清单和外部资源。 之后将学习如何使用布局和View创建用户界面,并且还将了解在应用程序组件之间执行动作和发送信息的Intent机制。接着将介绍Intemet资源,再后详细地讲述了数据存储、检索和共享。读者在此将了解首选保存机制、文件处理和数据库。在这个部分的最后还对如何使用内容提供器来共享应用程序数据进行了讲解。 第7~10章涉及到了较为高级的主题。首先介绍了地图以及基于位置的服务,接着介绍了服务、后台线程和Notification的用法。 接着介绍了Android的通信功能,包括通过即时通信和SMS来发送和接收消息。然后是有关硬件的内容,包括媒体录制及播放、摄像头、加速计和定位传感器。第10章的最后介绍了通话和网络硬件,包括通话API、蓝牙和网络管理(包括WiFi和移动数据连接)。 第11章介绍了几个高级开发主题,其中包括安全、IPC、高级图像技术以及用户与硬件的交互。 0.3 本书结构 本书通过按照一种合理的顺序进行组织,从而帮助具有不同开发背景的读者更好地学习如何编写高级Android应用程序。 尽管对阅读每个章节的顺序不做要求,但是请注意,某些示例项目是跨越多个章节开发的,在其中的每个阶段都会添加一些新的功能并做一些改进。 . 富有移动开发经验且拥有能正常工作的Android开发环境的开发人员可以跳过前两章的内容——这两章简要介绍了移动开发的基本知识以及如何创建开发环境——直接学习第3-6章。因为这几章涵盖了Android开发的基础知识,所以深入地理解这几章所讲述的概念非常重要。在学习了这几章之后,读者就可以继续学习其余的章节了,它们主要介绍了地图、基于位置的服务、后台程序以及诸如硬件交互和联网这样的更加高级的主题。 0.4 使用本书的要求 要使用本书中的示例代码,你需要通过下载Android SDK库和开发工具以及Java开发包,来创建一个Android开发环境。你可能还希望通过下载和安装Eclipse和Android开发人员工具插件来简化开发工作,但是这些都不是必需的。 Windows、Mac OS和Linux系统环境都支持Android开发,可以从Android站点下载相应的SDK。 要使用本书或者开发Android应用程序,你并不需要Android设备。 提示: 第2章更详细地列出了这些要求,并讲述了每一个组件的下载地址和安装方法。 0.5 约定说明 为了帮助你从本书中吸取到尽可能多的知识养分,并理解每部分的含义,本书将使用各种不同的约定。 提示的内容以楷体印出。 文本样式分别有; ·使用两种不同的形式表示代码: ·大部分示例代码使用没有背景的等宽字体。 ·使用灰色背景来强调当前上下文中特别重要的代码。 ·在某些示例代码中,你将看到如下的标记: […previous code goes here…] 或者 […implement something here…] 它们表示的是使用实际的代码来代替这一整行(包括方括号),实际代码既可能来自前面例子的代码段,也可能会在后面由读者自己实现。 0.6 源代码 读者在学习本书中的示例时,既可以手工输入所有的代码,也可以使用本书附带的源代码文件。本书使用的所有源代码都可以从本书合作站点http://www.wrox.com/或www.tupwk.com.cn/downpage上下载。只要登录到站点http://www.wrox.com/,使用Search工具或使用书名列表就可以找到本书。接着单击本书细目页面上的Download Code链接,就可以获得所有源代码。 提示: 由于许多图书的书名都很类似,所以按ISBN进行搜索是最简单的,本书英文版的ISBN是978-0-470-34471—2。 在下载了代码后,只需用自己喜欢的解压缩软件对它进行解压缩即可。另外,也可以进入http://www.wrox.com/dynamic/books/download.aspx上的Wrox代码下载主页,查看本书和其他Wrox图书的所有代码。 0.7 勘误表 尽管我们已经尽了最大的努力来保证文章或代码中不出现错误,但是错误总是难免的,如果你在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免走入误区,当然,这还有助于提供更高质量的信息。 要在网站上找到本书英文版的勘误表,可以登录http://www.wrox.com,通过Search工具或书名列表查找本书,然后在本书的细目页面上,单击Book Errata链接。在这个页面上可以查看到Wrox编辑己提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是www.wrox.com/misc-pages/booklist.shtml。 如果你在勘误表上没有找到错误,那么可以到www.wrox.com/contact/techsupport.shtml上,完成上面的表格,并把找到的错误发送给我们。我们将会核查这些信息,如果无误的话,会把它放置到本书的勘误表中,并在本书的后续版本中更正这些问题。 0.8 p2p.wrok.com 要与作者和同行讨论,请加入p2p.wrox.com上的P2P论坛。这个论坛是一个基于Web的系统,便于你张贴与Wrox图书相关的消息和相关技术,与其他读者和技术用户交流心得。 该论坛提供了订阅功能,当论坛上有新的消息时,它可以给你传送感兴趣的论题。Wrox作者、编辑和其他业界专家和读者都会到这个论坛上来探讨问题。 在http://p2p.wrox.com上,有许多不同的论坛,它们不仅有助于阅读本书,还有助于开发自己的应用程序。要加入论坛,可以遵循下面的步骤: (1)进入p2p.wrox.com,单击Register链接。 (2)阅读使用协议,并单击Agree按钮。 (3)填写加入该论坛所需要的信息和自己希望提供的其他信息,并单击Submit按钮。 (4)你会收到一封电子邮件,其中的信息描述了如何验证账户和完成加入过程。 提示: 不加入P2P也可以阅读论坛上的消息,但要张贴自己的消息,就必须加入该论坛。加入论坛后,就可以张贴新消息,回复其他用户张贴的消息。可以随时在Web上阅读消息。如果要让该网站给自己发送特定论坛中的消息,可以单击论坛列表中该论坛名旁边的Subscribe to this Forum图标。 关于使用Wrox P2P的更多信息,可阅读P2PFAQ,了解论坛软件的工作情况以及P2P和Wrox图书的许多常见问题。要阅读FAQ,可以在任意P2P页面上单击FAQ链接。
【文件预览】:
Android高级编程 源代码
----Code for Professional Android.zip(686KB)
----Errata.doc(31KB)