关于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,出现如下信息的时候就表示安装成功了!


 

android jni 增 编译 android编译环境搭建_编译环境



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



     这样,我们整个编译还击算是搭建完成了,注意,我这里仅仅是说编译环境而已,因为每个人安装的系统多多少少都会有些细小的差异,所以具体还是要看编译的时候会不会报错,报错的时候再另行解决即可!