约定

为了书写的方便,本书进行了以下约定,如果没有特殊说明,按约定进行。

1.开发环境

在本书的撰写过程中,基于的开发环境为Ubuntu 10.04 LTS、Eclipse 3.5、Android SDK 2.3、Linux内核为Qualcomm的Aurora源代码。

2.作者

本书的最终完成,是两位作者呕心沥血的结果,为了叙述的方便,在本书中以“笔者”来指代作者。

3.注释

本书中在为代码或者命令选项进行注释时,单行注释采用“//”的方式进行。多行注释采用“/* …*/”的方式进行。

4.终端提示符

在本书中,常要用到Linux终端命令。为了方便起见,终端提示符统一用“#”表示。

5.省略

出于缩减篇幅的考虑,本书对涉及的代码进行了有选择性地删减,其中“…”表示此处省略了部分代码。

6.路径

为了读者理解的方便,在本书中有多处内容涉及代码的路径,当内容为Android的官方代码时,默认根目录为Android代码结构树的根目录,当涉及硬件平台时,参考的代码为Qualcomm提供的开源Aurora内核,路径以aurora/…开始。涉及文件时,也会仅写出文件名。

7.原生服务

对所谓的用C/C++实现的“Native”代码,笔者按照惯例翻译为“原生”,对应的服务为原生服务。

8.类与接口

为了叙述的方便,在本书中,无论是描述各类间关系的类图还是文字描述,对类与接口概念并没有严格区分。

9.Android的版本

Android 1.5的代号为Cupcak(e杯子蛋糕);Android 1.6的代号为Donu(t甜甜圈);Android 2.0的代号为Eclair(奶油夹心面包);Android 2.2的代号为Froyo(冻酸奶),Android 2.3的代号为GingerBread(姜饼),Android 3.0的代号为Honeycomb(蜂巢)。Android 1.0、Android 1.1、Android 2.0.1、Android 2.1等没有代号。在本书的叙述中,代码和版本号有时会交替使用,并没有特殊的意义。另外,若无特殊说明,在本书中基于的Android SDK版本为GingerBread。源代码版本Android 2.1,Android 3.0为Honeycomb为平板专用的版本。在本书中不做重点讨论。