首页>参考读物>计算机科学与技术>软件与程序设计

Android开发精要
作者 : 范怀宇 著
出版日期 : 2012-08-10
ISBN : 978-7-111-39058-9
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 352
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

如何才能写出贴近Android设计理念、能够更加高效和可靠运行的Android应用?通过Android的源代码去了解其底层实现细节是最重要的方法之一!然而,Android系统太过于庞大,源代码实现复杂,学习的技术门槛和时间成本都很高。有没有一种方法既能帮助开发者深入理解Android应用开发,又能不被底层大量的实现细节所羁绊,迅速掌握编写高质量Android应用所需的知识?本书针对这个问题给出了完美的答案!它从Android繁杂的源代码中抽取出了Android开发的“精华”和“要点”,剥离了大量琐碎的底层实现细节,进行了高度概括和总结,不仅能帮助开发者迅速从宏观上理解整个Android系统的设计理念,而且能帮助开发者迅速从微观上掌握核心知识点的原理,从而编写出高质量的Android应用。
本书共13章,在逻辑上分为4个部分。第一部分(1-2章):第1章系统介绍了Android的系统架构、核心模块和设计思想,旨在让读者真正理解它的设计理念;第2章讲解了Android源代码的获取、编译、阅读和编辑的方法。第二部分(3-6章):第3章深入阐述了Android组件机制的设计理念和重要特征,并详细介绍了4大组件的方法和原理;第4章讲解了Intent对象和Android的意图机制,阐明了Android是如何将来自不同应用、不同进程的组件整合在一起的;第5章解析了Android中各个组件的生命周期,包括组件的进程模型和线程模型;第6章从开发的角度详细阐述了组件间数据传递的解决方案,以及它们的优缺点和适用场景。第三部分(7-8章):第7章深入讲解了Android的控件框架,结合实际项目对重要控件的实现和使用逐一进行了分析,还包含Android 4.0界面开发的实践“精华”;第8章分析了Android的资源体系,剖析了Android底层对资源的处理。第4部分(9-13章):第9章讲解了Android的数据存储结构,以及不同数据存储模式的使用要点;第10章分析了Android的各种网络连接方式,涵盖NFC和基于Wifi的P2P连接等内容;第11章讲解了Android的定位服务、地址解析服务、地图服务的框架实现;第12章仔细分析了Android各种多媒体功能的实现机制;第13章对Android中比较有特色的一些模块的实现细节进行了分析。

图书特色

要成为真正的Android开发高手,要开发出高质量的Android应用,必须对Android系统的实现原理和工作机制有较深入的理解。然而,整个Android系统非常庞大且错综复杂,要通过源代码理解它,不仅需要较深技术功底,而且需要投入大量时间,技术门槛和成本都非常高。为了让基础不那么扎实又没有充足时间去研究Android源代码的读者也能明白它的原理,本书对它的原理进行了高度概括和抽象,不仅能使读者迅速掌握Android系统的工作机制,而且还能深刻理解系统中各核心模块和服务的实现原理,对希望迅速提高应用开发水平的读者非常有帮助,强烈推荐!
—— 51CTO移动开发频道(http://mobile.51cto.com/)

本书主要内容:
深入阐述Android系统的系统架构、架构特征、设计思想,以及核心功能模块的用途及原理;
介绍Android源代码的获取、编译、阅读和编辑,以及Android源代码的结构;
对界面组件、服务组件、触发器组件和数据源组件4大核心组件的深刻解析,以及对Android中Mashup的应用设计理念和应用配置文件的解析;
对Android的Intent(意图)机制和组件生命周期的全面且深入的分析;
深入剖析利用Intent对象进行数据传输、利用文件进行数据共享、利用应用环境共享全局数据、利用组件共享数据等组件间的数据传输机制和方法;
深入解析Android主要控件的实现原理和工作机制;
对应用资源、数据存储、网络通信、地理信息服务、多媒体处理等重要功能模块和服务的用法和实现原理进行深入分析;
对通话和短信、App Widget、应用内搜索、全局通知机制和联系人处理等重要功能模块的实现原理进行深入分析;
……

Android有着非常出色的设计,对于大部分开发者而言,学会开发Android应用并不难,但写出地道且高效的Android应用却并不容易。Android平台有很多独到的设计,如进程托管、基于组件的架构等,只有真正地了解API后面的底层实现思想和特征,才能够把握Android的机制,写出高效的Android应用。要研究Android的底层原理,最基本和最重要的方式是分析它的源代码,但是Android的源代码非常庞大,很多关键地方也非常复杂并难于整理,需要耗费大量的时间和精力。
本书最大的特色在于对底层实现机制的总结和整理,以及结合项目实践经验对开发中经常会遇到的核心问题给出具体的解决方案。
对于底层实现机制的整理,可视为Android开发的“要点”。对于每一位开发者来说,只有理解和掌握了这些内容,才能在开发时游刃有余。为了能够更好地传达这些要点,本书不会出现大段的底层实现代码,而是把所有的实现机制和策略抽象整理成更易于理解的文字和图表,从而更利于读者学习和理解。
对于常见问题的解决策略,可看做是Android开发中的“精华”部分。本书从系统应用和一些优秀开源项目中整理出常见问题的解决方案,并结合作者实践经验,分析了不同解决方案的思想和适用场景。希望它不仅能够授予读者解决问题之“鱼”,而且能够授予其分析问题之“渔”。

作者简介
范怀宇  资深Android开发工程师,毕业于清华大学,从事移动开发多年,对Android系统有颇为深入的研究,开发经验十分丰富。曾就职于网易有道,负责完成了有道词典Android版、网易掌上邮Android版、网易八方Android版等项目的开发工作,现就职于豌豆实验室,负责豌豆荚2.0版本的设计和开发。很早开始从事Android开发,曾参加ADC1大赛。关注新技术,喜欢阅读源代码和撰写技术文章,活跃于博客园、Chrome开发群和Top Language讨论组等多个社群组织。

图书前言

为什么要写这本书
  一直觉得我和Android还是蛮有缘分的,从Android发布第一个版本的SDK开始,我就一直在“摸着石头”写各种Android应用,了解一切与Android有关的事情,直至今日。还记得刚开始接触Android时,由于缺少相关的学习资料或书籍,入门都是一件非常困难的事情,只能靠自己不断地翻看SDK文档、尝试各种代码实现来揣摩如何开发Android应用,因而走过很多弯路,几乎犯过所有可能出现的错误,深感写好Android程序并不是一件很容易的事情。
  如今有大量的开发者开始从事Android开发,幸运的是很多前辈写了大量关于Android开发的书籍,其中包括很多非常优秀的书籍,能帮助Android开发者更快速地学习Android开发,使他们不用再重复我当年初学时的痛苦。
  但从我在工作中接触到的Android开发者来看,虽然学会如何编写Android应用不再是难事,但他们依旧困扰于如何写出地道的、贴近Android设计理念的、更加高效和运行可靠的Android应用。虽然已经有很多功力深厚的书籍详细剖析过Android底层实现的方方面面,能帮助开发者把Android应用写得更出色,但正是由于这类书中包含了大量底层实现细节,因此使得开发者学习成本较高,难于从中快速获取期望的内容,痛感“远水解不了近渴”。
  因此,我萌生了写这本书的念头,期望从我的开发经验和繁杂的Android源代码中,抽取出Android开发的“精华”和“要点”,这些“精要”剥离了很多琐碎的实现细节,进行了更多的概括和总结。这一方面能够帮助开发者更深入理解Android的应用开发,从学会Android进阶到理解Android;另一方面又使他们不会被太多细节所牵绊,能够更快速地学习和掌握所需内容。
本书主要内容
  本书将所有内容整理成四个部分共13章。
  第一部分帮助读者重新认识Android,并从各个角度来介绍一些Android的核心理念和学习方法,包含前两章内容。第1章从多个方面介绍和阐述了对Android架构的理解,只有真正理解Android的设计理念和思想才能够更快地掌握Android开发。第2章介绍了如何获取、编译和阅读Android源代码,对于愿意投入更多时间学习Android的开发者来说,源代码无疑是最好的学习资料。
  第二部分深入阐述了Android最核心的组件机制,包含4章内容。第3章从整体上阐述了Android组件机制的设计理念和重要特征,详细介绍了4大组件的特点和使用方式。第4章从设计和源代码出发,讲解了Intent对象和Android的意图机制,旨在帮助开发者理解Android是如何将来自不同应用、不同进程的组件整合在一起工作的。第5章介绍了Android各个组件的生命周期,包括每个组件的进程模型、线程模型,以及编程时需要把控的一些“要点”。第6章从实际开发的角度出发,详细介绍了组件间数据传递的解决方案,以及这些解决方案的优缺点和使用场景。
  接下来的第三部分,转换到了另一个核心话题,即Android的交互界面开发,包括两章内容。第7章讲解了Android的控件框架,结合实际的项目,对重要控件的实现和使用逐一进行了分析与讲解,其中包含了最新的Android 4.0界面开发的一些实践“精华”。第8章继续介绍了Android的资源体系,详细剖析了Android底层对资源的处理,并结合具体的应用实现介绍了如何正确地配置资源和构建交互界面。
  剩下的章节是第四部分,其内容涵盖了Android的各个核心模块,对每个模块的实现机制都做了分析,并结合具体的工程实践针对使用模块时最容易遇到的问题给出了解决方案。第9章介绍了Android的数据存储结构,以及不同的数据存储模式的使用要点,包括基于文件、基于设置文件(Preference)、基于数据库、基于云端等多种模式。第10章介绍了Android丰富多彩的网络连接方式,着重介绍了开发时常见问题的解决,范围不仅涵盖了传统的HTTP连接、蓝牙传输,还包括最新的近场通信(NFC)和基于WiFi的P2P连接等。第11章讲解的是Android的地理信息服务,不仅包括Android的定位服务、地址服务和地图服务的框架实现,还特别针对定位时会遇到的各个问题给出了解决方案。第12章围绕Android的多媒体信息处理展开,具体包括了图像、音频、视频和相机的实现和使用,内存占用量大是多媒体处理中最常见的问题,该章结合对一些系统应用的剖析,总结了一些常用的解决策略。第13章涵盖内容比较多,主要介绍的是Android中比较有特色的一些模块,包括短信和通话的处理、联系人的使用、通知机制(Notification)、桌面小工具(App Widget)的开发等内容,着重介绍的是一些比较有特色的实现细节,以帮助开发者写出更为“地道”的Android应用。
本书特色
  本书最大的特色在于对底层实现机制的总结和整理,以及结合项目实践经验对开发中常遇到的核心问题给出具体的解决策略。
  对于底层实现机制的整理,可视为Android开发的“要点”,每个开发者都需要理解和掌握这些内容,才能在开发时“下笔如有神”。为了能够更好地传达这些要点,本书中不会出现大段的底层实现代码,而是把所有的实现机制和策略,整理成文字和图表进行总结解析,以帮助读者更轻松地学习和理解。
  而对于实际开发问题的解决策略,可看做是Android开发中的“精华”部分。本书从系统应用和一些优秀开源项目中整理出常见问题的解决策略,并结合个人实践经验分析不同解决策略的思想和适用场景,不仅能够授读者以解决问题之“鱼”,更能够授其分析问题之“渔”。
本书面向的读者
  我期望所有的Android应用开发者都能够从本书中获益。对于Android初学者而言,可以着重阅读本书对Android设计思想、组件机制、UI框架的介绍,增强对Android底层机制的理解,这对于日后开发更高效、可靠的Android应用,必将有所裨益。
  而对于具有丰富Android开发经验、对Android基础框架有很深认识的资深开发者而言,可以在本书中寻找针对具体问题给出的一些解决策略,相信这些策略会对解决开发中的实际问题有所帮助。
如何阅读本书
  从本书的结构来看,前三部分包含的内容对于大部分开发者都适用,可以逐节进行阅读;而第四部分包含的内容则可以结合具体问题有选择地进行阅读。
  本书在介绍内容的过程中,会涉及Android中的具体Java类,在首次提及时会使用完整的类名进行描述,如android.app.Activity,而在之后再次提及时则会略去全部的包信息,仅使用类名,如Activity,以节约篇幅便于阅读。
与之类似,本书会将一些英文的专有名词翻译成中文,在首次提及时会使用中英文对照的方式,如界面组件(Activity),而再次涉及时则会直接使用中文名称,如界面组件。
  本书几乎没有完整的代码实例(具体的实例来源会给出对应的链接或描述),只有从中截取并改良过的代码片段,其描述风格如下:
  // 这是一段示例代码,在代码的重要位置,会用注释给出解释
  String hello =

上架指导

计算机\程序设计

封底文字

要成为真正的Android开发高手,要开发出高质量的Android应用,必须对Android系统的实现原理和工作机制有较深入的理解。然而,整个Android系统非常庞大且错综复杂,要通过源代码理解它,不仅需要较深技术功底,而且需要投入大量时间,门槛和成本都非常高。为了让基础不那么扎实又没有充足时间去研究Android源代码的读者也能明白它的原理,本书对它的原理进行了高度概括和抽象,不仅能使读者迅速掌握Android系统的工作机制,而且还能深刻理解系统中各核心模块和服务的实现原理,对希望迅速提高应用开发水平的读者非常有帮助,强烈推荐!
——51CTO移动开发频道(http://mobile.51cto.com/)
本书主要内容:
1. Android系统的系统结构、架构特征、设计思想,以及核心功能模块的用途及原理;
2. Android源代码的获取、编译、阅读、编辑,以及Android源代码的结构;
3. 对界面组件、服务组件、触发器组件、数据源组件等4大核心组件的深刻解析,以及对Android中Mashup的应用设计理念和应用配置文件的解析;
4. 对Android的Intent(意图)机制和组件生命周期的全面且深入的分析;
5. 深入剖析利用Intent对象进行数据传输、利用文件进行数据共享、利用应用环境共享全局数据、利用组件共享数据等组件间的数据传输机制和方法;
6. 深入解析Android中各种主要空间的实现原理和工作机制;
7. 对应用资源、数据存储、网络通信、地理信息服务、多媒体处理等重要功能模块和服务的用法和实现原理进行深入分析;
8. 对通话和短信、App Widget、应用内搜索、全局通知机制、联系人处理等重要功能模块的实现原理进行深入分析
……
说明:加上阅读路线图,同《深入Android应用开发》,加51CTOlogo

作者简介

范怀宇 著:暂无简介

图书目录

前言
致谢
第1章 Android的系统架构/1
1.1 Android系统架构概况/2
1.1.1 应用层/4
1.1.2 框架层/5
1.1.3 运行时/5
1.1.4 核心类库/7
1.1.5 硬件抽象层和Linux内核/7
1.2 Android的核心功能模块/8
1.2.1 界面框架/8
1.2.2 数据存储/9
1.2.3 网络通信/10
1.2.4 地理信息/11
1.2.5 图形和多媒体处理/11
1.2.6 外部设备/12
1.2.7 特色功能模块/13
1.3 Android的架构特征和设计思想/13
1.3.1 平台开放性/14
1.3.2 基于组件的应用设计/14
1.3.3 基于网络服务的平台/15
1.4 小结/15
第2章 Android源代码的下载和编译/16
2.1 Android源代码的获取和编译/17
2.1.1 环境搭建/18
2.1.2 源代码获取/18
2.1.3 源代码的编译/21
2.2 Android源代码结构/22
2.2.1 框架层源代码目录frameworks/22
2.2.2 应用层源代码目录packages/24
2.2.3 其他源代码目录/24
2.3 Android源代码的阅读和编辑/25
2.3.1 用Eclipse阅读源代码/25
2.3.2 反馈Bug/26
2.3.3 提交修改/27
2.4 小结/27
第3章 Android组件模型解析/28
3.1 基于Mashup的应用设计/29
3.1.1 Android中的Mashup/29
3.1.2 基于Mashup的Android应用模型/30
3.1.3 基于Mashup的应用架构特征/32
3.2 界面组件Activity解析/34
3.2.1 界面组件的功能和特征/34
3.2.2 界面组件的开发/35
3.2.3 界面组件的数据结构/39
3.3 服务组件Service解析/40
3.3.1 服务组件的功能和特征/41
3.3.2 服务组件的开发和使用/43
3.3.3 服务组件的进程间通信模型/45
3.4 触发器组件Broadcast Receiver解析/49
3.4.1 触发器组件的功能和特征/49
3.4.2 触发器组件的使用/50
3.4.3 广播事件的发送/52
3.5 数据源组件Content Provider解析/52
3.5.1 数据源组件的定位和操作/53
3.5.2 数据源组件的开发/55
3.5.3 数据源组件的实现细节/57
3.6 应用配置文件解析/59
3.6.1 权限配置/61
3.6.2 环境配置/63
3.6.3 应用和组件配置/65
3.7 小结/66
第4章 Android的Intent机制/67
4.1 Intent对象的作用和构成/68
4.1.1 Intent对象的作用/69
4.1.2 Intent对象的构成/70
4.1.3 Intent对象解析/75
4.1.4 Intent Filter对象/76
4.2 意图匹配/78
4.2.1 意图匹配的算法流程/79
4.2.2 匹配组件的选择/84
4.2.3 意图匹配的优化/85
4.3 意图机制的应用/86
4.3.1 意图机制在界面组件中的应用/86
4.3.2 意图机制在服务组件中的应用/88
4.3.3 意图机制在触发器组件中的应用/89
4.4 小结/90
第5章 组件生命周期解析/91
5.1 应用进程模型/92
5.1.1 应用、组件和进程/92
5.1.2 组件的应用进程配置/94
5.2 应用进程托管/96
5.2.1 为什么需要进程托管/97
5.2.2 进程优先级/97
5.2.3 进程回收算法/100
5.2.4 进程的强行终止/103
5.2.5 掌控进程的优先级/105
5.3 组件的生命周期模型/106
5.3.1 界面组件的生命周期/107
5.3.2 服务组件的生命周期/115
5.3.3 触发器组件的生命周期/119
5.3.4 数据源组件的生命周期/120
5.3.5 应用环境的生命周期/120
5.4 任务和界面组件栈/120
5.4.1 界面组件的运行模式/122
5.4.2 组件的任务黏度/126
5.4.3 实际应用中的任务控制/127
5.5 小结/128
第6章 组件间的数据传输/129
6.1 利用Intent对象进行数据传输/130
6.1.1 利用Intent对象回传数据/131
6.1.2 利用Intent对象传递数据的优缺点/133
6.2 利用文件进行数据共享/134
6.2.1 利用文件进行数据共享的实现/134
6.2.2 利用文件进行数据共享的优缺点/135
6.3 利用应用环境的全局数据共享/136
6.3.1 利用应用环境对象共享数据的实现/137
6.3.2 利用应用环境对象共享数据的优缺点/138
6.4 利用组件共享数据/139
6.4.1 利用数据源组件共享数据/139
6.4.2 利用服务组件共享数据/140
6.5 小结/140
第7章 Android控件解析/141
7.1 Android的控件框架/142
7.1.1 Android控件构成/142
7.1.2 Android交互事件传输/143
7.1.3 Android控件属性/145
7.1.4 控件的丈量和绘制/150
7.2 Android的窗口机制/150
7.2.1 窗口机制的基本原理/151
7.2.2 界面组件和窗口/152
7.2.3 对话框/154
7.2.4 弹出窗口/156
7.3 Android的基本控件介绍/158
7.3.1 文本控件/159
7.3.2 图像控件/163
7.3.3 Surface控件/164
7.3.4 Layout控件/164
7.3.5 适配器控件/167
7.3.6 选项卡控件/172
7.3.7 浏览器控件/173
7.4 自定义控件/175
7.4.1 控件的定制/175
7.4.2  复合控件/180
7.4.3 自绘控件/183
7.5 Android界面新发展/188
7.5.1 动作栏/188
7.5.2 界面片段/191
7.5.3 重新定制选项卡/197
7.5.4 交互界面的适配/200
7.6 小结/204
第8章 应用资源/205
8.1 Android应用资源体系/206
8.1.1 Android的应用资源构成/206
8.1.2 应用资源的适配/208
8.1.3 应用资源的动态匹配/209
8.2 应用资源的调用/213
8.2.1 应用资源的编译和R类/213
8.2.2 应用资源的管理/215
8.2.3 使用应用资源/216
8.3 应用资源的类型/217
8.3.1 界面和样式/217
8.3.2 字符串和常量/221
8.3.3 图像、图形和动画/223
8.3.4 其他资源文件/225
8.4 小结/225
第9章 数据存储/226
9.1 Android的文件系统/227
9.1.1 Android的目录结构/229
9.1.2 Android的应用数据存储/229
9.1.3 Android的文件操作/231
9.2 使用设置文件/233
9.2.1 设置文件的存储和使用/234
9.2.2 设置界面组件/235
9.3 使用数据库/238
9.3.1 Android数据库实现/238
9.3.2 Android数据库的使用/240
9.4 存储在云端/243
9.4.1 云端存储的架构/244
9.4.2 云端存储的使用/245
9.5 小结/247
第10章 网络通信/248
10.1 Web通信/249
10.1.1 基于HTTP的网络连接/249
10.1.2 联网方式的选择/252
10.1.3 WiFi的管理/254
10.2 蓝牙/256
10.2.1 Android的蓝牙实现/256
10.2.2 基于蓝牙的通信/257
10.3 近场通信/259
10.3.1 基于NFC的识别和通信/259
10.3.2 基于NFC的点对点通信/263
10.4 基于WiFi连接的P2P通信/263
10.4.1 Android 4.0的P2P连接实现/264
10.4.2 使用Socket进行数据传输/266
10.5 小结/268
第11章 地理信息服务/269
11.1 Android的定位服务/270
11.1.1 定位服务框架/270
11.1.2 位置信息源/272
11.1.3 定位选择/273
11.1.4 定位实例/274
11.2 Android的地址服务/277
11.2.1 地址服务的框架/277
11.2.2 使用地址服务/278
11.3 Android的地图服务/279
11.3.1 使用地图/279
11.3.2 其他使用地图服务的方式/282
11.4 小结/283
第12章 多媒体处理/284
12.1 Android的图像处理/285
12.1.1 图像的表示/285
12.1.2 图像的读取和输出/286
12.1.3 图像的呈现/288
12.1.4 图像的管理/290
12.2 Android的音视频处理/291
12.2.1 Android音视频的支持框架/291
12.2.2 Android音视频的播放/292
12.2.3 Android音视频的录制/294
12.3 Android中相机的使用/296
12.4 小结/300
第13章 其他重要模块/301
13.1 通话和短信/302
13.1.1 Android的通话和短信框架/302
13.1.2 通话的处理/303
13.1.3 短信的发送和接收/305
13.2 App Widget的使用和实现/308
13.2.1 Android的App Widget框架/309
13.2.2 App Widget的界面构造和Remote Views /311
13.2.3 App Widget的事件处理和Pending Intent /313
13.3 Android的应用内搜索/317
13.3.1 Android应用内搜索实现框架/317
13.3.2 为应用定制搜索功能/318
13.3.3 全局搜索功能/322
13.4 Android的全局通知机制/323
13.4.1 全局通知的类型和实现/324
13.4.2 Toast的使用/325
13.4.3 状态栏通知/327
13.5 Android联系人处理/331
13.5.1 Android联系人数据存储框架/331
13.5.2 Android联系人操作/332
13.6 小结/334

教学资源推荐
作者: [美]H. H. 塔恩(H.H.Tan),T. B. 多拉齐奥(T.B.D'Orazio)[香港]柯兆恒(S. H. Or),玛丽安 M. Y. 周(Marian M. Y. Choy) 著
作者: 陈作聪 苏静 王龙 等编著
作者: (美)Bjarne Stroustrup 著
作者: [美] 托尼·加迪斯(Tony Gaddis) 著
参考读物推荐