Android开发精要

Android开发精要

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
8.1168 评价豆瓣读书

作品简介

本书如何才能写出贴近Android设计理念、能够更加高效和可靠运行的Android应用?通过Android的源代码去了解其底层实现细节是最重要的方法之一!然而,Android系统太过于庞大,源代码实现复杂,学习的技术门槛和时间成本都很高。有没有一种方法既能帮助开发者深入理解Android应用开发,又能不被底层大量的实现细节所羁绊,迅速掌握编写高质量Android应用所需的知识?《Android开发精要》针对这个问题给出了完美的答案!它从Android繁杂的源代码中抽取出了Android开发的“精华”和“要点”,剥离了大量琐碎的底层实现细节,进行了高度概括和总结,不仅能帮助开发者迅速从宏观上理解整个Android系统的设计理念,而且能帮助开发者迅速从微观上掌握核心知识点的原理,从而编写出高质量的Android应用。

范怀宇:资深Android开发工程师,毕业于清华大学,从事移动开发多年,对Android系统有颇为深入的研究,开发经验十分丰富。曾就职于网易有道,负责完成了有道词典Android版、网易掌上邮Android版、网易八方Android版等项目的开发工作,现就职于豌豆实验室 ,负责豌豆荚2.0版本的设计和开发。

作品目录

  1. 前言
  2. 为什么要写这本书
  3. 本书主要内容
  4. 本书特色
  5. 本书面向的读者
  6. 如何阅读本书
  7. 资源及勘误
  8. 致谢
  9. 第1章 Android的系统架构
  10. 1.1 Android系统架构概况
  11. 1.1.1 应用层
  12. 1.1.2 框架层
  13. 1.1.3 运行时
  14. 1.1.4 核心类库
  15. 1.1.5 硬件抽象层和Linux内核
  16. 1.2 Android的核心功能模块
  17. 1.2.1 界面框架
  18. 1.2.2 数据存储
  19. 1.2.3 网络通信
  20. 1.2.4 地理信息
  21. 1.2.5 图形和多媒体处理
  22. 1.2.6 外部设备
  23. 1.2.7 特色功能模块
  24. 1.3 Android的架构特征和设计思想
  25. 1.3.1 平台开放性
  26. 1.3.2 基于组件的应用设计
  27. 1.3.3 基于网络服务的平台
  28. 1.4 小结
  29. 第2章 Android源代码的下载和编译
  30. 2.1 Android源代码的获取和编译
  31. 2.1.1 环境搭建
  32. 2.1.2 源代码获取
  33. 2.1.3 源代码的编译
  34. 2.2 Android源代码结构
  35. 2.2.1 框架层源代码目录frameworks
  36. 2.2.2 应用层源代码目录packages
  37. 2.2.3 其他源代码目录
  38. 2.3 Android源代码的阅读和编辑
  39. 2.3.1 用Eclipse阅读源代码
  40. 2.3.2 反馈Bug
  41. 2.3.3 提交修改
  42. 2.4 小结
  43. 第3章 Android组件模型解析
  44. 3.1 基于Mashup的应用设计
  45. 3.1.1 Android中的Mashup
  46. 3.1.2 基于Mashup的Android应用模型
  47. 3.1.3 基于Mashup的应用架构特征
  48. 3.2 界面组件Activity解析
  49. 3.2.1 界面组件的功能和特征
  50. 3.2.2 界面组件的开发
  51. 3.2.3 界面组件的数据结构
  52. 3.3 服务组件Service解析
  53. 3.3.1 服务组件的功能和特征
  54. 3.3.2 服务组件的开发和使用
  55. 3.3.3 服务组件的进程间通信模型
  56. 3.4 触发器组件Broadcast Receiver解析
  57. 3.4.1 触发器组件的功能和特征
  58. 3.4.2 触发器组件的使用
  59. 3.4.3 广播事件的发送
  60. 3.5 数据源组件Content Provider解析
  61. 3.5.1 数据源组件的定位和操作
  62. 3.5.2 数据源组件的开发
  63. 3.5.3 数据源组件的实现细节
  64. 3.6 应用配置文件解析
  65. 3.6.1 权限配置
  66. 3.6.2 环境配置
  67. 3.6.3 应用和组件配置
  68. 3.7 小结
  69. 第4章 Android的Intent机制
  70. 4.1 Intent对象的作用和构成
  71. 4.1.1 Intent对象的作用
  72. 4.1.2 Intent对象的构成
  73. 4.1.3 Intent对象解析
  74. 4.1.4 Intent Filter对象
  75. 4.2 意图匹配
  76. 4.2.1 意图匹配的算法流程
  77. 4.2.2 匹配组件的选择
  78. 4.2.3 意图匹配的优化
  79. 4.3 意图机制的应用
  80. 4.3.1 意图机制在界面组件中的应用
  81. 4.3.2 意图机制在服务组件中的应用
  82. 4.3.3 意图机制在触发器组件中的应用
  83. 4.4 小结
  84. 第5章 组件生命周期解析
  85. 5.1 应用进程模型
  86. 5.1.1 应用、组件和进程
  87. 5.1.2 组件的应用进程配置
  88. 5.2 应用进程托管
  89. 5.2.1 为什么需要进程托管
  90. 5.2.2 进程优先级
  91. 5.2.3 进程回收算法
  92. 5.2.4 进程的强行终止
  93. 5.2.5 掌控进程的优先级
  94. 5.3 组件的生命周期模型
  95. 5.3.1 界面组件的生命周期
  96. 5.3.2 服务组件的生命周期
  97. 5.3.3 触发器组件的生命周期
  98. 5.3.4 数据源组件的生命周期
  99. 5.3.5 应用环境的生命周期
  100. 5.4 任务和界面组件栈
  101. 5.4.1 界面组件的运行模式
  102. 5.4.2 组件的任务黏度
  103. 5.4.3 实际应用中的任务控制
  104. 5.5 小结
  105. 第6章 组件间的数据传输
  106. 6.1 利用Intent对象进行数据传输
  107. 6.1.1 利用Intent对象回传数据
  108. 6.1.2 利用Intent对象传递数据的优缺点
  109. 6.2 利用文件进行数据共享
  110. 6.2.1 利用文件进行数据共享的实现
  111. 6.2.2 利用文件进行数据共享的优缺点
  112. 6.3 利用应用环境的全局数据共享
  113. 6.3.1 利用应用环境对象共享数据的实现
  114. 6.3.2 利用应用环境对象共享数据的优缺点
  115. 6.4 利用组件共享数据
  116. 6.4.1 利用数据源组件共享数据
  117. 6.4.2 利用服务组件共享数据
  118. 6.5 小结
  119. 第7章 Android控件解析
  120. 7.1 Android的控件框架
  121. 7.1.1 Android控件构成
  122. 7.1.2 Android交互事件传输
  123. 7.1.3 Android控件属性
  124. 7.1.4 控件的丈量和绘制
  125. 7.2 Android的窗口机制
  126. 7.2.1 窗口机制的基本原理
  127. 7.2.2 界面组件和窗口
  128. 7.2.3 对话框
  129. 7.2.4 弹出窗口
  130. 7.3 Android的基本控件介绍
  131. 7.3.1 文本控件
  132. 7.3.2 图像控件
  133. 7.3.3 Surface控件
  134. 7.3.4 Layout控件
  135. 7.3.5 适配器控件
  136. 7.3.6 选项卡控件
  137. 7.3.7 浏览器控件
  138. 7.4 自定义控件
  139. 7.4.1 控件的定制
  140. 7.4.2 复合控件
  141. 7.4.3 自绘控件
  142. 7.5 Android界面新发展
  143. 7.5.1 动作栏
  144. 7.5.2 界面片段
  145. 7.5.3 重新定制选项卡
  146. 7.5.4 交互界面的适配
  147. 7.6 小结
  148. 第8章 应用资源
  149. 8.1 Android应用资源体系
  150. 8.1.1 Android的应用资源构成
  151. 8.1.2 应用资源的适配
  152. 8.1.3 应用资源的动态匹配
  153. 8.2 应用资源的调用
  154. 8.2.1 应用资源的编译和R类
  155. 8.2.2 应用资源的管理
  156. 8.2.3 使用应用资源
  157. 8.3 应用资源的类型
  158. 8.3.1 界面和样式
  159. 8.3.2 字符串和常量
  160. 8.3.3 图像、图形和动画
  161. 8.3.4 其他资源文件
  162. 8.4 小结
  163. 第9章 数据存储
  164. 9.1 Android的文件系统
  165. 9.1.1 Android的目录结构
  166. 9.1.2 Android的应用数据存储
  167. 9.1.3 Android的文件操作
  168. 9.2 使用设置文件
  169. 9.2.1 设置文件的存储和使用
  170. 9.2.2 设置界面组件
  171. 9.3 使用数据库
  172. 9.3.1 Android数据库实现
  173. 9.3.2 Android数据库的使用
  174. 9.4 存储在云端
  175. 9.4.1 云端存储的架构
  176. 9.4.2 云端存储的使用
  177. 9.5 小结
  178. 第10章 网络通信
  179. 10.1 Web通信
  180. 10.1.1 基于HTTP的网络连接
  181. 10.1.2 联网方式的选择
  182. 10.1.3 WiFi的管理
  183. 10.2 蓝牙
  184. 10.2.1 Android的蓝牙实现
  185. 10.2.2 基于蓝牙的通信
  186. 10.3 近场通信
  187. 10.3.1 基于NFC的识别和通信
  188. 10.3.2 基于NFC的点对点通信
  189. 10.4 基于WiFi连接的P2P通信
  190. 10.4.1 Android 4.0的P2P连接实现
  191. 10.4.2 使用Socket进行数据传输
  192. 10.5 小结
  193. 第11章 地理信息服务
  194. 11.1 Android的定位服务
  195. 11.1.1 定位服务框架
  196. 11.1.2 位置信息源
  197. 11.1.3 定位选择
  198. 11.1.4 定位实例
  199. 11.2 Android的地址服务
  200. 11.2.1 地址服务的框架
  201. 11.2.2 使用地址服务
  202. 11.3 Android的地图服务
  203. 11.3.1 使用地图
  204. 11.3.2 其他使用地图服务的方式
  205. 11.4 小结
  206. 第12章 多媒体处理
  207. 12.1 Android的图像处理
  208. 12.1.1 图像的表示
  209. 12.1.2 图像的读取和输出
  210. 12.1.3 图像的呈现
  211. 12.1.4 图像的管理
  212. 12.2 Android的音视频处理
  213. 12.2.1 Android音视频的支持框架
  214. 12.2.2 Android音视频的播放
  215. 12.2.3 Android音视频的录制
  216. 12.3 Android中相机的使用
  217. 12.4 小结
  218. 第13章 其他重要模块
  219. 13.1 通话和短信
  220. 13.1.1 Android的通话和短信框架
  221. 13.1.2 通话的处理
  222. 13.1.3 短信的发送和接收
  223. 13.2 App Widget的使用和实现
  224. 13.2.1 Android的App Widget框架
  225. 13.2.2 App Widget的界面构造和Remote Views
  226. 13.2.3 App Widget的事件处理和Pending Intent
  227. 13.3 Android的应用内搜索
  228. 13.3.1 Android应用内搜索实现框架
  229. 13.3.2 为应用定制搜索功能
  230. 13.3.3 全局搜索功能
  231. 13.4 Android的全局通知机制
  232. 13.4.1 全局通知的类型和实现
  233. 13.4.2 Toast的使用
  234. 13.4.3 状态栏通知
  235. 13.5 Android联系人处理
  236. 13.5.1 Android联系人数据存储框架
  237. 13.5.2 Android联系人操作
  238. 13.6 小结
载入中

热门划线

  1. Dalvik没有沿用传统的Java二进制码(Java Bytecode)作为其一次编译的中间文件,而是应用了新的二进制码格式文件.dex。在Android应用的编译过程中,它会先生成若干个.class文件,然后统一转换成一个.dex文件。在转换过程中,Android会对部分.class文件中的指令做转义,使用Dalvik特有的指令集OpCodes来替换,以提高执行效率。同时,.dex会整合多个.class文件中的重复信息,并对冗余部分做全局的优化和调整,合并重复的常量定义,以节约常量池耗费的空间。这使得最终得到的.dex文件通常会比将.class文件压缩打包得出的.jar文件更精简。4 人
  2. 而对于开发者而言,框架层最直观的体现就是SDK,它通过一系列的Java功能模块,来实现应用所需的功能。SDK的设计决定了上层应用的开发模式、开发效率及能够实现的功能范畴。因此,对于开发者而言,关注SDK的变迁是一件很有必要的事情,SDK每个新版本的诞生,都意味着一些老的接口会被调整或抛弃,另一些新的接口和功能火热出炉。开发者不但要查看和关注那些被修改的接口,来检查应用的兼容性,并采取相应的策略去适应这些变化,更重要的是,开发者还要追踪新提供的接口,寻找改进应用的机会,甚至是寻求开发新应用的可能。2 人
  3. Android的每个交互界面都由一棵控件树构成。控件树中的控件(Widget)对象皆派生自android.view.View类,而其中非子节点的控件都派生自android.view.ViewGroup类,可称之为容器控件。2 人
  4. 编写一个个独立的组件,然后通过配置文件对每个组件的需求和能力进行描述,Android系统会统一调度这些组件2 人
  5. 与界面组件的通信连接,需要通过Intent(android.content.Intent)对象来建立;而与数据源组件的通信,则通过URI地址来定位并搭建连接通路。2 人
  6. C/S和B/S2 人
  7. MIME type2 人
  8. Android的每个应用进程都有一个应用环境对象(Application Context)。小数据量的共享数据可以通过它来进行存储,从而避免因数据在界面组件间连续传递而增加的额外开销和复杂性。2 人
  9. 系统会提前将资源文件进行预编译,同时生成与应用中的资源相对应的R类。2 人
  10. Activity.setContentView方法,可以将相关资源信息设置到界面的内容区域中。2 人

大家都喜欢