Android开发之获取和编译源码

1.      获取android源码

Google 采用版本控制工具git来管理Android源码,要获取各种版本的android源码必须要从谷歌仓库中在线获取,google也为此开发了一种工具repo,它是一种采用python编写的脚本,主要功能为从谷歌仓库下载android源码。

具体的获取过程为,环境为ubuntu10.4

  1. 安装GIT工具

Google采用分布式版本控制系统GIT来管理Android源代码,具体的介绍大家可以搜索一下,使用如下命令来安装此工具。

sudo apt-get install git-core gnupg

  1. 安装JDK

Android系统的上层APP均是采用JAVA来开发的,以至于在编译Android源码的过程中也需要此JAVA SDK,一般的ubuntu系统没有自带JDK,因此我们需要手动安装JDKAndroid2.3需要JDK6,低版本的Android可能需要低版本的JDK5,获取和安装命令如下:

sudo apt-get install sun-java6-jre sun-java6-plugin

sudo apt-get install sun-java6-jdk

  1. 安装Android需要的其他包,获取和安装命令如下:

sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl valgrind

  1. 安装获取源码的repo脚本命令工具,由于其只是一个脚本文件,因此只需要获取,不需要安装,命令为:

curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

chmod a+x ~/bin/repo

  1. 获取Android源码,命令为:

repo init -u https://android.googlesource.com/platform/manifest

上面这种方式获取的是最新的Android源码,比如我写本文的时候,获取的是Android4的源码,也可以获取指定版本的源码,命令为:

repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.3_r1

上面这两种方式都只是和google提供的Android源码建立连接,并没有下载,要想下载想要的代码,命令为:

repo sync

下载时间很长,根据网络情况和电脑配置而定,但是它支持断点续传。

2.       编译Android源码

在编译Android源码之前,需要修改几个文件

1.       因为Android源码默认是在64PC机上编译的,因此需要修改一下几个文件:

/external/clearsilver/cgi/Android.mk

/external/clearsilver/cs/Android.mk

/external/clearsilver/java-jni/Android.mk

/external/clearsilver/util/Android.mk

找到其中的LOCAL_CFLAGSLOCAL_LDFLAGS变量,进行修改:

# LOCAL_CFLAGS += -m64

# LOCAL_LDFLAGS += -m64

LOCAL_CFLAGS += -m32

LOCAL_LDFLAGS += -m32

2.       修改build/core目录下的main.mk文件

#ifneq (64,$(findstring 64,$(build_arch)))

 ifneq (i686,$(findstring i686,$(build_arch)))

3.       Android源码目录的根目录下执行命令make,如果没有什么错误,会产生四个文件:

out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.img

              out/target/product/generic/system.img

              out/target/product/generic/ramdisk.img

              out/target/product/generic/userdata.img

3.       安装编译好的镜像到模拟器上

1.       修改环境变量,将emulator命令添加到环境变量里,或者直接进入到命令所在文件夹out/host/linux-x86/bin直接执行命令。

2.       运行模拟器,命令为:

Emulator ./out/target/product/generic  -system system.img  -data userdata.img -ramdisk ramdisk.img

由于Android源码没有包含linux内核,模拟器使用的内核是Android源码自带的内核kernel-qemu,位于: prebuilt/android-arm/kernel/kernel-qemu

最后启动的效果如图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值