清华地址:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
- 下载repo:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
- 创建保存源码的路径
mkdir android_7.1.1_r27
cd android_7.1.1_r27
mkdir /media/sf_gongxiang/android_7.1.1_r27
cd /media/sf_gongxiang/android_7.1.1_r27
- 初始化仓库:
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-7.0.0_r29
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-7.1.1_r27
repo init -u https://android.googlesource.com/platform/manifest -b android-7.1.1_r27
- 最后同步源码树:
repo sync
- 当提示:fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
只需要将 .repo/manifest.xml 把其中的 aosp 这个 remote 的 fetch 从 https://gerrit.googlesource.com/git-repo
改为 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/。
Please make sure git is installed and in your path.
sudo apt-get install git
- 设置用户名和密码
运行
git config --global user.email "1782980833.com"
git config --global user.name "zhaolixiang"
- 进入自己主目录,按ctrl+h.就能看见以点号开头的隐藏文件
- 设置共享文件:ubuntu输入:
mkdir gongxiang
mount -t vboxsf gongxiang gongxiang
- 从build/core/main.mk搜索jdk观察,需要的jdk版本,
例如:
# For Java 1.7/1.8, we require OpenJDK on linux and Oracle JDK on Mac OS.
下载jdk:http://ubuntuhandbook.org/index.php/2015/01/install-openjdk-8-ubuntu-14-04-12-04-lts/
安装jdk
配置jdk:
export JAVA_HOME=/home/zhaolixiang/java/jdk1.8.0_151
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/bin/tools.jar:$JRE_HOME/bin
export ANDROID_JAVA_HOME=$JAVA_HOME
- 编译源码
make
make后面的参数跟电脑的cpu有关我的使用的是-j8,也可以-j2,-j4等,2的倍数。
- 配置模拟器环境
export PATH=$PATH:~/android_7.1.1_r27/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=~/android_7.1.1_r27/out/target/product/generic
- 运行模拟器。
emulator
完成
编译问题1:
FAILED: /bin/bash -c "prebuilts/misc/linux-x86/flex/flex-2.5.39 -oout/host/linux-x86/obj/STATIC_LIBRARIES/libaidl-common_intermediates/aidl_language_l.cpp system/tools/aidl/aidl_language_l.ll"
flex-2.5.39:严重内部错误,exec of /usr/bin/m4 failed
ninja: build stopped: subcommand failed.
build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1
解决方法:
sudo apt-get install m4
sudo apt-get install libxml2-utils
编译问题2:
/bin/bash: prebuilts/misc/linux-x86/bison/bison: No such file or directory
当出现该问题时,通过阅读,并不是没有bison这个运行库,而是没有找到该库;
解决方法:
sudo apt-get install g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev
解决方法2:
编译Android-5.1.1时出现bison找不到,但ls可以看的到。解决办法:
ubuntu 64位系统运行32位程序的问题,需要安装运行32位程序的兼容库
sudo apt-get install lib32ncurses5
sudo apt-get install lib32stdc++6
编译问题3:emulator:未找到命令
原因:说下的原因,我的原因是之前编译过一次,然后过了几天我想运行下,输入emulator 提示emulator:未找到命令。
解决办法也很简单,就是把之前的编译执行的脚步再执行一遍:
$ source build/envsetup.sh
$ lunch 选择1
$ emulator