内容简介
Android 4的问世,标志着Google将Android操作系统的大旗插到了智能手机和平板电脑的阵营中。《移动与嵌入式开发技术·Android 4编程入门经典:开发智能手机与平板电脑应用》将教会您成功开发Android应用程序所需的一切。《移动与嵌入式开发技术·Android 4编程入门经典:开发智能手机与平板电脑应用》涵盖了Android应用程序开发的所有基础,包括用户界面、网络、SMS消息传递、数据库、基于位置的服务和部署等。资深作者Wei-Meng Lee为您铺就了一条成功开发和部署Android应用程序的康庄大道。
作者简介
Wei-Meng Lee,Developer Learning Solutions公司的创始人和技术专家。这家公司专注于Microsoft和Apple公司全新技术的培训。Wei-Meng Lee不但是Beginning AndroidApplication Development和Beginning iOS 5 ApplicationDevelopment这两本畅销书的作者,还撰写了其他许多技术性的图书和文章。
内页插图
目录
第1章 Android编程入门
1.1 Android简介
1.1.1 Android版本
1.1.2 Android功能
1.1.3 Android架构
1.1.4 市场上的Android设备
1.1.5 An(hDid Market
1.1.6 Android开发社区
1.2 获得所需工具
1.2.1 Android SDK
1.2.2 安装Android SDK工具
1.2.3 配置Android SDK Manager
1.2.4 Eclipse
1.2.5 Android开发工具
1.2.6 创建Android虚拟设备(AVD)
1.3 创建第一个Android应用程序
1.4 Android应用程序剖析
1.5 本章小结
第2章 活动、碎片和意图
2.1 理解活动
2.1.1 如何对活动应用样式和主题
2.1.2 隐藏活动标题
2.1.3 显示对话框窗口
2.1.4 显示进度对话框
2.1.5 显示更复杂的进度对话框
2.2 使用意图链接活动
2.2.1 解决意图筛选器的冲突
2.2.2 从意图返回结果
2.2.3 使用意图对象传递数据
2.3 碎片
2.3.1 动态添加碎片
2.3.2 碎片的生命周期
2.3.3 碎片之间进行交互
2.4 使用意图调用内置应用程序
2.4.1.理解意图对象
2.4.2 使用意图筛选器
2.4.3 添加类别
2.5 显示通知
2.6 本章小结
第3章 Android用户界面
3.1 了解屏幕的构成
3.1.1 视图和视图组
3.1.2 LinearI.ayout
3.1.3 Abs01uteLayout
3.1.4 TableLayout
3.1.5 RelativeLayout
3.1.6 FrameLayout
3.1.7 Scr01lview
3.2 适应显示方向
3.2.1 锚定视图
3.2.2 调整大小和重新定位
3.3 管理屏幕方向的变化
3.3.1 配置改变时保持状态信息
3.3.2 检测方向改变
3.3.3 控制活动的方向
3.4 使用Action Bar
3.4.1 向Action Bar添加动作项
3.4.2 定制动作项和应用程序图标
3.5 以编程方式创建用户界面
3.6 侦听用户界面通知
3.6.1 重写活动中定义的方法
3.6.2 为视图注册事件
3.7 本章小结
第4章 使用视图设计用户界面
4.1 基本视图
4.1.1 TextView视图
4.1.2 Button、ImageButton、EditText、CheckBox、ToggleButton、RadioButton和RadioGroup视图
4.1.3 ProgressBar视图
4.1.4 AutoCompleteTextView视图
4.2 选取器视图
4.2.1 TimePicker视图
4.2.2 DatePicker视图
4.3 使用列表视图显示长列表
4.3.1 ListView视图
4.3.2 使用Spinner视图
4.4 了解特殊碎片
4.4.1 使用ListFragment
4.4.2 使用DialogFragment
4.4.3 使用PreferenceFragment
4.5 本章小结
第5章 使用视图显示图片和菜单
5.1 使用图像视图显示图片
5.1.1 Gallery和ImageView视图
5.1.2 ImageSwitcher
5.1.3 GridView
5.2 将菜单和视图一起使用
5.2.1 创建辅助方法
5.2.2 选项菜单
5.2.3 上下文菜单
5.3 其他一些视图
5.3.1 AnalogClock和DigitaIClock视图
5.3.2 WebView
5.4 本章小结
第6章 数据持久化
6.1 保存和加载用户首选项
6.1.1 使用活动访问首选项
6.1.2 通过编程检索和修改首选项值
6.1.3 修改首选项文件的默认名称
6.2 将数据持久化到文件中
6.2.1 保存到内部存储器
6.2.2 保存到外部存储器(SD卡)
6.2.3 选择最佳存储选项
6.2.4 使用静态资源
6.3 创建和使用数据库
6.3.1 创建DBAdapter辅助类
6.3.2 以编程方式使用数据库
6.3.3 预创建数据库
6.4 本章小结
第7章 内容提供者
7.1 在Android中共享数据
7.2 使用内容提供者
7.2.1 预定义查询字符串常量
7.2.2 投影
7.2.3 筛选
7.2.4 排序
7.3 创建自己的内容提供者
7.4 使用内容提供者
7.5 本章小结
第8章 消息传递
8.1 SMS消息传递
8.1.1 以编程方式发送SMS消息
8.1.2 发送消息后获取反馈
8.1.3 使用意图发送SMS消息
8.1.4 接收SMS消息
8.1.5 说明和警告
8.2 发送电子邮件
8.3 本章小结
第9章 基于位置的服务
9.1 显示地图
9.1.1 创建项目
9.1.2 获取Maps API密钥
9.1.3 显示地图
9.1.4 显示缩放控件
9.1.5 改变视图
9.1.6 导航到特定位置
9.1.7 添加标记
9.1.8 获取触摸的位置
9.1.9 地理编码和反向地理编码
9.2 获取位置数据
9.3 监控一个位置
9.4 项目——创建一个位置跟踪应用程序
9.5 本章小结
第10章 联网
10.1 通过HTTP使用Web服务
10.1.1 下载二进制数据
10.1.2 下载文本内容
10.1.3 通过GET方法访问Web服务
10.2 使用JSON服务
10.3 套接字编程
10.4 本章小结
第11章 开发Android服务
11.1 创建自己的服务
11.1.1 在服务中执行长时间运行的任务
11.1.2 在服务中执行重复的任务
11.1.3 使用IntentService在单独的线程上执行异步任务
11.2 在服务和活动之间通信
11.3 将活动绑定到服务
11.4 理解线程
11.5 本章小结
第12章 发布Android应用程序
12.1 为发布做准备
12.1.1 版本化
12.1.2 对Android应用程序进行数字签名
12.2 部署APK文件
12.2.1 使用adb.exe工具
12.2.2 使用Web服务器
12.2.3 在Android Market上发布
12.3 本章小结
附录A 使用Eclipse进行Android开发
附录B 使用Android模拟器
附录C 练习答案
精彩书摘
为Android 3.0之前的版本编写的应用程序在Android 3.0设备上可以直接运行,无须修改。但是,使用了Android 3.0的新功能编写的Android 3.0平板电脑应用程序是不能在较早的设备上运行的。为了确保Android 3.0平板电脑应用程序可以在各种版本的设备上运行,必须从编程方面入手确保只使用Android的特定版本支持的功能。
在2011年11月,Google发布了Android 4.0,让智能手机也具有了Android 3.0中引入的所有功能,并且还提供了一些新功能,包括面部识别解锁功能、数据使用监控、近距离通信(Near Field Communication,NFC)等。
1.1.2 Android功能
鉴于Android的开源以及制造商可对其自由定制的特点,因此没有固定的软硬件配置。然而,Android本身支持如下功能:
存储——使用SQLite(轻量级的关系数据库)进行数据存储,第6章将对数据存储进行详细讨论。
连接性——支持GSM/EDGE、IDEN、CDMA、EV—D0、UMTS、Bluetooth(包括A2DP和AVRCP)、WiFi、LTE和WiMAX。第8章将详细讨论联网。
消息传递——支持SMS和MMS,也在第8章进行详细探讨。
Web浏览器——基于开源的WebKit,并集成Chrome的V8 JavaScript引擎。
媒体支持——支持以下媒体:H.263、H.264(在3GP或MP4容器中)、MPEG—4 SP、AMR、AMR—WB(在3GP容器中)、AAC、HE—AAC(在MP4或3GP容器中)、MP3、MIDI、OggVorbis、WAV、JPEG、PNG、GIF和BMP。
硬件支持——加速度传感器、摄像头、数字式罗盘、接近传感器和全球定位系统(GPS)。
多点触摸——支持多点触摸屏幕。
多任务——支持多任务应用。
Flash支持——Android 2.3支持Flash 10.1。
tethering——支持作为有线/无线热点实现Internet连接共享。
1.1.3 Android架构
为了理解Android的工作方式,可以参看图1—1,该图描述了构成Android操作系统(OS)的各个层。
Android操作系统大致可以在4个主要层面上分为以下5个部分:
Linux内核——这是Android所基于的核心。这一层包括了一个Android设备的各种硬件组件的所有低层设备驱动程序。
库——包括了提供Android操作系统的主要功能的全部代码。例如,SQLite库提供了支持应用程序进行数据存储的数据库。WebKit库为浏览Web提供了众多功能。
前言/序言
《Android 4 编程实战:从零到精通智能设备应用开发》 一、 核心理念与价值定位 本书并非照搬官方文档的堆砌,而是萃取了 Android 4.x 版本时代最核心、最实用、最能帮助开发者快速构建高质量应用的知识体系。我们深知,对于初学者而言,茫茫的代码海洋和抽象的概念往往令人望而却步。因此,本书以“实战”为核心,辅以“入门”的引导,致力于为所有渴望涉足 Android 应用开发领域的开发者,无论您是怀揣梦想的在校学生,还是寻求技术转型的在职工程师,亦或是富有创意的产品经理,提供一条清晰、高效的学习路径。 本书的独特价值在于,它不仅仅是介绍 Android 4.x 的 API 和组件,更是通过 “为何要这样做”、“如何优雅地实现”、“潜在的陷阱与规避” 等多个维度,引导读者深入理解 Android 开发的底层逻辑和设计思想。我们强调的是,理解“为什么”比死记硬背“怎么做”更为重要。通过大量的实例分析和代码演示,您将能够构建出不仅功能完整,而且用户体验流畅、性能优越、易于维护的 Android 应用程序。 二、 目标读者与学习路径 本书的目标读者广泛,涵盖了从零基础到有一定编程经验的各类开发者: Android 开发初学者: 即使您对 Java 语言尚不熟悉,本书也会从最基础的 Java 语言特性入手,并逐步引导您掌握 Android 开发所需的知识。 从其他平台转向 Android 的开发者: 如果您已经掌握了其他移动开发平台(如 iOS)或桌面应用开发(如 Java Swing/JavaFX)的经验,本书将帮助您快速理解 Android 特有的架构和开发模式。 希望深入理解 Android 4.x 版本的开发者: 尽管 Android 版本更新迭代迅速,但 Android 4.x 仍然是许多嵌入式设备和老旧终端的重要支撑。本书将帮助您巩固和深化对这一关键版本的理解。 产品经理、UI/UX 设计师: 通过本书,您将能够更深入地理解技术实现的可能性与局限性,从而设计出更具可行性和用户价值的产品。 本书的学习路径设计为由浅入深,循序渐进: 1. 基础篇: 从 Android 开发环境的搭建开始,介绍 Android 应用的基本构成、四大组件(Activity, Service, Broadcast Receiver, Content Provider)的生命周期和核心用法,以及常用的 UI 组件和布局管理器。 2. 进阶篇: 深入探讨数据存储(SharedPreferences, SQLite),网络通信(HTTP, JSON),线程与异步处理,以及多媒体(音频、视频)的集成。 3. 实战篇: 通过多个完整、贴近实际需求的案例,如构建一个简单的社交应用、一个待办事项管理工具、一个音乐播放器等,将前两阶段的知识融会贯通,教会读者如何将所学技能转化为实际产品。 4. 优化与扩展: 讲解应用性能优化、异常处理、调试技巧,以及如何利用第三方库和 SDK 扩展应用功能。 三、 内容亮点与深度解析 本书内容详实,涵盖 Android 4.x 开发的方方面面,并力求做到深入浅出,以下为部分亮点内容的深度解析: 1. Android 应用架构与生命周期精讲: 四大组件的“灵魂”: 我们不仅会列举 Activity, Service, Broadcast Receiver, Content Provider 的基本功能,更会深入剖析它们之间如何协作、如何通过 Intent 进行通信,以及它们各自的生命周期对应用状态管理的影响。例如,在讲解 Activity 生命周期时,我们会详细分析 `onCreate()`, `onStart()`, `onResume()`, `onPause()`, `onStop()`, `onDestroy()` 的调用时机和应用场景,并结合实际案例演示如何在不同生命周期阶段进行资源的管理和状态的保存,防止内存泄漏和不必要的资源浪费。 任务栈(Task Stack)的管理: 深入解析 Activity 之间的导航机制,如何通过 `FLAG` 控制任务栈的行为,实现单例 Activity、清除栈内 Activity 等复杂导航逻辑。 2. 用户界面(UI)设计与交互: 从 XML 到代码的灵活运用: 详细介绍各种 UI 控件(TextView, EditText, Button, CheckBox, RadioButton, ImageView, ListView, GridView 等)的属性和用法,以及如何使用布局管理器(LinearLayout, RelativeLayout, AbsoluteLayout, TableLayout)构建灵活、美观的界面。 自定义 View 的奥秘: 带领读者从零开始学习如何创建自定义 View,实现独特的用户交互和视觉效果。我们会详细讲解 View 的绘制流程、事件分发机制,并通过实例演示如何构建一个可以自由拖拽的图片视图或者一个具有特殊动画效果的进度条。 Material Design 概念引入(Android 4.x 适配): 尽管 Material Design 在 Android 5.0 之后才正式引入,但本书将适时介绍 Android 4.x 中可用的 UI 控件和设计模式,为读者理解后续版本的设计理念打下基础。我们将介绍如何通过第三方库实现一些 Material Design 的元素,或者如何使用 Android 4.x 提供的标准控件来模拟类似的效果。 3. 数据持久化策略: SharedPreferences: 讲解如何使用 SharedPreferences 存储轻量级的数据,如用户偏好设置、登录状态等,并强调其线程安全问题及最佳实践。 SQLite 数据库: 详细介绍 Android 内置的 SQLite 数据库,包括数据库的创建、表的定义、CRUD 操作(增、删、改、查)、SQL 语句的编写、以及 Cursor 的使用。我们会通过一个完整的数据库应用案例,演示如何设计高效的数据库 schema,并进行数据的批量操作和查询优化。 文件存储: 讲解内部存储与外部存储的区别,以及如何安全地读写文件。 4. 网络通信与数据交互: HTTP 客户端: 介绍 Android 中进行网络请求的几种常用方式,包括原生的 `HttpURLConnection` 以及更易用的第三方库(如 Apache HttpClient)。我们会详细讲解 GET、POST 请求的实现,请求头的设置,响应码的处理,以及数据的编码与解码。 JSON 解析: 讲解如何使用 Android 提供的 JSON 解析库(`JSONObject`, `JSONArray`)或者更强大的第三方库(如 Gson, Jackson)来解析和生成 JSON 数据,这是当前移动开发中最常用的数据交换格式。 异步处理: 深入讲解 Android 中的线程模型,包括 Handler, Message, Looper, MessageQueue 的工作原理,以及 AsyncTask 的使用。我们会通过实例演示如何避免在主线程进行耗时操作,保证 UI 的流畅性,并讲解如何正确地处理线程的生命周期。 5. 多媒体应用开发: 音频与视频播放: 讲解如何使用 `MediaPlayer` API 来实现音频和视频的播放、暂停、停止、Seek 等功能,并介绍如何处理播放过程中的各种状态和异常。 相机访问: 指导读者如何通过 `Camera` API 调用设备相机,拍照并处理图片,了解拍照的权限设置和回调机制。 6. 服务(Service)与后台任务: 深入理解 Service: 详细讲解 Service 的生命周期,前台 Service 和后台 Service 的区别,以及如何使用 `startService()` 和 `bindService()` 两种方式启动 Service。我们会通过一个后台下载任务的例子,演示如何在一个独立的线程中执行耗时操作,并与 UI 进程进行通信。 Broadcast Receiver 的应用: 介绍如何注册和广播自定义的 Intent,以及如何接收系统广播(如网络状态变化、电池电量变化等),并基于这些事件执行相应的操作。 7. 内容提供者(Content Provider): 跨应用数据共享的桥梁: 详细讲解 Content Provider 的概念,如何创建自己的 Content Provider 来对外暴露数据,以及如何使用 Content Resolver 来访问其他应用的 Content Provider。我们会通过一个联系人信息访问的案例,来演示 Content Provider 的实际应用。 8. 应用程序打包与发布: APK 生成与签名: 讲解如何生成 APK 文件,包括签名证书的创建与使用,以及应用程序的发布流程。 四、 学习方法与建议 动手实践是王道: 本书提供了大量的代码示例,请务必在自己的开发环境中亲手敲写、运行、调试这些代码。尝试修改代码,观察结果,这是加深理解最有效的方式。 理解“为什么”: 在学习每个组件或 API 时,不仅要了解“怎么用”,更要思考“为什么这样设计”、“它解决了什么问题”。这种思考会帮助您形成对 Android 架构的整体认知。 善用调试工具: Android Studio 提供了强大的调试工具,学会使用断点、单步执行、查看变量值等技巧,能极大地提高开发效率和问题排查能力。 查阅官方文档: 本书是对 Android 4.x 核心知识的提炼,但官方文档是最权威的参考。在遇到特定问题时,请务必查阅 Android 官方文档以获取最准确的信息。 参与社区讨论: 加入 Android 开发相关的技术社区,与其他开发者交流经验,可以帮助您解决遇到的难题,并了解最新的技术动态。 五、 总结 《Android 4 编程实战:从零到精通智能设备应用开发》旨在成为您 Android 4.x 开发旅程中最可靠的伙伴。它将带您穿越 Android 开发的各个层面,从基础概念到高级技巧,从理论到实践,让您不仅能“学会”开发,更能“精通”开发。我们相信,通过本书的学习,您将能够自信地构建出满足您创意和需求的智能手机与平板电脑应用程序,并在移动开发领域迈出坚实的第一步。