[原创] Android系统移植及编译(一)

武汉linux   2014-8-23 15:38 楼主

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/ 包含在最终产品上运行的程序及文件。


未完.,待续......



回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复