Android 的核心系统服务基于Linux 内核,在此基础上添加了部分Android专用的驱动。系统的安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核。Linux内核也是作为硬件与软件栈的抽象层。
Android系统源码
对国内的开发者来说最痛苦的是无法去访问android开发网站。为了更好的认识世界,对程序员来说,会翻墙也是的一门技术,带你去领略墙外的世界, 国内开发者访问(androiddevtools) 上面已经有了所有你要的资源,同时可以下载到我们的主角framework。
如果你只是想查看源码,androidxref也是一个不错的资源。
整体结构
Android7.0的根目录结构说明如下表所示:
|– Makefile (全局Makefile文件,用来定义编译规则)
|– abi (应用程序二进制接口)
|– art (ART运行环境)
|– bionic (bionic C库)
|– bootable (启动引导相关代码)
|– build (存放系统编译规则及generic等基础开发包配置)
|– cts (Android兼容性测试套件标准)
|– dalvik (dalvik JAVA虚拟机)
|– developers (开发者目录)
|– development (应用程序开发相关)
|– device (设备相关配置)
|– docs (参考文档目录)
|– external (android使用的一些开源的模组)
|– frameworks (核心框架——java及C++语言)
|– hardware (部分厂家开源的硬解适配层HAL代码)
|– kernel
|– libcore (核心库相关文件)
|– libnativehelper (动态库,实现JNI库的基础)
|– ndk (NDK相关代码,帮助开发人员在应用程序中嵌入C/C++代码)
|– out (编译完成后的代码输