系统环境:Ubuntu 12.04
1. 下载android_4.0.4
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ./repo
repo init -u https://android.googlesource.com/platform/manifest-b android-4.0.4_r2
repo sync
注意repo init的时候最好新建一个目录, 在新建的目录里进行操作.
2. 安装jdk1.6.0_35
在~/.bashrc中配置环境变量
export JAVA_HOME=JDK_PATH(根据jdk所在的实际路径写)
export PATH=$JAVA_HOME/jre/bin:$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
如果dt.jar tools.jar没有可执行权限要加上
sudo chmod 755 dt.jar tools.jar
3. 安装编译代码时需要的各种软件包
sudo apt-get update更新源
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install gcc-4.4 g++-4.4 g++-4.4-multilib
注意同时把/usr/bin/gcc-4.4 /usr/bin/g++-4.4重命名为/usr/bin/gcc/usr/bin/g++
并且让cc链接到gcc .sudo ln /usr/bin/cc /usr/bin/gcc
sudo apt-get install zlib1g-dev
sudo apt-get install libncurses5-dev
sudo apt-get install libX11-dev
sudo apt-get install libgl1-mesa-dev
sudo apt-get install gperf
4. 修改部分代码
1. build/core/combo/HOST_linux-x86.mk
HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0 改为
HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
2. build/tools/releasetools/common.py
cmd = ["java", "-Xmx2048m", "-jar" 改为
cmd = ["java", "-Xmx512m", "-jar"
原因是我的是PC内存只有2G, 制作差分包时会报错, 如果你机器的内存大于2G
或者不做差分包可以忽略此修改.
3. external/gtest/include/gtest/internal/gtest-param-util.h
加入#include <cstddef>
4. external/llvm/llvm-host-build.mk
在第26行加入LOCAL_LDLIBS := -lpthread -ldl
5. external/mesa3d/src/glsl/linker.cpp
加入#include <stddef.h>
6. external/oprofile/libpp/format_output.h
mutable counts_t & counts; 改为
counts_t & counts;
7. frameworks/compile/slang/slang_rs_export_foreach.cpp
注释掉llvm::StringRef ParamName = PVD->getName();
5. 在源码树的根目录下执行
. build/envsetup.sh
lunch product_name(根据实际情况来)
make -j4
6. 如果出现了不明原因的错误, 那么make clean后重新编译.