安卓中的源代码包括安卓系统中的应用程序的源代码,SDK带的各种工具的源代码,NDK的源代码以及HAL源代码。
安卓源代码可以全部下载,也可以下载一部分。之后要对安卓的源代码进行编译,在编译后,会在安卓源代码根目录下生成一个out目录,所有编译的目标文件都在这个目录中,在out目录中有两个直接子目录,分别是host和target。前者表示在主机(x86)生成的工具,后者表示目标机(模认为ARMv5)运行的内容。在target中,包含两个直接子目录,分别是common和product。common包含了在安卓系统上运行的程序需要的java库,存放资源ID的R.java等。product中则是针对产品的内容。
out/target/generic目录包含了最终要使用的目标文件。其中3个重要img文件分别是:system.img,ramdisk.img,userdata.img。在system.img文件中存放的是日常生活中我们所说的需要root才能删除的apk。
在linux内核安装配置的过程中,需要注意的是,要想使用linux图形界面则需要下载安装QT。
总结:安卓移植主要是linux内核的移植。而linux内核移植主要是linux驱动的移植。所以为了开发和测试linux驱动。需要在ubuntu linux下搭建两套开发环境,分别是安卓应用程序开发环境和linux内核开发环境。