Ubuntu 12.04 64位编译android 4.2

来源:互联网 发布:javascript判断相等 编辑:程序博客网 时间:2024/06/01 09:02
############################################################################################################################################################
一、安装并配置JDK
1.安装JDK6.0
 (1).下载JDK:
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html#jdk-6u45-oth-JPR
选择64位的linux版本,这里安装好以后,后面设置应用开发环境还用得上,
这时我下载的最新版本是jdk-6u45-linux-x64.bin

 (2). 安装
修改文件的权限
chmod  777  jdk-6u45-linux-x64.bin
执行安装,进入jdk-6u45-linux-x64.bin所在目录,执行:
./jdk-6u33-linux-x64.bin

2. 配置环境变量
方法一:
修改/etc/profile  或者修改/etc/enviroment , 在其后面添加java文件夹的路经
export JAVA_HOME=/home/gexueyun/jdk1.6.0_33
export PATH=$PATH:$JAVA_HOME/bin:/home/gexueyuan/android-sdk-linux/platforms-tools:/home/gexueyuan/eclipse/:/home/gexueyuan/bin

方法二:
修改当前用户目录下的 .bashrc文件,在文件末尾添加如下:
# for java  2014.3.20
export JAVA_HOME=/home/insound/compile_tools/jdk1.6.0_45
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin

以上两种方法任选其一

此时输入:java -version可能还看不见版本,重启或者重新登录后就能看见java的版本
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03, mixed mode)


############################################################################################################################################################
二、安装、配置交叉编译器
1. 解压arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu.tar.bz2(用于编译uboot)到 /home/insound/compile_tools/目录下; 解压arm-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2(用于编译内核)到/home/insound/compile_tools/目录下
2. 解压gnutools-arc2.3-p0-ubuntu-9.04-2010-5-10.tar.bz2(编译uboot需要gnutools)到/home/insound/compile_tools/目录下

3. 修改当前用户目录下的 /home/insound/.bashrc文件,在文件末尾添加如下:
# for kernel and u-boot  
export PATH="$PATH:/home/insound/compile_tools/arm-2010q1/bin:/home/insound/compile_tools/opt/gnutools/arc2.3-p0/elf32-4.2.1/bin"

############################################################################################################################################################
三、安装必要的编译包
1. ubuntu12.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 apt-get install git-core gnupg flex bison gperf build-essential   zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs   
x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z1-dev   libgl1-mesa-dev gcc-multilib g++-multilib mingw32 tofrodos
python-markdown   libxml2-utils  xsltproc

注:
64位ubuntu装32位的库
apt-get install ia32-libs

2. 执行如下命令
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

参考:http://source.android.com/source/initializing.html#installing-required-packages-ubuntu-1004-1110


3. 安装usb驱动(可选)
由于ubuntu的系统设置问题,普通用户是没有权限获取usb设备的,所以需要创建下面这个文件
/etc/udev/rules.d/51-android.rules
# adb protocol on passion (Nexus One)  
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"  
# fastboot protocol on passion (Nexus One)  
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"  
# adb protocol on crespo/crespo5g (Nexus S)  
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"  
# fastboot protocol on crespo/crespo4g (Nexus S)  
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"  
# adb protocol on stingray/wingray (Xoom)  
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"  
# fastboot protocol on stingray/wingray (Xoom)  
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"  
# adb protocol on maguro/toro (Galaxy Nexus)  
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"  
# fastboot protocol on maguro/toro (Galaxy Nexus)  
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"  
# adb protocol on panda (PandaBoard)  
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"  
# fastboot protocol on panda (PandaBoard)  
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"  
# usbboot protocol on panda (PandaBoard)  
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="<username>"  
# usbboot protocol on panda (PandaBoard ES)  
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="<username>"  
其中username是你需要获取权限的用户名

############################################################################################################################################################
四、编译源代码
1.初始化脚本
$ source build/envsetup.sh
$ lunch full-eng
第二个命令的参数可以参考官网,说明很详细,你想生成什么样的文件,就设定什么样的参数
http://source.android.com/source/building.html

2.编译代码:
$ make -jN
其中N参数代表你计算机的线程参数,数字越大,编译速度越快,但是要看你计算机支持到什么地步

事实证明,4.6的GCC也可以编译成功,不像网上说的那样只能用gcc4.4

其实,编译android系统和host主机自带的gcc版本没有关系,用的是源代码文件夹prebuild中内置的交叉工具链,如果对GCC工具链还是不放心,那么就安装一个4.4版本的gcc:
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4
安装完成以后,进入/usr/bin目录
$ ls -l gcc*
显示如下:
lrwxrwxrwx 1 root root      7 Sep  3 13:45 gcc -> gcc-4.6  
-rwxr-xr-x 1 root root 259232 Apr 16  2012 gcc-4.4  
-rwxr-xr-x 1 root root 353216 Apr 16  2012 gcc-4.6  

先备份一下原来的gcc软链接,然后新建软链接gcc指向gcc-4.6
sudo mv gcc gcc.bak
sudo ln -s gcc-4.4 gcc

同理,修改下g++。
然后查看gcc和g++版本号,就能发现都显示4.4.7的版本
gcc --version
g++ --version

#############################################################################################################################################################
五、运行emulator
编译成功后,运行模拟器
$ emulator
如果找不到命令,那么重新输入:
$ source build/envsetup.sh
$ lunch full-eng
再运行
$ emulator




############################################################################################################################################################

ubuntu12.04 下android4.0源码编译
http://www.open-open.com/lib/view/open1347779191349.html


***搭建android开发平台及源码编译,详情可参考android官方网站:http://source.android.com


部分资料参考本以下网站:

http://openlinux.amlogic.com/

0 0