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

来源:互联网 发布:张艺兴黄子韬关系知乎 编辑:程序博客网 时间:2024/05/18 13:25

本人做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/bashsudo update-alternatives --install /usr/bin/javah javah /opt/java/jdk1.6.0_45/bin/javah 255sudo update-alternatives --install /usr/bin/javac javac /opt/java/jdk1.6.0_45/bin/javac 255sudo update-alternatives --install /usr/bin/java java /opt/java/jdk1.6.0_45/bin/java 255sudo update-alternatives --install /usr/bin/jar jar /opt/java/jdk1.6.0_45/bin/jar 255sudo update-alternatives --install /usr/bin/javap javap /opt/java/jdk1.6.0_45/bin/javap 255sudo update-alternatives --install /usr/bin/jps jps /opt/java/jdk1.6.0_45/bin/jps 255sudo update-alternatives --install /usr/bin/jconsole jconsole /opt/java/jdk1.6.0_45/bin/jconsole 255sudo update-alternatives --install /usr/bin/javadoc javadoc /opt/java/jdk1.6.0_45/bin/javadoc 255sudo update-alternatives --install /usr/bin/appletviewer appletviewer /opt/java/jdk1.6.0_45/bin/appletviewer 255sudo update-alternatives --install /usr/bin/apt apt /opt/java/jdk1.6.0_45/bin/apt 255sudo update-alternatives --install /usr/bin/extcheck extcheck /opt/java/jdk1.6.0_45/bin/extcheck 255sudo update-alternatives --install /usr/bin/idlj idlj /opt/java/jdk1.6.0_45/bin/idlj 255sudo update-alternatives --install /usr/bin/jarsigner jarsigner /opt/java/jdk1.6.0_45/bin/jarsigner 255sudo update-alternatives --install /usr/bin/jdb jdb /opt/java/jdk1.6.0_45/bin/jdb 255sudo update-alternatives --install /usr/bin/javaws javaws /opt/java/jdk1.6.0_45/bin/javaws 255sudo update-alternatives --install /usr/bin/jhat jhat /opt/java/jdk1.6.0_45/bin/jhat 255sudo update-alternatives --install /usr/bin/jinfo jinfo /opt/java/jdk1.6.0_45/bin/jinfo 255sudo update-alternatives --install /usr/bin/jmap jmap /opt/java/jdk1.6.0_45/bin/jmap 255sudo update-alternatives --install /usr/bin/jrunscript jrunscript /opt/java/jdk1.6.0_45/bin/jrunscript 255sudo update-alternatives --install /usr/bin/jsadebugd jsadebugd /opt/java/jdk1.6.0_45/bin/jsadebugd 255sudo update-alternatives --install /usr/bin/jstack jstack /opt/java/jdk1.6.0_45/bin/jstack 255sudo update-alternatives --install /usr/bin/jstat jstat /opt/java/jdk1.6.0_45/bin/jstat 255sudo update-alternatives --install /usr/bin/jstatd jstatd /opt/java/jdk1.6.0_45/bin/jstatd 255sudo update-alternatives --install /usr/bin/keytool keytool /opt/java/jdk1.6.0_45/bin/keytool 255sudo update-alternatives --install /usr/bin/native2ascii native2ascii /opt/java/jdk1.6.0_45/bin/native2ascii 255sudo update-alternatives --install /usr/bin/orbd orbd /opt/java/jdk1.6.0_45/bin/orbd 255sudo update-alternatives --install /usr/bin/pack200 pack200 /opt/java/jdk1.6.0_45/bin/pack200 255sudo update-alternatives --install /usr/bin/policytool policytool /opt/java/jdk1.6.0_45/bin/policytool 255sudo update-alternatives --install /usr/bin/rmic rmic /opt/java/jdk1.6.0_45/bin/rmic 255sudo update-alternatives --install /usr/bin/rmid rmid /opt/java/jdk1.6.0_45/bin/rmid 255sudo update-alternatives --install /usr/bin/rmiregistry rmiregistry /opt/java/jdk1.6.0_45/bin/rmiregistry 255sudo update-alternatives --install /usr/bin/schemagen schemagen /opt/java/jdk1.6.0_45/bin/schemagen 255sudo update-alternatives --install /usr/bin/serialver serialver /opt/java/jdk1.6.0_45/bin/serialver 255sudo update-alternatives --install /usr/bin/servertool servertool /opt/java/jdk1.6.0_45/bin/servertool 255sudo update-alternatives --install /usr/bin/tnameserv tnameserv /opt/java/jdk1.6.0_45/bin/tnameserv 255sudo update-alternatives --install /usr/bin/unpack200 unpack200 /opt/java/jdk1.6.0_45/bin/unpack200 255sudo update-alternatives --install /usr/bin/wsgen wsgen /opt/java/jdk1.6.0_45/bin/wsgen 255sudo update-alternatives --install /usr/bin/wsimport wsimport /opt/java/jdk1.6.0_45/bin/wsimport 255sudo update-alternatives --install /usr/bin/xjc xjc /opt/java/jdk1.6.0_45/bin/xjc 255sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 40sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 40sudo 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_45
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export 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-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export 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'


0 0
原创粉丝点击