http://android.git.kernel.org/
Git:分布式的版本管理系统。
Windows上的Git程序 http://code.google.com/p/msysgit/downloads/list
克隆一个单独的子项目:
git clone git://android.git.kernel.org/ + project path.
克隆整个项目,需要下载一个python脚本repo,然后运行:
curl http://android.git.kernel.org/repo > ./repo
chmod a+x repo
mkdir myandroid
cd myandroid
repo init -ugit://android.git.kernel.org/platform/manifest.git
repo sync
今后需要更新就直接 repo sync就可以了。
截止目前,有将186个子项目,大小为9.6G
简述比较重要的子项目:
build system编译和配置所需要的脚本和工具。
platform/bootable/bootloader/legacy.git
bootloader 参考代码
内核源代码
Android的模拟器是基于QEMU开发的,QEMU是一个有名的开源虚拟机项目(详见http://bellard.org/qemu/),它可以提供一个虚拟的ARM移动设备。Android模拟器被命名为goldfish。
out目录是build输出目录,
由out/target和out/host组成。
Android源代码并成功编译后,
在out/target/product/generic目录下,可以获得三个镜像文件:
在out/host/linux-x86/bin目录找到emulator工具。
Android并没有采用glibc作为C库,而是采用了Google自己开发的Bionic Libc。它的官方Toolchain也是基于Bionic Libc而并非glibc的。这使得使用或移植其他Toolchain来用于Android要比较麻烦。其只使用于内核移植,因为内核不需要C库。
交叉编译工具链。
Notes:
与glibc相比,Bionic Libc有如下一些特点:
Android中所用的其他一些二进制工具也比较特殊:
Dalvik 虚拟机源代码。
platform/ndk.git NDK
platform/sdk.git SDK
手机上自带的应用程序的源码
Android 用一个custom build system去产生二进制、文档和工具。其基于GNU Make.
编译之前最好用make–v 和 gcc –v 查看其版本。 要求make 的版本大于3.80。
如果运行下面过程中,提示某个 tools没装,就需要安装,比如bison jre jdk
如在ubuntu里 #sudo aptitude install bison
JDK 最好手动安装。去oracle下二进制包,不要用gcj或者openjdk.
第一件事恐怕就是先执行. build/envsetup.sh,完成一些命令的初始化,这样就会多出一系列的命令。 这些命令-也就是envsetup.sh中的函数
% cd $TOP
% . build/envsetup.sh 特别注意格式,是一个点后紧接空格。点命令就是source 命令
# pick a configuration using choosecombo
% choosecombo #会让你作一些选择
% make -j4 PRODUCT-generic-user
如果需要编译一个debug版本
% make -j4 PRODUCT-generic-eng
“m clean”来清除你刚编译产生的目标文件。
也可以通过”m clobber”来删除所有目标编译的输出文件,也就相当于将整个/out目录删除。