Ubuntu 100464位下载并编译 Android 22 源码.docx

上传人:b****5 文档编号:7658768 上传时间:2023-01-25 格式:DOCX 页数:9 大小:388.34KB
下载 相关 举报
Ubuntu 100464位下载并编译 Android 22 源码.docx_第1页
第1页 / 共9页
Ubuntu 100464位下载并编译 Android 22 源码.docx_第2页
第2页 / 共9页
Ubuntu 100464位下载并编译 Android 22 源码.docx_第3页
第3页 / 共9页
Ubuntu 100464位下载并编译 Android 22 源码.docx_第4页
第4页 / 共9页
Ubuntu 100464位下载并编译 Android 22 源码.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

Ubuntu 100464位下载并编译 Android 22 源码.docx

《Ubuntu 100464位下载并编译 Android 22 源码.docx》由会员分享,可在线阅读,更多相关《Ubuntu 100464位下载并编译 Android 22 源码.docx(9页珍藏版)》请在冰豆网上搜索。

Ubuntu 100464位下载并编译 Android 22 源码.docx

Ubuntu100464位下载并编译Android22源码

Ubuntu10.04(64位)下载并编译Android2.2源码[只有11条命令]

为了方便,我把所有操作写成了命令,按顺序(软件安装--源码下载--编译)执行成功即可:

1.sudoapt-getinstallgit-coregnupgflexbisongperfbuild-essentialzipcurlzlib1g-devgcc-multilibg++-multiliblibc6-dev-i386lib32ncurses5-devia32-libsx11proto-core-dev

libx11-devlib32readline5-devlib32z-devjava-commonunixodbc

2.sudoapt-getinstallsun-java6-jdk

3.cd

4.mkdir-psoftware/bin

5.curlhttp:

//android.git.kernel.org/repo>software/bin/repo

6.chmoda+xsoftware/bin/repo

7.mkdir-psoftware/android/src/new

8.cdsoftware/android/src/new

9.repoinit-ugit:

//android.git.kernel.org/platform/manifest.git-bfroyo

10.reposync

11.make-j4

===================================================================================================================

1.前言

本文叙述了如何从零开始搭建基于Google官方Android2.2.1(froyo)源码的开发环境,包括如何下载源代码、编译源代码,以及在模拟器中运行编译生成的镜像。

文中开发机是基于Ubuntu10.04的,同样适用于其他版本的Ubuntu。

现在需要弄清楚一下几点,防止后面出现误操作:

下载源代码是用参数:

repoinit-ugit:

//android.git.kernel.org/platform/manifest.git-bfroyo(下载的是2.2.1版本,编译环境操作系统必须是32位的,jdk1.5版本的---jdk1.5没有64位版本)。

如果是没有带参数的下载源代码,将会下载所有的源代码,编译环境要求:

操作系统64位,jdk1.6,(偶是2010年10月15日做)但很有可能会出现交叉编译工具错误:

“/bin/bash:

prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gcc:

没有那个文件或目录”(实际上是有arm-eabi-gcc这个文件的,偶怀疑是版本问题--32位的,而环境要求是64位的—--下载全部代码)

2.下载JDK1.5(不建议此下载方式,防止配置环境参数出错。

建议用apt-getinstall方式,请跳转到:

第4步)

编译Android源码需要JDK1.5版(主要是需要其中的javadoc),1.6版是不兼容的。

JDK1.5已经停止支持,其最终的版本是JDK5.0Update22。

可从Sun官网上下载:

选择平台Linux,勾选同意许可协议:

单击Continue,在弹出的页面中一共有两个下载,选第一个jdk-1_5_0_22-linux-i586.bin下载:

3.部署JDK1.5

3.1解压缩JDK

以下命令均在root账户上执行,非root账户执行某些命令可能需要加sudo。

将jdk-1_5_0_22-linux-i586.bin放在root目录下。

进入该目录:

cd~

然后赋予该bin文件可执行属性:

chmod+xjdk-1_5_0_22-linux-i586.bin

再执行安装(注意前面有./):

./jdk-1_5_0_22-linux-i586.bin

跳过协议阅读。

最后一行:

Doyouagreetotheabovelicenseterms?

[yesorno]

键入yes,然后回车,开始解压。

默认会解压到当前目录下的jdk1.5.0_22目录下(此处是~/jdk1.5.0_22)。

3.2JDK版本切换

如果同时需要使用JDK1.6版做应用开发,则系统中将同时存在JDK1.5和JDK1.6。

因此需要实现能够在不同版本间切换。

如果不使用JDK1.6,请做完1.5版的设置后跳至3.3节。

这里使用update-alternatives命令实现。

首先为JDK1.5版生成可选配置选项:

update-alternatives--install/usr/bin/jdkjdk/root/jdk1.5.22255

(sudoupdate-alternatives--install/usr/bin/jdkjdk/home/ynb/jdk1.5.0_22255)

/usr/bin/jdk是符号链接,它指向/etc/alternatives/jdk(由第2个参数给出的),/root/jdk1.5.22(/home/ynb/jdk1.5.0_22)是实际目的链接,255是优先级(任意整数,在automaticmode自动模式时,数字大的优先级较高,被选为默认配置选项)。

然后再为JDK1.6版生成(如果有JDK1.6的话。

不使用JDK1.6的请跳至3.3节):

update-alternatives--install/usr/bin/jdkjdk/root/jdk1.6.200

这样,默认jdk版本即为1.5版。

需要切换到1.6版时,请使用update-alternatives–configjdk

3.3配置JDK环境变量

下面开始配置环境变量。

在终端中执行:

sudogedit~/.bashrc

修改.bashrc文件,添加下面语句:

#setjavaenvironment

exportJAVA_HOME=/usr/bin/jdk

exportJRE_HOME=JAVA_HOME/jre

exportCLASSPATH=$JAVA_HOME/lib:

$JRE_HOME/lib:

$CLASSPATH

exportPATH=$JAVA_HOME/bin:

$JRE_HOME/bin:

$PATH

该段代码最好设置在文件的尾部。

保存文件。

在终端中执行source~/.bashrc

重启系统请使用java–version检查JDK是否配置正确。

4.用apt-getinstall方式安装JDK1.5:

Android要求的jdk1.5,而Ubuntu10.4的源里只有JDK1.6.如果安装了jdk1.6请先卸载:

$sudoapt-getremoveremoveopenjdk-6-jdk

$sudoapt-getremoveremoveopenjdk-6-jre

$sudoapt-getremoveremoveopenjdk-6-jre-headless

安装jdk1.5目前网上解决方法有两种:

 解决方法一(建议):

安装JDK1.5

 1)根据官方文档里所说,源代码的编译必须使用JDK5才能编译的了,所以这里偶使用jdk5

 2)需要先更新源,在终端里执行sudovim/etc/apt/sources.list

 3)在source.list里把以下2行拷贝到文档最后面:

   

debjauntymultiverse

deb-srcjauntymultiverse

debjaunty-updatesmultiverse

deb-srcjaunty-updatesmultiverse

   保存退出。

 4)执行sudoapt-getupdate更新源.

 5)配置编译环境并下载JDK5:

sudoapt-getinstallsun-java5-jdk

 解决方法二:

安装JDK1.6,修改Android源文件。

 1)安装jdk1.6,修改(如果2.0版本源码请修改

 在文件中搜索并分别把:

   java_version:

=$(shelljava-version2>&1|head-n1|grep'["]1.5[."$$]')

   javac_version:

=$(shelljavac-version2>&1|head-n1|grep'["]1.5[."$$]')

 两行改成:

   java_version:

=$(shelljava-version2>&1|head-n1|grep'["]1.6[."$$]')

   javac_version:

=$(shelljavac-version2>&1|head-n1|grep'["]1.6[."$$]')

 即可。

 推荐使用第一种解决方法。

5.安装其他必备组件

在终端上,使用下面的命令安装:

(前面的1、2、3步骤都可以省略啦)

sudoapt-getinstallgit-coregnupgflexbisongperflibsdl-devlibesd0-devlibwxgtk2.6-devbuild-essentialzipcurllibncurses5-devzlib1g-dev

因为JDK1.5在前面已经单独安装过了,因此此处apt-getinstall命令行中没有加入sun-java5-jdk。

6.下载Android源代码

6.1安装repo脚本

首先安装repo。

在当前用户:

~目录下新建一个bin目录。

在终端中执行:

cd~

mkdirbin

然后,向PATH中添加bin路径:

exportPATH=$PATH:

~/bin

然后执行下面两行指令,下载repo脚本并修改可执行属性:

curlhttps:

//android.git.kernel.org/repo>~/bin/repo

chmoda+x~/bin/repo

6.2初始化repo

首先建立一个目录用来存放Android源代码:

mkdirmydroid

cdmydroid

然后用最新的列表执行初始化。

这里偶下载android2.2.1(froyo),因此加了参数–bfroyo:

(android2.2.2(froyo)源码下载:

2G多

repoinit-ugit:

//android.git.kernel.org/platform/manifest.git-bfroyo)

(下载2.1_r2源码

repoinit-ugit:

//android.git.kernel.org/platform/manifest.git–bandroid-2.1_r2

下载全部源码:

repoinit-ugit:

//android.git.kernel.org/platform/manifest.git)

(下载2.0源码:

repoinit-ugit:

//android.git.kernel.org/platform/manifest.git–beclair)

(上面下载2.0时有个莫名其妙的问题:

ynb@ynb-pc:

~/bin$repoinit-ugit:

//android.git.kernel.org/platform/manifest.git–beclair

Usage:

repoinit-uurl[options]

出现上面问题,删除mydroid目录:

rmdirmydroid;mkdirmydroid2.0;cdmydroid2.0;

再:

repoinit-ugit:

//android.git.kernel.org/platform/manifest.git-beclair就可以了)

(如果能通过浏览器浏览到android源码的主页,但运行repoinit或reposync的时候,却没法下载源码,形如:

只需要把git开头的地址改为http即可:

[1]

repoinit-uhttp:

//android.git.kernel.org/platform/manifest.git-bfroyo

[2]修改manifest.git里的地址,也是把git:

//改为http:

//

vim.repo/manifest.git

如:

xmlversion="1.0"encoding="UTF-8"?

>

fetch="http:

//android.git.kernel.org/"

review=""/>

remote="korg"/>)

这中间会问到你的名字和Email。

如果你打算上传代码,Email须是一个Google账户。

repo初始化成功后会看到类似于下面的提示:

repoinitializedin/home/(当前用户名)/mydroid

最后执行$reposync开始同步代码。

过程比较漫长,下载速度取决于你的网速(偶的3-4小时左右),中间有可能遇到断线,重新执行reposync即可断点续传。

7.编译Android源代码

7.1编译生成镜像

切换到android源码根目录下,执行$sudomake即可。

首次编译非常耗时,取决于机器配置,大约需要2-3小时。

有可能会出现:

“Permissiondenied(权限拒绝的提示)”请命令赋予权限:

$cd无权限文件的当前目录回车;$sudochmod-R+rwx*回车;完成后镜像生成在/root/mydroid/out/target/product/generic下:

android源码编译后得到system.img,ramdisk.img,userdata.img映像文件。

其中,ramdisk.img是emulator的文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,emulator加载这3个映像文件后,会把system和userdata分别加载到ramdisk文件系统中的system和userdata目录下。

7.2编译、配置AndroidSDK

make编译完成后,执行$sudomakesdk命令,生成对应于该版本源代码的sdk,此过程用的时间偶的是10多分钟。

注意这个sdk不能用于生产环境。

用于生产环境的最好用如下命令:

$sudomakePRODUCT-sdk-sdk命令,生成对应于该版本源代码的用于生产环境的sdk,此过程用的时间偶的是1个多小时。

Android官方的SDK和偶自己编译Android源码时使用makesdk编译出的SDK有区别,模拟器版本不同,加载的默认镜像也不同(一个是官方的,一个是自己编译的)。

下面将展示如何能够自由切换SDK版本。

首先是自己编译的SDK版本,实际位置是/root/mydroid/out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86。

因为它比较常用,我们给它高优先级:

update-alternatives--install/usr/bin/AndroidSDKAndroidSDK/root/mydroid/out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86255

事先下载的官方SDK位置是/root/android-sdk-linux_86,执行:

update-alternatives--install/usr/bin/AndroidSDKAndroidSDK/root/android-sdk-linux_860

然后使用update-alternatives--displayAndroidSDK查看当前配置情况:

如果要切换配置,使用update-alternatives--configAndroidSDK

配置AndroidSDK环境变量。

终端中执行gedit~/.bashrc

在文件最后添加下面三行:

#setandroidenvironment

exportANDROID_SDK_HOME=/usr/bin/AndroidSDK

exportPATH=$ANDROID_SDK_HOME/tools:

$PATH

保存文件。

在终端中执行source~/.bashrc

8.在模拟器中运行编译的镜像

打开终端,执行android脚本:

$android

出现下图所示窗口:

选择左边第一项VirtualDevices,然后在右边选择New,新建一个AVD。

Name:

AVD的名称,随便取,但只能包含字母和数字以及点、下划线和连字符,这里取名test。

Traget:

目标SDK版本,这里选自己编译的2.1-r1版AndroidSDK。

SDCard:

SD卡。

暂且不填,待需要时再设置。

Skin:

皮肤(模拟器屏幕分辨率)。

Hardware:

使用默认即可

然后点CreateAVD,就创建好了一个AVD。

点击Start即可启动模拟器,其运行的是自己编译的镜像。

若以后要再次启动此AVD,请在终端中运行:

emulator–avdtest或者emulator@test

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 设计艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1