Android源代码的下载、编译和运行

下面的文字都是经过本人亲自实现通过的总结,愿与大家分享,希望对大家有所帮助!

一、下载、安装vmware虚拟机和ubuntu系统

1目前,Android源代码的工作环境只能在linux系统上进行,这里推荐使用ubuntu系统。因为该系统是一个广受称道的linux发行版本,它具有强大的软件包管理系统,并且简单易用,它的官方下载地址为:http://www.ubuntu.com ;另外,虽然Android源代码的工作环境要求ubuntu系统的版本在8.04以上,但是我这里还是建议下载安装最新的版本,当然,我用的是当时最新的版本12.10 LTS

2、如果习惯使用windows系统的开发者,可以先考虑安装个虚拟机,然后在虚拟机上安装ubuntu系统即可,虚拟机这里推荐使用vmware虚拟机,它的官方下载地址为:http://www.vmware.com;当然,用户也可以在网上寻找一些破解版的哦!;另外,安装vmware最好用6.0以上版本,因为较旧的版本在网络连接上不是很快,建议使用最新的版本。

由于vmware虚拟机和ubuntu系统的安装步骤较简单,只需按照步骤进行即可。

最后,要注意的就是在创建虚拟机的时候,要保证有足够的内存和硬盘空间大小;建议内存在2G以上,而硬盘空间在30G以上,因为编译Android源代码时,至少需要这个大小的空间的。

二、下载、编译和运行Android源代码

在上面的工作完成之后,我们还需要安装一些工具和依赖资源包,然后才能正常的下载、编译和运行Android源代码。这些工具和依赖包包括GitJava sdk等。另外,在我们四处寻找命令行的时候,我们可以使用快捷键来快速地在图形界面和命令行之间进行切换,快捷键为ctrl+alt+F1(图形界面到命令行)ctrl+alt+F7(命令行到图形界面)

1、Git工具的安装

Android系统的源代码使用Git工具来管理的,它是一种分布式的源代码管理工具,可以高效、高速的将项目源代码进行版本管理,它的安装方法为:

~$:sudo apt-get install git-core gnupg

2、JDK安装

我们编译和运行Android源代码的时候,需要Java sdk,它的安装方法如下:

鉴于我使用的ubuntu的版本为12.10LTS,所以的方法会有所不同,其他的版本如果按照我的做法行不通的话,可以百度一下,一般都会找到答案的;当然,这个方法是正常跑通的,方法如下。

我在安装JDK时,是手动安装的(推荐),即是到http://www.oracle.com下载jdk1.6.0_38到本地,然后手动安装JDK;最后,设置环境变量:比如我的JDK的安装路径是在/opt/下,那么就是sudo vi /etc/profilePATH最后的位置加上

Export  JAVA_HOME=/opt/jdk1.6.0_38

Export  PATH=$JAVA_HOME/bin:$PATH

Export  CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

当然,还可以在/etc/environment/etc/bash_profile中添加。

第二种方法,有时因为下载源的问题而安装失败,建议手动安装。添加下载资源:

~$:sudo add-apt-repository “deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse”

~$:sudo add-apt-repository “deb http://us.archive.ubuntu.com/ubuntu/ hard-updates multiverse”

更新包索引:

~$:sudo apt-get update

安装jdk:

~$:sudo add-apt install sun-java6-jdk

检查当前所安装的Java版本:

~$:sudo update-java-alternatives -l

若系统存在多个Java版本,转为Java1.6

~$:sudo update-java-alternatives -s java-1.6.0-sun

确认Java版本:

~$:java -version

正常的话,会在下面显示当前所安装的Java版本信息。

3、安装其他依赖包

编译android源代码的时候,需要其他的工具包,他们的安装如下:

~$:sudo apt-get install valgrind flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev(可选) build-essential zip curl lib32ncurses5-dev zlib1g-dev

4、下载android源代码

终于到了下载源代码了,期待许久了吧!那么开始了。

为了方便下载android源代码,Google提供了一个repo工具,这个工具实际上是一个脚本文件,里面封装了用来下载代码的git命令,它的下载和安装方法如下:

~$:cd ~

~$:mkdir bin

~$:export PATH=$PATH:~/bin

~$:curl http://git-repo.googlecode.com/files/repo-1.12 > ~/bin/repo

~$Lchmod a+x ~/bin/repo

安装了repo工具之后,我们就可以开始下载源代码了。

步骤如下:

~$:mkdir Android

~$:cd Android

~$:repo init -u https://android.googlesource.com/platform/manifest    //下载所有分支(不推荐,因为很大的,我们只需抽取核心部分即可,如:2.3版本)

那么改为下载android-2.3.4版本:

~$:repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.4_r1

~$:repo sync

哎!剩下的就是等待了,等待是一种对你的考验哦!这个过程可能需要几个小时吧!要看网速的好坏的;在下载过程中,可能由于网速或其他原因导致中断,这时继续执行命令repo sync即可。

5、编译android源代码

在编译源代码的时候,我们cdAndroid目录(如未说明的话,下面的路径都是在Android目录中进行)中,执行make命令开始编译。 

编译过程中,可能因为某些原因而中断,如网络或缺少资源包等;此时,我们利用命令窗上的相关提示信息,打开搜索引擎一般都会查到解决办法的,这里就不一一说明了。最后,我们就可以进行真正的源代码打包编译了,那么执行命令:make sdk即可。编译成功后,会在命令窗中显示信息:

Package SDK:out/host/linux-x86/sdk/android-sdk_eng.$USER$_linux-x86.zip其中的$USER$表示为用户名,有了这个SDK后,我们就可以在IDE环境中开发Android应用程序了。

6、运行Android模拟器

源代码编译成功后,我们欣然的接受了喜悦的心情,开始运行模拟器了。为了方便起见,我们可以使用Android模拟器emulator来运行编译的Android源代码。执行下面的命令来启动Android模拟器:

Export PATH=$PATH:~/Android/out/host//linux-x86/bin

Export ANDROID_PRODUCT_OUT=~/Android/out/target/product/generic

上面的两个export也可以添加到环境变量中,方便关机重启后失效;可以加入到/etc/environment /etc/profile中,类似于JDK的配置。

最后,执行命令:emulator来启动模拟器,如果提示错误信息:SDL init failuer:no available video device的话,我们可以执行命令export DISPLAY=:0即可,当然,这个命令也可以加入到上面的profile脚本文件中。

运行成功后,如下图显示(需要切换到图像界面才能看到):

三、下载、编译和运行Android内核源代码

我们知道Android源代码默认是没有它所使用的Linux内核源代码的,因此,我们需要运行定制的Linux内核,就要下载、编译和运行编译。

1、下载Android内核源代码

Android模拟器所使用的Linux内核源代码也是通过Git工具来进行管理的,不过它不像Android源代码那样通过repo脚本来下载,我们需要手动执行git命令下载。

步骤如下:

Android$ mkdir kernel

Android$ cd kernel

Android/kernel$ git clone http://android.googlesource.com/kernel/goldfish.git

下载完成后,在kernel目录中就会看到子目录goldfish,此时,我们需要执行命令git branch -a来查看分支代码,我这里确定使用android-goldfish-2.6.29版本,最后,制定需要的支线代码:git checkout remotes/origin/android-goldfish-2.6.29即可。

2、编译Android内核源代码

在编译Android内核源代码之前,我们需要先修改它的Makefile脚本文件。我们知道Android系统所使用的CPU体系结构是arm的,因此,我们需要将文件Makefile中的ARCH变量设置为arm。同时因为我们是使用PC来为Android模拟器编译内核的,所以,我们还需要在Makefile文件中指定交叉编译工具,即修改里面的CROSS_COMPILE变量值为arm-eabi-,即是表示使用交叉编译工具名称是以”arm-eabi-”作为前缀的。

实现步骤如下:

Android/kernel/goldfish$

Export  PATH=$PATH:~/Android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin这里的export也可以加入脚本文件profile中。

Android/kernel/goldfish$

Make goldfish_defconfig

Android/kernel/goldfish$

Make

编译成功后,我们会看到下面的信息提示:

OBJCOPY arch/arm/boot/zImage

Kernel :arch/arm/boot/zImage is ready

这就是表示编译好的内核源代码镜像文件是位于目录Android内核源代码下的arch/arm/boot子目录中。

3、运行Android模拟器

之前我们运行的Android模拟器是利用Android源代码下的kernel-qemu文件,现在我们已经编译好了自己的镜像文件了,所以我们使用-kernel选项来指定启动模拟器,以便可以指定模拟器所使用的内核镜像文件。

实现步骤如下:

Android$ emulator -kernel ./kernel/goldfish/arch/arm/boot/zImage &

命令后面的&表示的是在后台启动Android模拟器,这样做的目的是为了能在同一个终端中运行adb工具来连接Android模拟器。

好了!操作到此,万事已经具备了,只欠实际开发应用程序的东风了!以后,本人会继续编写有价值的参考文档,供有需要的人共同研究!!!


本人最近刚刚新建了一个群号,希望与兴趣相投的同学一起研究学习,申请加入时,请输入加入的理由,谢谢!!!

QQ群号:179914858 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云水之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值