- 浏览: 44367 次
- 性别:
- 来自: 武汉
最新评论
本文叙述了如何从零开始搭建基于Google官方Android 2.1-r2源码的开发环境,包括如何下载源代码、编译源代码,以及在模拟器中运行编译生成的镜像。文中开发机是基于Ubuntu 10.04的,同样适用于其他版本的Ubuntu。 2. 下载JDK 1.5 编译Android源码需要JDK1.5版(主要是需要其中的javadoc),1.6版是不兼容的。JDK1.5已经停止支持,其最终的版本是JDK 5.0 Update 22。
可从Sun官网上下载:
http://java.sun.com/javase/downloads/5u22/jdk
选择平台Linux,勾选同意许可协议:
单击Continue,在弹出的页面中一共有两个下载,选第一个jdk-1_5_0_22-linux-i586.bin下载:
3. 部署JDK 1.5 3.1 解压缩JDK 以下命令均在root账户上执行,非root账户执行某些命令可能需要加sudo。
将jdk-1_5_0_22-linux-i586.bin放在root目录下。进入该目录:
cd ~
然后赋予该bin文件可执行属性:
chmod +x jdk-1_5_0_22-linux-i586.bin
再执行安装(注意前面有./):
./jdk-1_5_0_22-linux-i586.bin
跳过协议阅读。
最后一行:
Do you agree to the above license terms? [yes or no]
键入yes,然后回车,开始解压。默认会解压到当前目录下的jdk1.5.0_22目录下(此处是~/ jdk1.5.0_22)。 3.2 JDK版本切换 如果同时需要使用JDK1.6版做应用开发,则系统中将同时存在JDK1.5和JDK1.6。因此需要实现能够在不同版本间切换。如果不使用JDK1.6,请做完1.5版的设置后跳至3.3节。
这里使用update-alternatives命令实现。
首先为JDK1.5版生成可选配置选项:
update-alternatives --install /usr/bin/jdk jdk /root/jdk1.5.22 255
/usr/bin/jdk是符号链接,它指向/etc/alternatives/jdk(由第2个参数给出的),/root/jdk1.5.22是实际目的链接,255是优先级(任意整数,在automatic mode自动模式时,数字大的优先级较高,被选为默认配置选项)。
然后再为JDK1.6版生成(如果有JDK1.6的话。不使用JDK1.6的请跳至3.3节):
update-alternatives --install /usr/bin/jdk jdk /root/jdk1.6.20 0
这样,默认jdk版本即为1.5版。需要切换到1.6版时,请使用update-alternatives config jdk 3.3 配置JDK环境变量 下面开始配置环境变量。
在终端中执行:gedit ~/.bashrc
修改.bashrc文件,添加下面语句:
#set java environment
export JAVA_HOME=/usr/bin/jdk
export JRE_HOME=JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
该段代码最好设置在文件的尾部。
保存文件。在终端中执行source ~/.bashrc
请使用java version检查JDK是否配置正确。 4. 安装其他必备组件 在终端上,使用下面的命令安装:
apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
因为JDK1.5在前面已经单独安装过了,因此此处apt-get install命令行中没有加入sun-java5-jdk。 5. 下载Android 源代码
5.1 安装repo脚本 首先安装repo。在root目录下新建一个bin目录。在终端中执行:
cd ~
mkdir bin
然后,向PATH中添加bin路径:
export PATH=$PATH:~/bin
然后执行下面两行指令,下载repo脚本并修改可执行属性:
curl https://android.git.kernel.org/repo >~/bin/repo
chmod a+x ~/bin/repo
5.2 初始化repo 首先建立一个目录用来存放Android源代码:
mkdir mydroid
cd mydroid
然后用最新的列表执行初始化。这里我们下载android 2.1-r1,因此加了参数 b android-2.1_r2:
repo init -u git://android.git.kernel.org/platform/manifest.git b android-2.1_r2
这中间会问到你的名字和Email。如果你打算上传代码,Email须是一个Google账户。
repo初始化成功后会看到类似于下面的提示:
repo initialized in /root/mydroid
最后执行repo sync开始同步代码。过程比较漫长,下载速度取决于你的网速,中间有可能遇到断线,重新执行repo sync即可断点续传。 6. 编译Android源代码
6.1 编译生成镜像 切换到android源码根目录下,执行make即可。首次编译非常耗时,取决于机器配置,大约需要3小时。完成后镜像生成在/root/mydroid/out/target/product/generic下。 6.2 编译、配置Android SDK make编译完成后,执行make sdk命令,生成对应于该版本源代码的sdk。
Android官方的SDK和我们自己编译Android源码时使用make sdk编译出的SDK有区别,模拟器版本不同,加载的默认镜像也不同(一个是官方的,一个是自己编译的)。下面将展示如何能够自由切换SDK版本。
首先是自己编译的SDK版本,实际位置是/root/mydroid/out/host/linux-x86/sdk/android-sdk_e ng.root_linux-x86。
因为它比较常用,我们给它高优先级:
update-alternatives --install /usr/bin/AndroidSDK AndroidSDK /root/mydroid/out/host/linux-x86/sdk/android-sdk_e ng.root_linux-x86 255
事先下载的官方SDK位置是/root/android-sdk-linux_86,执行:
update-alternatives --install /usr/bin/AndroidSDK AndroidSDK /root/android-sdk-linux_86 0
然后使用update-alternatives --display AndroidSDK查看当前配置情况:
如果要切换配置,使用update-alternatives --config AndroidSDK
配置AndroidSDK环境变量。终端中执行gedit ~/.bashrc
在文件最后添加下面三行:
# set android environment
export ANDROID_SDK_HOME=/usr/bin/ AndroidSDK
export PATH=$ANDROID_SDK_HOME/tools:$PATH
保存文件。在终端中执行source ~/.bashrc 7. 在模拟器中运行编译的镜像 打开终端,执行android脚本:
android
出现下图所示窗口:
选择左边第一项Virtual Devices,然后在右边选择New,新建一个AVD。
Name:AVD的名称,随便取,但只能包含字母和数字以及点、下划线和连字符,这里取名test。
Traget:目标SDK版本,这里选自己编译的2.1-r1版Android SDK。
SD Card:SD卡。暂且不填,待需要时再设置。
Skin:皮肤(模拟器屏幕分辨率)。
Hardware:使用默认即可
然后点Create AVD,就创建好了一个AVD。点击Start即可启动模拟器,其运行的是自己编译的镜像。
若以后要再次启动此AVD,请在终端中运行:
emulator avd test 或者emulator @test
发表评论
-
C#中几种常用的处理字符串的方法总结
2012-07-06 09:51 717主要有以下几种: ... -
正则表达式匹配数字,斜杠一个或多个
2012-07-06 09:45 1553使用match它时,如果没有设置全局标志 (g),数组的 ... -
正则表达式说明
2012-07-06 09:37 594参考:http://blog.csdn.net/benja ... -
magento -- 1.4.1.0新鲜出炉,第一个也是比较重要的改进简介
2012-07-06 09:30 531当地时间2010年6月10日,时隔3个多月后,Magent ... -
js_document有关getElementsByName 定义和用法
2012-07-05 20:45 628getElementsByName 定义和用法 get ... -
Delphi 7自带的TeeChart组件
2012-07-03 13:43 1488Delphi 7自带的TeeChart ... -
Flex学习笔记
2012-07-02 10:44 466类成员有四种修饰 ... -
关于Firefox重新加载flex的问题解决
2012-07-02 10:44 557DIV中有一个flex,我希望用js来控制它的显示和隐藏, ... -
flex取数据1
2012-07-02 10:44 503HTML通过JavaScript传递信息到Flex中 ... -
Pivot升级为Apache顶级项目,准备好挑战Flex, Silverlight和JavaFX
2012-07-02 10:44 852Apache软件基金会(ASF)于昨天宣布,将Pivot ... -
虚拟机随谈:解释器,树遍历解释器,基于栈与基于寄存器,大杂烩
2012-07-01 00:22 615虚拟机随谈:解释器,树遍历解释器,基于栈与基于寄存器, ... -
amchart的使用!~
2012-07-01 00:22 858最近公司开发项目使用到了amchart控件,所以自己研究了 ... -
OpenLaszlo带给我们什么
2012-07-01 00:22 482初试Laszlo, 其语言本身是一个基于class为核心的 ... -
MyEclipse插件全接触
2012-07-01 00:22 509Eclipse 是一个开源 ...
相关推荐
Ubuntu10.04编译安装最新版本Linux-2.6.34内核教程
gdb-7.5_android_ubuntu10.04_python26
在Ubuntu10.04下载和编译android 4.0源代码(三)
在Ubuntu10.04下载和编译android 4.0源代码(四)
在Ubuntu10.04下载和编译android 4.0源代码(一)
gdb-7.3.1_android_ubuntu10.04_python26
Ubuntu10.04下安装ns-allinone-2.35
ubuntu10.04界面汉化安装包,deb格式。由于包的相互依赖,需用如下命令安装: #dpkg -i language-pack-zh-hans_1%3a10.04+20100421_all.deb language-pack-zh-hans-base_1%3a10.04+20100421_all.deb language-pack-...
在Ubuntu10.04下载和编译android 4.0源代码(五)
在Ubuntu10.04下载和编译android 4.0源代码(一)
ubuntu-10.04-desktop-amd64.iso.torrent, Ubuntu Lucid amd64位下载种子
MTK搭建开发环境ALPS_Build_Environment_on_Ubuntu_10.04_64-bit_Installation_SOP_4.1_4.2.pdf
在Ubuntu10.04建立QT-linux-embedded-4.6.3开发环境及编译qvfb
android2.2源码编译-Ubuntu10.04 (X86) + android2.2 + JDK1.6android2.2源码编译-Ubuntu10.04 (X86) + android2.2 + JDK1.6android2.2源码编译-Ubuntu10.04 (X86) + android2.2 + JDK1.6
Ubuntu_10.04上编译Android_2.3Ubuntu_10.04上编译Android_2.3
Ubuntu20.04离线安装openssh-server 安装步骤: sudo dpkg -i libssl1.0.0_1.0.2n-1ubuntu5.7_amd64.deb sudo dpkg -i openssh-client_8.4p1-6ubuntu1_amd64.deb sudo dpkg -i openssh-sftp-server_8.4p1-6ubuntu1_...
ubuntu10.04及12.04编译android环境搭建.txt
Ubuntu 10.04下Android编译环境搭建
Ubuntu_10.04 安装、配置、指南
自己总结用crosstool构建交叉编译工具 arm-linux-gcc 4.1.0