Android开发精要
上QQ阅读APP看书,第一时间看更新

2.2.1 框架层源代码目录frameworks

在frameworks目录下,集中放置了Android框架层Android从上至下,可以分成应用层、框架层、核心类库和运行时、操作系统和硬件抽象层等,详情参见第1章的介绍。的代码。其中大部分功能模块是通过Java语言进行编写的,而对执行效率有很高要求的模块则是通过C/C++来实现的。对于Android应用开发者而言,这可能是你最需要阅读和学习的部分。它包含了SDK中的各个功能模块以及Android中各部分核心机理的实现,也是本书主要介绍的内容。

frameworks有三个重要的子目录,分别是base、opt、polices。

图2-1 Android源代码目录结构图

  • 在base目录中,放置了框架层的基本内容,包含用到的Java文件、相关资源文件和jni类库的实现。 其中最为核心的是base中的core目录,在其中放置了大部分的框架层实现。
  • opt目录为option(可选)的意思,放置了框架层一些附加功能的模块。从概念上来看,Google为Android提供的一些功能模块,比如Google地图模块、Google定位服务模块,都位于该目录下。只不过,其中大部分模块的实现,都没有开源。
  • 在polices目录中放置的是和具体设备类别相关的实现。Android希望能够在不同的设备上运行,由于设备使用特征的差异(并不是硬件特征),会需要一些不同的实现。比如在手机上,Android呈现出来的窗口结构,是最顶上的状态栏和紧接它的标题栏,以及主要视图区域和弹出菜单项部分。但如果在移动互联网设备(Mobile Internet Device,MID)上运行Android,由于可视区域更大,如果再采取和手机上一致的窗口策略,就类似于“大脚穿小鞋”了。因此,不同特征设备有着不同的策略,这些实现会依照其设备名称,分子目录放在polices目录中。