基于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
JDK1.7GCC4.6.shexport 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_HOMEecho 1 | sudo update-alternatives --config javaecho -e '\n'echo 1 | sudo update-alternatives --config javacecho -e '\n'echo 1 | sudo update-alternatives --config javahecho -e '\n'echo 1 | sudo update-alternatives --config jarecho -e '\n'echo 1 | sudo update-alternatives --config javapecho -e '\n'echo 1 | sudo update-alternatives --config jpsecho -e '\n'echo 1 | sudo update-alternatives --config jconsoleecho -e '\n'echo 1 | sudo update-alternatives --config javadocecho -e '\n'echo 1 | sudo update-alternatives --config appletviewerecho -e '\n'echo 1 | sudo update-alternatives --config aptecho -e '\n'echo 1 | sudo update-alternatives --config extcheckecho -e '\n'echo 1 | sudo update-alternatives --config idljecho -e '\n'echo 1 | sudo update-alternatives --config jarsignerecho -e '\n'echo 1 | sudo update-alternatives --config jdbecho -e '\n'echo 1 | sudo update-alternatives --config javawsecho -e '\n'echo 1 | sudo update-alternatives --config jhatecho -e '\n'echo 1 | sudo update-alternatives --config jinfoecho -e '\n'echo 1 | sudo update-alternatives --config jmapecho -e '\n'echo 1 | sudo update-alternatives --config jrunscriptecho -e '\n'echo 1 | sudo update-alternatives --config jsadebugdecho -e '\n'echo 1 | sudo update-alternatives --config jstackecho -e '\n'echo 1 | sudo update-alternatives --config jstatecho -e '\n'echo 1 | sudo update-alternatives --config jstatdecho -e '\n'echo 1 | sudo update-alternatives --config keytoolecho -e '\n'echo 1 | sudo update-alternatives --config native2asciiecho -e '\n'echo 1 | sudo update-alternatives --config orbdecho -e '\n'echo 1 | sudo update-alternatives --config pack200echo -e '\n'echo 1 | sudo update-alternatives --config policytoolecho -e '\n'echo 1 | sudo update-alternatives --config rmicecho -e '\n'echo 1 | sudo update-alternatives --config rmidecho -e '\n'echo 1 | sudo update-alternatives --config rmiregistryecho -e '\n'echo 1 | sudo update-alternatives --config schemagenecho -e '\n'echo 1 | sudo update-alternatives --config serialverecho -e '\n'echo 1 | sudo update-alternatives --config servertoolecho -e '\n'echo 1 | sudo update-alternatives --config tnameservecho -e '\n'echo 1 | sudo update-alternatives --config unpack200echo -e '\n'echo 1 | sudo update-alternatives --config wsgenecho -e '\n'echo 1 | sudo update-alternatives --config wsimportecho -e '\n'echo 1 | sudo update-alternatives --config xjcecho -e '\n'echo 1 | sudo update-alternatives --config gccecho -e '\n'echo 1 | sudo update-alternatives --config g++echo -e '\n'
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_HOMEecho 2 | sudo update-alternatives --config javaecho -e '\n'echo 2 | sudo update-alternatives --config javacecho -e '\n'echo 2 | sudo update-alternatives --config javahecho -e '\n'echo 2 | sudo update-alternatives --config jarecho -e '\n'echo 2 | sudo update-alternatives --config javapecho -e '\n'echo 2 | sudo update-alternatives --config jpsecho -e '\n'echo 2 | sudo update-alternatives --config jconsoleecho -e '\n'echo 2 | sudo update-alternatives --config javadocecho -e '\n'echo 2 | sudo update-alternatives --config appletviewerecho -e '\n'echo 2 | sudo update-alternatives --config aptecho -e '\n'echo 2 | sudo update-alternatives --config extcheckecho -e '\n'echo 2 | sudo update-alternatives --config idljecho -e '\n'echo 2 | sudo update-alternatives --config jarsignerecho -e '\n'echo 2 | sudo update-alternatives --config jdbecho -e '\n'echo 2 | sudo update-alternatives --config javawsecho -e '\n'echo 2 | sudo update-alternatives --config jhatecho -e '\n'echo 2 | sudo update-alternatives --config jinfoecho -e '\n'echo 2 | sudo update-alternatives --config jmapecho -e '\n'echo 2 | sudo update-alternatives --config jrunscriptecho -e '\n'echo 2 | sudo update-alternatives --config jsadebugdecho -e '\n'echo 2 | sudo update-alternatives --config jstackecho -e '\n'echo 2 | sudo update-alternatives --config jstatecho -e '\n'echo 2 | sudo update-alternatives --config jstatdecho -e '\n'echo 2 | sudo update-alternatives --config keytoolecho -e '\n'echo 2 | sudo update-alternatives --config native2asciiecho -e '\n'echo 2 | sudo update-alternatives --config orbdecho -e '\n'echo 2 | sudo update-alternatives --config pack200echo -e '\n'echo 2 | sudo update-alternatives --config policytoolecho -e '\n'echo 2 | sudo update-alternatives --config rmicecho -e '\n'echo 2 | sudo update-alternatives --config rmidecho -e '\n'echo 2 | sudo update-alternatives --config rmiregistryecho -e '\n'echo 2 | sudo update-alternatives --config schemagenecho -e '\n'echo 2 | sudo update-alternatives --config serialverecho -e '\n'echo 2 | sudo update-alternatives --config servertoolecho -e '\n'echo 2 | sudo update-alternatives --config tnameservecho -e '\n'echo 2 | sudo update-alternatives --config unpack200echo -e '\n'echo 2 | sudo update-alternatives --config wsgenecho -e '\n'echo 2 | sudo update-alternatives --config wsimportecho -e '\n'echo 2 | sudo update-alternatives --config xjcecho -e '\n'echo 2 | sudo update-alternatives --config gccecho -e '\n'echo 2 | sudo update-alternatives --config g++echo -e '\n'
0 0
- 基于MTK平台的不同安卓版本软件编译的JDK版本GCC版本切换脚本
- 编译不同版本Android源码,切换gcc和jdk
- Linux下切换不同版本的JDK
- eclipse中切换不同版本的jdk
- 不同版本gcc切换
- GCC不同版本的编译方法
- gcc版本不同导致的编译错误?
- arm-linux-gcc不同版本交叉编译器的切换使用
- linux不同gcc/G++版本之间的切换
- JDK版本的选择切换
- Mac jdk 版本的切换
- jdk 不同版本的同步
- JDK和JRE不同版本切换的问题
- mac机下切换不同版本的jdk
- java两种以上不同版本的jdk切换
- 支持不同的平台版本
- 安卓训练-开始-支持不同的设备-支持不同的平台版本
- 基于maven2打包不同jdk版本的包
- android 防止用户粗暴点击(快速点击)引起的无响应问题。
- iOS uitableview 局部刷新
- 关于C++二维指针
- zoj 1864 自然数幂和
- Codeforces Round #228 (Div. 1) C. Fox and Card Game
- 基于MTK平台的不同安卓版本软件编译的JDK版本GCC版本切换脚本
- iResearch-付费搜索营销操作指南(优化篇)
- NDK 中无法找到头文件 解决方法
- 指针函数与函数指针的区别
- 数据库基础
- 每个Mac OS X 命令行用户应当知道的八个终端工具
- 强关系若因果,趋势胜过精准度,证伪而非证实的方法论,
- 黑马程序员----------对象与类
- synchronized , sleep ,wait ,notify,等的理解