关于android编译环境的配置,这里要特别强调下,大家最好引起足够的重视,因为我们在编译android源码的过程中要是出了问题,大部分时编译环境引起的,对的,你没看错,真是的大部分!所以接下来分享下我配置环境的一个过程!
一、openjdk安装
对于jdk大家应该不陌生,但是openjdk的话有些朋友可能没用过,这个东西的出现是由于甲骨文跟谷歌的一场官司,至于详情大家可以去百度下,还是蛮有意思的!所以在编译android5.0之后的本版我们就需要用openjdk7了,而到了7.0之后,那就需要openjdk8了,这里我是一次性装了7跟8两个版本的!
1、首先我们安装openjdk-7-jdk
sudo apt-get install openjdk-7-jdk
安装完成之后使用java -version,出现如下信息的时候就表示安装成功了!
2、接着安装openjdk-8-jdk
这里有些时候会出现找不到软件包的情况,如下:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package openjdk-8-jdk
这个时候别慌,添加下源,然后更新下即可,命令如下:
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk
二、配置默认openjdk环境
1、不知道大家注意到了没有,我们按照上述步骤安装完openjdk之后,使用java -version命令时显示的信息是:
server@server:~$ java -version
java version "1.7.0_151"
OpenJDK Runtime Environment (IcedTea 2.6.11) (7u151-2.6.11-2ubuntu0.14.04.1)
OpenJDK 64-Bit Server VM (build 24.151-b01, mixed mode)
也就是说我们当前使用的jdk环境时openjdk-7-jdk的,那为什么时7而不是8呢?接下来我们介绍几个命令!
2、update-java-alternatives -l命令
执行这个命令的时候我们会看到如下信息:
server@server:~$ update-java-alternatives -l
ava-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64
这里显示出来的信息就是当前系统中安装的openjdk列表、我们要注意的时1071跟1069那两个值,这两个值是openjdk环境的优先级,也就是说当我们没有人为的去干预的时候,我们的系统时安装这个值去选择使用的!那么接下来我们去人为的关于下,将我们当前的openjdk环境切换到openjdk-8-jdk
3、sudo update-alternatives --config java 命令
执行该命令后我们会看到如下信息:
server@server:~$ sudo update-alternatives --config java
sudo] password for server:
有 2 个候选项可用于替换 java (提供 /usr/bin/java)。
选择 路径 优先级 状态
------------------------------------------------------------
0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 自动模式
* 1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 手动模式
2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1069 手动模式
要维持当前值[*]请按回车键,或者键入选择的编号:
此时我们选择2然后回车:
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java to provide /usr/bin/java (java) in 手动模式
使用java -version命令查看当前openjdk环境:
server@server:~$ java -version
openjdk version "1.8.0_162"
OpenJDK Runtime Environment (build 1.8.0_162-8u162-b12-1~14.04-b12)
OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode)
这样我们就对jdk的环境完成了切换,那么当我们编译不同版本的source的时候我们就可以轻松的通过这种方式切换到不同的jdk版本了!
三、配置一些其它的依赖库
由于每个人使用的Ubuntu版本不同,所以所需要安装的一些东西也是不同的,下面给出12.04跟14.04两个版本的吧
Installing required packages (Ubuntu 12.04)
$ sudo apt-get install git gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Installing required packages (Ubuntu 14.04)
$ sudo apt-get install bison g++-multilib git gperf libxml2-utils lib32z-dev
这样,我们整个编译还击算是搭建完成了,注意,我这里仅仅是说编译环境而已,因为每个人安装的系统多多少少都会有些细小的差异,所以具体还是要看编译的时候会不会报错,报错的时候再另行解决即可!