Android IA build环境建构

1 关于本文档

本文档描述了如何搭建一个环境使得Android-IA系统能够正常build的方法。

2 目标环境

OS: Fedora 16 x86_64

3 环境搭建过程

3.1 安装JDK环境

3.1.1 下载JDK rpm包

可以从这里下载,也可以到http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jdk-6u45-oth-JPR 下载。

3.1.2 运行安装JDK包

$ su -
# sh /path/to/binary/jdk-6u45-linux-x64.rpm.bin

3.1.3 设置java/javac相关命令

也可以到这里下载脚本执行。

#!/bin/bash -x
#
# The JDK download site instructions for setting up java alternatives
# are unsuitable for the Android Build System.  This script replaces
# those "alternatives" commands.

# jre stuff =====================================================

alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_33/jre/bin/java 20000 \
  --slave /usr/bin/ControlPanel ControlPanel /usr/java/jdk1.6.0_33/jre/bin/ControlPanel \
  --slave /usr/bin/java_vm java_vm /usr/java/jdk1.6.0_33/jre/bin/java_vm \
  --slave /usr/bin/javaws javaws /usr/java/jdk1.6.0_33/jre/bin/javaws \
  --slave /usr/bin/jcontrol jcontrol /usr/java/jdk1.6.0_33/jre/bin/jcontrol \
  --slave /usr/bin/keytool keytool /usr/java/jdk1.6.0_33/jre/bin/keytool \
  --slave /usr/bin/orbd orbd /usr/java/jdk1.6.0_33/jre/bin/orbd \
  --slave /usr/bin/pack200 pack200 /usr/java/jdk1.6.0_33/jre/bin/pack200 \
  --slave /usr/bin/policytool policytool /usr/java/jdk1.6.0_33/jre/bin/policytool \
  --slave /usr/bin/rmid rmid /usr/java/jdk1.6.0_33/jre/bin/rmid \
  --slave /usr/bin/rmiregistry rmiregistry /usr/java/jdk1.6.0_33/jre/bin/rmiregistry \
  --slave /usr/bin/servertool servertool /usr/java/jdk1.6.0_33/jre/bin/servertool \
  --slave /usr/bin/tnameserv tnameserv /usr/java/jdk1.6.0_33/jre/bin/tnameserv \
  --slave /usr/bin/unpack200 unpack200 /usr/java/jdk1.6.0_33/jre/bin/unpack200
if [[ $? -ne 0 ]] ; then
  echo "Oops, some error from installing java"
  exit 1
fi

# java compiler stuff =====================================================

alternatives --install /usr/bin/javac javac /usr/java/jdk1.6.0_33/bin/javac 20000 \
  --slave /usr/bin/appletviewer appletviewer /usr/java/jdk1.6.0_33/bin/appletviewer \
  --slave /usr/bin/apt apt /usr/java/jdk1.6.0_33/bin/apt \
  --slave /usr/bin/extcheck extcheck /usr/java/jdk1.6.0_33/bin/extcheck \
  --slave /usr/bin/HtmlConverter HtmlConverter /usr/java/jdk1.6.0_33/bin/HtmlConverter \
  --slave /usr/bin/idlj idlj /usr/java/jdk1.6.0_33/bin/idlj \
  --slave /usr/bin/jar jar /usr/java/jdk1.6.0_33/bin/jar \
  --slave /usr/bin/jarsigner jarsigner /usr/java/jdk1.6.0_33/bin/jarsigner \
  --slave /usr/bin/javadoc javadoc /usr/java/jdk1.6.0_33/bin/javadoc \
  --slave /usr/bin/javah javah /usr/java/jdk1.6.0_33/bin/javah \
  --slave /usr/bin/javap javap /usr/java/jdk1.6.0_33/bin/javap \
  --slave /usr/bin/jconsole jconsole /usr/java/jdk1.6.0_33/bin/jconsole \
  --slave /usr/bin/jdb jdb /usr/java/jdk1.6.0_33/bin/jdb \
  --slave /usr/bin/jhat jhat /usr/java/jdk1.6.0_33/bin/jhat \
  --slave /usr/bin/jinfo jinfo /usr/java/jdk1.6.0_33/bin/jinfo \
  --slave /usr/bin/jmap jmap /usr/java/jdk1.6.0_33/bin/jmap \
  --slave /usr/bin/jps jps /usr/java/jdk1.6.0_33/bin/jps \
  --slave /usr/bin/jrunscript jrunscript /usr/java/jdk1.6.0_33/bin/jrunscript \
  --slave /usr/bin/jsadebugd jsadebugd /usr/java/jdk1.6.0_33/bin/jsadebugd \
  --slave /usr/bin/jstack jstack /usr/java/jdk1.6.0_33/bin/jstack \
  --slave /usr/bin/jstat jstat /usr/java/jdk1.6.0_33/bin/jstat \
  --slave /usr/bin/jstatd jstatd /usr/java/jdk1.6.0_33/bin/jstatd \
  --slave /usr/bin/jvisualvm jvisualvm /usr/java/jdk1.6.0_33/bin/jvisualvm \
  --slave /usr/bin/native2ascii native2ascii /usr/java/jdk1.6.0_33/bin/native2ascii \
  --slave /usr/bin/rmic rmic /usr/java/jdk1.6.0_33/bin/rmic \
  --slave /usr/bin/schemagen schemagen /usr/java/jdk1.6.0_33/bin/schemagen \
  --slave /usr/bin/serialver serialver /usr/java/jdk1.6.0_33/bin/serialver \
  --slave /usr/bin/wsgen wsgen /usr/java/jdk1.6.0_33/bin/wsgen \
  --slave /usr/bin/wsimport wsimport /usr/java/jdk1.6.0_33/bin/wsimport \
  --slave /usr/bin/xjc xjc /usr/java/jdk1.6.0_33/bin/xjc
if [[ $? -ne 0 ]] ; then
  echo "Oops, some error from installing javac"
  exit 1
fi

3.1.4 安装编译时所需要的其他依赖包

# yum install -y git curl python gcc patch zip bison zlib zlib-devel flex \
  gperf syslinux squashfs-tools gcc-c++ qt qt-devel perl-Switch ccache libstdc++-devel libstdc++

以及

# yum install glibc.i686 glibc-devel.i686 libstdc++-devel.i686 libstdc++.i686 \
  zlib-devel.i686 ncurses-devel.i686 readline-devel.i686

3.1.5 设置ccache

ccache的值可以影响到系统的build,由于Android编译的时间比较久,建议设置的大一点。如果系统没有预装ccache,可以使用下列迷宫另:

sudo yum install cache

启用cache:

$ echo "export USE_CCACHE=1" >> ~/.bashrc

加大ccache的cache size:

$ echo "ccache -M 16" >> ~/.bashrc 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值