使用repo下载官方http://android.git.kernel.org/中的Android代码
mkdir mydroid
cd mydroid
sudo apt-get install git-core curl
curl http://android.git.kernel.org/repo > ./repo
chmod a+x ./repo
取得整个版本库的代码
./repo init –u git://android.git.kernel.org/platform/manifest.git
或者只取一个分支
./repo init –u git://android.git.kernel.org/platform/manifest.git -b gingerbread
同步分支
./repo sync
安装编译工具
sudo apt-get install build-essential
安装一些库以便可以编译android的源代码
(一些错误可以参考http://0123.blog.163.com/blog/static/47883120101024104416786/)
(http://dev.10086.cn/cmdn/wiki/index.php?doc-view-4390.html)
当然之前需要安装下jdk,可以安装ubuntu中的openjdk-6-jdk,如果安装了多个JDK,
可以通过update-alternatives --config java来选择使用哪一个
- sudo apt-get install bison
- sudo apt-get install libc6-dev-i386
- sudo apt-get install zlib1g-dev
- sudo apt-get install g++-multilib
- sudo apt-get install lib32z1-dev
- sudo apt-get install flex
- sudo apt-get install lib32ncurses5-dev
- sudo apt-get install gperf
- sudo apt-get install libx11-dev
- source build/envsetup.sh
- lunch
- make -j4
编译需要一段时间,编译完成后运行模拟器
生成的镜像在out/target/product/generic下,emulator在out/host/linux-x86/bin下,
默认的界面是HVGA可以使用-skin来切换SKIN,比如WVGA800
可以在android目录下面建立一个执行脚本来启动模拟器
- #!/bin/sh
- BASEDIR=~/Projects/mydroid
- export ANDROID_BIN=$BASEDIR/out/host/linux-x86/bin
- export ANDROID_PRODUCT_OUT=$BASEDIR/out/target/product/generic
- export ANDROID_SWT=$BASEDIR/out/host/linux-x86/framework
- export PATH=$PATH:$ANDROID_BIN
- $ANDROID_BIN/emulator -system $ANDROID_PRODUCT_OUT/system.img -data $ANDROID_PRODUCT_OUT/userdata.img -ramdisk $ANDROID_PRODUCT_OUT/ramdisk.img &
以后需要同步分支的话,只需要执行
./repo sync
编译某个单独的模块可以先进入那个模块的目录然后使用mm进行编译
cd packages/apps/Launcher2
mm
参考文章:
0.官方下载说明
Get Android Source Code
http://source.android.com/source/download.html
1.android2.3源码下载编译全过程(附图及文档)修改版
http://tanghaibo001.blog.163.com/blog/static/906861202011233373279/
2.编译Android时候的错误
http://0123.blog.163.com/blog/static/47883120101024104416786/
3.Android编译中m、mm、mmm的区别
http://zwkufo.blog.163.com/blog/static/2588251201011301104766/
4.在Ubuntu下编译Android源码并运行Emulator