前言
虽说几年前博主在一家公司做机顶盒的时候总是需要编译Android源码,但是那时还没有手中的爱机:Nexus 6,又名shamu。今天我要为它刷入一个自己编译的Rom。拿起键盘就是干。
笔者注:AOSP:Android Open Source Project,安卓开源项目
准备
- Ubuntu 14.04+
- OpenJDK/JDK
- Nexus/Pixel手机一部
假设你已经有了一个较新的Ubuntu系统和一部谷歌亲儿子手机,下文将从安装jdk开始。
本文作者MichaelX,博客地址:http://blog.csdn.net/xiong_it ,转载请注明出处。
AOSP编译环境搭建
安装OpenJDK
警告:不要使用oracle jdk来编译较新(API 21+/Android 5.0及以上)的AOSP,会在准备编译工作make clobber时出现错误提示.
Checking build tools versions...
*************************************************************
You asked for an OpenJDK based build but your version is java version "1.8.0_121" Java(TM) SE Runtime Environment(build 1.8.0_121-b13)Java HotSpot (TM)64 bit Server VM(build 25.121-b13), mixed mode).
*************************************************************
build/core/main.mk:230: *** stop.
关于JDK版本的选择:根据你想编译的Android版本来决定
- AOSP最新源码: OpenJDK 8
- Android 5.x (Lollipop) - Android 6.0 (Marshmallow):OpenJDK 7
- Android 2.3.x (Gingerbread) - Android 4.4.x(KitKat):Java JDK 6
- Android 1.5 (Cupcake) - Android 2.2.x (Froyo): Java JDK 5
博主想要编译的是Android 7.0,所以需要使用是OpenJDK 8。
博主是用的Ubuntu 14.04 LTS,可采取安装deb包或者添加ppa两种方式安装OpenOJDK 8:
1. OpenJDK deb包下载:OpenJDK 8 on github
2. 添加ppa方式安装OpenJDK
$ sudo add-apt-repository ppa:openjdk-r/ppa
$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac
假如你Ubuntu是15.04或者更新的系统,可直接运行下列命令进行OpenJDK 8安装
$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk
Linux使用下列命令查看机器中所有jdk版本
$ michaelx@michaelx-ThinkPad:~/AOSP_NBD91Z$ update-java-alternatives -l
// 打印出下面已安装的jdk版本
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64
Linux设置默认JDK命令
// 设置默认为openjdk8,此处必须选用OpenJDK8
$ sudo update-java-alternatives -s java-1.8.0-openjdk-amd64
// 设置默认为oracle jdk8
$ sudo update-java-alternatives -s java-8-oracle
// 设置默认为oracle jdk7
$ sudo update-java-alternatives -s java-7-oracle
Ubuntu 14.04设置默认OpenJDK 8时出现一处警告提示:
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
该提示无需理会,可直接忽略。
查看Java版本,出现以下提示,说明jdk环境已经ok。
$ java -version
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-