Android系统移植及编译(一)
Android源代码目录结构
作者:华嵌嵌入式培训 长沙中心讲师 周龙
早期的android源代码目录,包含内核、bootloader等,现在已经没有包含这些了,最新版本(4.4)主要包含如下目录:
bionic:
Android C 库; android没有用glibc, 而且基于BSD-derived 源代码开发出 Bionic。这个目录主要包含了C库、math、以及其他核心运行库的实现代码。
bootable:
启动及引导相关的代码; 还包含了android fastboot协议的实现。
build:
这个目录包含了android 编译系统的实现,包含了所有核心makefile模块及脚本,以及envsetup.sh(这个脚本主要用来设置android编译环境)。
dalvik:
Dalvik Virtual Machine(android 的java虚拟机)的实现。
development:
包含与开发相关的项目(如sdk、ndk)源代码。
device:
与具体产品相关的代码及配置文件等,比如特定产品的编译配置文件、硬件相碰的模块代码等等。
external:
包含外部的第三方开源项目的源代码,比如SDLite, jpeg, libogg, …
frameworks:
包含android frameworks的实现代码; 以及关键服务(比如System Server, Activity managers等)的实现,以及java 应用API与本地库之间的映射。
hardware:
硬件相关源代码,以及包含android硬件抽象层(HAL层:Hardware Abstraction Layer)协议及源码实现。
packages:
包含默认的android应用程序比如联系人、日历、浏览器等等。
prebuilts:
包含预编译的二进制程序,如arm-eabi-gcc等
system:
包含android核心系统的源码实现,以及init进程的源码实现及init.rc 脚本。实际上这个目录包含的是一个最小的linux根文件系统的实现,这个系统是在android虚拟机及基本java服务跑起来前运行。
out:
这个目录包含android编译输出结果,包括中间文件和最终映像文件。
out/host/ 包含运行在主机上面的程序及文件;
out/target/product/ 包含在最终产品上运行的程序及文件。
未完.,待续......