本书基于Android 6.0源代码和实际案例,分析Android系统的框架原理和具体实现。由于Android框架里模块众多,本书只详细分析了框架里的一部分模块,涉及这些模块的原理、架构及代码实现等各个细节,尽量做到让读者知其然,又知其所以然。在Android官方网站,Android分了4层,从高到低分别是应用程序层、应用程序框架层、系统库层和Linux内核层。本书主要涉及应用程序层、应用程序框架层和系统库层。
基于Android源代码和实际开发案例,让读者全面、深入、细致地掌握Android。
说 明
1.本书涉及C、C++和Java语言,阅读本书最好会这三种编程语言,同时本书还会涉及少量Linux,如果懂Linux更佳。
2.本书使用两种格式来对代码进行解释。
第一种,举例如下。
class Condition {
public:
enum {
PRIVATE = 0,
SHARED = 1
};
//定义两种枚举类型:PRIVATE表示本进程内部使用,SHARED表示用于跨进程共
//享,如果使用Condition时没有指定具体类型,则默认是PRIVATE类型。
……
}
这种方式是在代码段内部解释代码,原因是有些类和方法比较复杂,代码非常长,贴完代码之后,可能已经几页纸了,如果这时候在代码段的最后面去解释代码,读者还需要往前翻看需要解释的代码,十分不便。
第二种,举例如下。
public final boolean sendMessage(Message msg)
{
return sendMessageDelayed(msg, 0);
}
代码解释:这里的sendMessage() 方法会调用sendMessageDelayed() 方法,参数msg是具体的Message,而参数0表示这个消息不要延时处理。
由于这种方式的代码量比较少,可以边看代码边看解释,不用翻页,所以采用这种方式比较方便。
3.本书是基于Android源代码和实际开发案例分析的,所以阅读本书一定要结合源代码。
4.大家都知道代码块在Java里叫方法,在C里叫函数,笔者尽量在C、C++中使用“函数”这个叫法,在Java中使用“方法”这个叫法,但也有可能出现混淆。
5.本书使用了Visio、Edraw和StarUML这3个工具来画图,由于排版的问题,图也许会有不清楚的地方,如果发现这类问题,请发邮件至813126419@qq.com,我会尽快回复。
6.本书是我个人对Android的理解,难免会有错误,恳请大家指正。
除开代码三行,文字段落的第5行,的是“队列”,书上写成“队例”了。