您的位置:首页 > 编程语言 > Java开发

基于MTK平台的不同安卓版本软件编译的JDK版本GCC版本切换脚本

2015-01-26 09:36 555 查看
本人做MTK平台驱动工作快两年了,最近从之前的4.2和4.4要切换到L版本了,相应的编译环境需要修改。因为MTK的建议是4.4之前的版本用Oracle JDK1.6.045和GCC4.4的版本,而L要用OPEN JDK 1.7和GCC4.6,这就带来了同一机器上不能编译不同版本安卓工程的麻烦,本文的目的是通过切换环境的脚本实现同一机器可以编译不能版本安卓工程的目的。

首先安装配置好Ubuntu 12.04 x64,然后

1.Update apt information

$ sudo su -
[sudo] password for android:******
root@android-machine:~$ apt-get update


2.Install google recommended packages

$ apt-get install -y 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 \
g++-multilib mingw32 tofrodos libgl1-mesa-dev \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so


3.Install JDKandGCC

$ sudo apt-get -y install openjdk-7-jdk
$ update-java-alternatives -s java-1.7.0-openjdk-amd64


$ mkdir /opt/java
$ cd  /opt/java/
$ chmod a+x jdk-6u45-linux-x64.bin
$ ./jdk-6u45-linux-x64.bin


然后将以下代码复制到文件下运行
#!/bin/bash
sudo update-alternatives --install /usr/bin/javah javah /opt/java/jdk1.6.0_45/bin/javah 255
sudo update-alternatives --install /usr/bin/javac javac /opt/java/jdk1.6.0_45/bin/javac 255
sudo update-alternatives --install /usr/bin/java java /opt/java/jdk1.6.0_45/bin/java 255
sudo update-alternatives --install /usr/bin/jar jar /opt/java/jdk1.6.0_45/bin/jar 255
sudo update-alternatives --install /usr/bin/javap javap /opt/java/jdk1.6.0_45/bin/javap 255
sudo update-alternatives --install /usr/bin/jps jps /opt/java/jdk1.6.0_45/bin/jps 255
sudo update-alternatives --install /usr/bin/jconsole jconsole /opt/java/jdk1.6.0_45/bin/jconsole 255
sudo update-alternatives --install /usr/bin/javadoc javadoc /opt/java/jdk1.6.0_45/bin/javadoc 255
sudo update-alternatives --install /usr/bin/appletviewer appletviewer /opt/java/jdk1.6.0_45/bin/appletviewer 255
sudo update-alternatives --install /usr/bin/apt apt /opt/java/jdk1.6.0_45/bin/apt 255
sudo update-alternatives --install /usr/bin/extcheck extcheck /opt/java/jdk1.6.0_45/bin/extcheck 255
sudo update-alternatives --install /usr/bin/idlj idlj /opt/java/jdk1.6.0_45/bin/idlj 255
sudo update-alternatives --install /usr/bin/jarsigner jarsigner /opt/java/jdk1.6.0_45/bin/jarsigner 255
sudo update-alternatives --install /usr/bin/jdb jdb /opt/java/jdk1.6.0_45/bin/jdb 255
sudo update-alternatives --install /usr/bin/javaws javaws /opt/java/jdk1.6.0_45/bin/javaws 255
sudo update-alternatives --install /usr/bin/jhat jhat /opt/java/jdk1.6.0_45/bin/jhat 255
sudo update-alternatives --install /usr/bin/jinfo jinfo /opt/java/jdk1.6.0_45/bin/jinfo 255
sudo update-alternatives --install /usr/bin/jmap jmap /opt/java/jdk1.6.0_45/bin/jmap 255
sudo update-alternatives --install /usr/bin/jrunscript jrunscript /opt/java/jdk1.6.0_45/bin/jrunscript 255
sudo update-alternatives --install /usr/bin/jsadebugd jsadebugd /opt/java/jdk1.6.0_45/bin/jsadebugd 255
sudo update-alternatives --install /usr/bin/jstack jstack /opt/java/jdk1.6.0_45/bin/jstack 255
sudo update-alternatives --install /usr/bin/jstat jstat /opt/java/jdk1.6.0_45/bin/jstat 255
sudo update-alternatives --install /usr/bin/jstatd jstatd /opt/java/jdk1.6.0_45/bin/jstatd 255
sudo update-alternatives --install /usr/bin/keytool keytool /opt/java/jdk1.6.0_45/bin/keytool 255
sudo update-alternatives --install /usr/bin/native2ascii native2ascii /opt/java/jdk1.6.0_45/bin/native2ascii 255
sudo update-alternatives --install /usr/bin/orbd orbd /opt/java/jdk1.6.0_45/bin/orbd 255
sudo update-alternatives --install /usr/bin/pack200 pack200 /opt/java/jdk1.6.0_45/bin/pack200 255
sudo update-alternatives --install /usr/bin/policytool policytool /opt/java/jdk1.6.0_45/bin/policytool 255
sudo update-alternatives --install /usr/bin/rmic rmic /opt/java/jdk1.6.0_45/bin/rmic 255
sudo update-alternatives --install /usr/bin/rmid rmid /opt/java/jdk1.6.0_45/bin/rmid 255
sudo update-alternatives --install /usr/bin/rmiregistry rmiregistry /opt/java/jdk1.6.0_45/bin/rmiregistry 255
sudo update-alternatives --install /usr/bin/schemagen schemagen /opt/java/jdk1.6.0_45/bin/schemagen 255
sudo update-alternatives --install /usr/bin/serialver serialver /opt/java/jdk1.6.0_45/bin/serialver 255
sudo update-alternatives --install /usr/bin/servertool servertool /opt/java/jdk1.6.0_45/bin/servertool 255
sudo update-alternatives --install /usr/bin/tnameserv tnameserv /opt/java/jdk1.6.0_45/bin/tnameserv 255
sudo update-alternatives --install /usr/bin/unpack200 unpack200 /opt/java/jdk1.6.0_45/bin/unpack200 255
sudo update-alternatives --install /usr/bin/wsgen wsgen /opt/java/jdk1.6.0_45/bin/wsgen 255
sudo update-alternatives --install /usr/bin/wsimport wsimport /opt/java/jdk1.6.0_45/bin/wsimport 255
sudo update-alternatives --install /usr/bin/xjc xjc /opt/java/jdk1.6.0_45/bin/xjc 255
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 40
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 40
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 60


配置完后只有只需要在编译对应工程前source对应的脚本(Android 4.4之前的版本对应JDK1.6GCC4.4.sh,Android L对应JDK1.6GCC4.4.sh),底下附上脚本源码。

JDK1.6GCC4.4.sh

export JAVA_HOME=/opt/java/jdk1.6.0_45export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/libexport PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME/lib:$JAVA_HOME

echo 1 | sudo update-alternatives --config java	echo -e '\n'	echo 1 | sudo update-alternatives --config javac	echo -e '\n'	echo 1 | sudo update-alternatives --config javah	echo -e '\n'	echo 1 | sudo update-alternatives --config jar	echo -e '\n'	echo 1 | sudo update-alternatives --config javap	echo -e '\n'	echo 1 | sudo update-alternatives --config jps	echo -e '\n'	echo 1 | sudo update-alternatives --config jconsole	echo -e '\n'	echo 1 | sudo update-alternatives --config javadoc	echo -e '\n'	echo 1 | sudo update-alternatives --config appletviewer	echo -e '\n'	echo 1 | sudo update-alternatives --config apt	echo -e '\n'	echo 1 | sudo update-alternatives --config extcheck	echo -e '\n'	echo 1 | sudo update-alternatives --config idlj	echo -e '\n'	echo 1 | sudo update-alternatives --config jarsigner	echo -e '\n'	echo 1 | sudo update-alternatives --config jdb	echo -e '\n'	echo 1 | sudo update-alternatives --config javaws	echo -e '\n'	echo 1 | sudo update-alternatives --config jhat	echo -e '\n'	echo 1 | sudo update-alternatives --config jinfo	echo -e '\n'	echo 1 | sudo update-alternatives --config jmap	echo -e '\n'	echo 1 | sudo update-alternatives --config jrunscript	echo -e '\n'	echo 1 | sudo update-alternatives --config jsadebugd	echo -e '\n'	echo 1 | sudo update-alternatives --config jstack	echo -e '\n'	echo 1 | sudo update-alternatives --config jstat	echo -e '\n'	echo 1 | sudo update-alternatives --config jstatd	echo -e '\n'	echo 1 | sudo update-alternatives --config keytool	echo -e '\n'	echo 1 | sudo update-alternatives --config native2ascii	echo -e '\n'	echo 1 | sudo update-alternatives --config orbd	echo -e '\n'	echo 1 | sudo update-alternatives --config pack200	echo -e '\n'	echo 1 | sudo update-alternatives --config policytool	echo -e '\n'	echo 1 | sudo update-alternatives --config rmic	echo -e '\n'	echo 1 | sudo update-alternatives --config rmid	echo -e '\n'	echo 1 | sudo update-alternatives --config rmiregistry	echo -e '\n'	echo 1 | sudo update-alternatives --config schemagen	echo -e '\n'	echo 1 | sudo update-alternatives --config serialver	echo -e '\n'	echo 1 | sudo update-alternatives --config servertool	echo -e '\n'	echo 1 | sudo update-alternatives --config tnameserv	echo -e '\n'	echo 1 | sudo update-alternatives --config unpack200	echo -e '\n'	echo 1 | sudo update-alternatives --config wsgen	echo -e '\n'	echo 1 | sudo update-alternatives --config wsimport	echo -e '\n'	echo 1 | sudo update-alternatives --config xjc	echo -e '\n'
echo 1 | sudo update-alternatives --config gcc	echo -e '\n'	echo 1 | sudo update-alternatives --config g++	echo -e '\n'

JDK1.7GCC4.6.sh

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/libexport PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME/lib:$JAVA_HOME

echo 2 | sudo update-alternatives --config java	echo -e '\n'	echo 2 | sudo update-alternatives --config javac	echo -e '\n'	echo 2 | sudo update-alternatives --config javah	echo -e '\n'	echo 2 | sudo update-alternatives --config jar	echo -e '\n'	echo 2 | sudo update-alternatives --config javap	echo -e '\n'	echo 2 | sudo update-alternatives --config jps	echo -e '\n'	echo 2 | sudo update-alternatives --config jconsole	echo -e '\n'	echo 2 | sudo update-alternatives --config javadoc	echo -e '\n'	echo 2 | sudo update-alternatives --config appletviewer	echo -e '\n'	echo 2 | sudo update-alternatives --config apt	echo -e '\n'	echo 2 | sudo update-alternatives --config extcheck	echo -e '\n'	echo 2 | sudo update-alternatives --config idlj	echo -e '\n'	echo 2 | sudo update-alternatives --config jarsigner	echo -e '\n'	echo 2 | sudo update-alternatives --config jdb	echo -e '\n'	echo 2 | sudo update-alternatives --config javaws	echo -e '\n'	echo 2 | sudo update-alternatives --config jhat	echo -e '\n'	echo 2 | sudo update-alternatives --config jinfo	echo -e '\n'	echo 2 | sudo update-alternatives --config jmap	echo -e '\n'	echo 2 | sudo update-alternatives --config jrunscript	echo -e '\n'	echo 2 | sudo update-alternatives --config jsadebugd	echo -e '\n'	echo 2 | sudo update-alternatives --config jstack	echo -e '\n'	echo 2 | sudo update-alternatives --config jstat	echo -e '\n'	echo 2 | sudo update-alternatives --config jstatd	echo -e '\n'	echo 2 | sudo update-alternatives --config keytool	echo -e '\n'	echo 2 | sudo update-alternatives --config native2ascii	echo -e '\n'	echo 2 | sudo update-alternatives --config orbd	echo -e '\n'	echo 2 | sudo update-alternatives --config pack200	echo -e '\n'	echo 2 | sudo update-alternatives --config policytool	echo -e '\n'	echo 2 | sudo update-alternatives --config rmic	echo -e '\n'	echo 2 | sudo update-alternatives --config rmid	echo -e '\n'	echo 2 | sudo update-alternatives --config rmiregistry	echo -e '\n'	echo 2 | sudo update-alternatives --config schemagen	echo -e '\n'	echo 2 | sudo update-alternatives --config serialver	echo -e '\n'	echo 2 | sudo update-alternatives --config servertool	echo -e '\n'	echo 2 | sudo update-alternatives --config tnameserv	echo -e '\n'	echo 2 | sudo update-alternatives --config unpack200	echo -e '\n'	echo 2 | sudo update-alternatives --config wsgen	echo -e '\n'	echo 2 | sudo update-alternatives --config wsimport	echo -e '\n'	echo 2 | sudo update-alternatives --config xjc	echo -e '\n'
echo 2 | sudo update-alternatives --config gcc	echo -e '\n'	echo 2 | sudo update-alternatives --config g++	echo -e '\n'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: