(一)ubuntu上下载Android 源码
1.下载virtualbox 官网下载地址
2.下载ubuntu 官网desktop下载地址
3.使用virtual安装ubuntu镜像
1.安装过程请先断开网络,避免下载语言包
2.请划出100G的磁盘空间,源码很大的
3.请划出2-3G的内存,虚拟机不会太卡
4.新装完的分辨率可能为不正常的640x480,请输入以下命令
sudo apt-get install virtualbox-guest-dkms
5.若提示没有以上软件包,请点击系统设置-->软件与更新-->其他软件-->勾选Canonical合作伙伴(两个选项都勾)然后输入以下命令
sudo apt-get update
sudo apt-get install virtualbox-guest-dkms
6.重启ubuntu分辨率正常
7.下载sun-java6 具体参考本链接进行下载
8.安装git
sudo apt-get install git-core gnupg
9.安装其他依赖包
sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.8-dev build-essential zip curl
10.安装调试工具
sudo apt-get install valgrind
11.配置google hosts,获取google hosts,使用以下命令修改hosts
sudo gedit /etc/hosts (将hosts复制粘贴上去)
sudo /etc/init.d/networking restart
12.按以下链接进行下载官方源码下载指引
(二)编译源码
1.若想查看可切换分支通过以下命令
cd .repo/manifests
git branch -a | cut -d / -f 3
2.切换到可用的分支,可通过以下命令
repo init -b android版本号
repo sync
3.使用make进行编译
4.若JDK为OpenJDK,或者出现版本不对请参考此链接ubuntu配置jdk
5.若一直出现prebuilt.mk *** recipe commence before first targe,那是因为使用了错误GNU make版本,
make -version //查看当前make版本,若不为3.81-3.82则得重新配置
通过GNU各版本下载 获取所需版本make,按照INSTALL文件指示,完成安装
6.若出现make: *** [out/host/common/obj/JAVA_LIBRARIES/apicheck_intermediates/javalib.jar] Error 127
则表示make过程找不到jar,其所需地址为/usr/bin/jar
通过软链接来使用忆有的jar(jar可以在jdk目录下bin文件中找到)
sudo ln -s -f /usr/lib/jvm/jdk1.6.0_45/bin/jar(按自身情况更改后边的目录)
出现make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libclearsilver-jni_intermediates/org_clearsilver_HDF.h] 错误 127(少配了javah)
make: *** [out/target/common/docs/doc-comment-check-timestamp] 错误 45(少配了javadoc)
其他java问题若出现都可以上方法解决(java ,javac, javah, javadoc)
7若出现make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] 错误 1
sudo apt-get install libc6-dev-i386
(出现依赖错误,可切换到main server再apt-get update后重新apt-get install)
8若出现make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/pseudolocalize.o] 错误 1
些为gcc版本过高,要降级,参考安装gcc&g++-4.4
9 make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] 错误 1
sudo apt-get install lib32z1-dev
10make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1
sudo apt-get install lib32ncurses5-dev
11make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libdvm_intermediates/native/dalvik_system_Zygote.o] Error 1
添加#include <sys/resource.h> 到 dalvik/vm/native/dalvik_system_Zygote.cpp
12 make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libext4_utils_intermediates/output_file.o] 错误 1