前言上一篇文章介绍了安卓系统源代码的下载。 本文简要介绍了源代码的结构,并结合Android系统的结构,熟悉源代码的工程设计。
源代码结构的每个版本的源代码目录结构基本相似,编译后的目录中将增加一个out文件夹,用于存储编译后的文件。 这里下载的源版本是9.0。 如果不知道下载的源版本,请在build-core-version_defaults.md中选择PLATFORM_SDK_VERSION字段、PLATFORM_SDK_VERSION
art:Android Runtime,区别于传统Dalvik虚拟机的App运行模式。 Android系统的顺畅bionic :旨在提高基础c库的源代码、Android改造的C/C库的bootable:Android程序的启动指南,以及各种BootLooid类型存储系统编译规则和基础开发包配置compatibility,如通用。 安卓兼容性计划cts :安卓兼容性测试工具包标准dal vik :安卓dal vik虚拟机相关内容developers :安卓开发人员参考ment :安卓APP开发基础设施相关设备: 联合配置外部:用于Android的外部开放源代码库frameworks:APP应用程序框架;硬件:硬件接口hardware :由Android系统的核心部分Java和c编写但是,默认情况下不提供Android,需要单独下载。 tests目录libcore:Android Java核心类库libnativehelper:Android动态库只有一个;实现JNI库的基本包: APP应用程序Kit缩写本地开发工具包platform_testing:Android平台测试程序prebuilts:x86和使用arm体系结构预编译的资源sdk:Android的Java层SDK系统APP应用程序和组件test:Android Vendor测试框架toolchain:Android工具链文件tools:Android工具文件Android.bp:Android7.0是
虽然在以前的文章中介绍了Android系统体系结构,但是Android系统体系结构的每一层都支持与Android源结构相关的目录。 下图显示了Android源代码一级目录中每个帧级别与某些目录之间的对应关系。
系统架构
对应关系
对安卓开发者来说,学习源代码有助于他们更好地理解安卓。 为此,我们通常学习框架层的代码。 其次,介绍有关APP应用层、APP应用框架层的目录结构。
APP应用层位于整个Android系统的顶层,开发人员开发的所有APP应用程序和系统中内置的APP应用程序都位于APP应用层。 其中目录结构如下
APS :核心APP应用程序inputmethods :输入法目录providers :内容提供者目录screensavers :屏幕保护程序服务:通信服务wallpapers :壁纸APP应用程序它是核心部分,为对APP应用层的调用提供接口,而为C/C库和硬件的访问提供接口,其中目录结构如下
视听:多媒体框架base:Android源代码的主要核心目录compile :编译相关ex :文件解析器hardware :硬件适配器接口layoutlib :布局机器学习multidex :多dex加载器native:native实现opt :某些软件rs:Render Script是3D接口support:framework支持文件Wilhelm:khrrk
apct-tests:performanceoptimizationtestapi :安卓APP应用程序框架层声明类, 属性和资源cmds :在Android系统启动时使用的commandscore:framework核心框架组件data:android下的资源字体、声音、视频、软盘模块行为图形)图像呈现模块keystore私钥库libs )库信息接口、存储、USB )位置信息media 例如视频)本地方法)传感器、输入、接口、表单NFC-extras:NFC、obex、蓝牙、OpenGL、2d、3D图形绘制、软件包协议框架rs、资源框架samples、实例程序sax和XML解析器服务