Android source

 

Linux境构筑

1)  Linux版本

Ubuntu 9.10

可通过[cat /etc/issue]查看

2)  安装git

   首先下git

   wget http://www.kernel.org/pub/software/scm/git/git-1.6.0.2.tar.gz

   :

     tar xvzf git-1.6.0.2.tar.gz

Build git

$ cd git-1.6.0.2

      $ ./configure --prefix=/usr/bin

      $ make

可能会出现"zlib.h No such file or directory",“rand.h No such file or directory”的错误,说明系统缺少该文件,

zlib.h 包含在 zlibg1-devopenssl/rand.h 包含在 libssl-dev,所以安装对应文件

$ sudo apt-get install zlib1g-dev libssl-dev

$ make

$ sudo make install

安装过程中,使用apt-get时,可能会出现package找不到的错误提示,原因是配置链接不对,可通过如下方法修改

$sudo gedit /etc/apt/sources.list

sources.list中的内容替换为如下内容

deb http://mirrors.163.com/ubuntu/ karmic main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ karmic-security main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ karmic-updates main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ karmic-proposed main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ karmic-backports main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ karmic main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ karmic-security main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ karmic-updates main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ karmic-proposed main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ karmic-backports main restricted universe multiverse

deb http://run.hit.edu.cn/ubuntu/ jaunty main restricted universe multiverse

deb-src http://run.hit.edu.cn/ubuntu/ jaunty main restricted universe multiverse

deb http://run.hit.edu.cn/ubuntu/ jaunty-updates main restricted universe multiverse

deb-src http://run.hit.edu.cn/ubuntu/ jaunty-updates main restricted universe multiverse

deb http://run.hit.edu.cn/ubuntu/ jaunty-backports main restricted universe multiverse

deb-src http://run.hit.edu.cn/ubuntu/ jaunty-backports main restricted universe multiverse

deb http://run.hit.edu.cn/ubuntu/ jaunty-security main restricted universe multiverse

deb-src http://run.hit.edu.cn/ubuntu/ jaunty-security main restricted universe multivers

替换后,文件保存,执行

$sudo apt-get update

然后再重新执行先前出错的命令

3)  repo安装

$curl http://android.git.kernel.org/repo > /root/bin/repo

       $ cd /root/bin

       $ chmod +x repo  (可执行权限添加)

4) 安装编译所需的库文件

$ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk

这里一下安装了很多库文件,安装过程中,如果有的库文件找不到,可先剔除,待其他安装好后再进行调查和安装,库找不到一般是source.list文件中没有对应的链接

:源

1) 初始化代码仓库:

$ repo init -u git://android.git.kernel.org/platform/manifest.git

该步执行后可能会出错repo error,原因是公司的局域网ISPGit的端口9418

,可以将命令改为

$ repo init -u http://android.git.kernel.org/platform/manifest.git

重新执行,执行完后需修改.repo文件

$ gedit ./repo/repo/repo

将里面的

REPO_URL='git://android.git.kernel.org/tools/repo.git' 改成

REPO_URL='http://android.git.kernel.org/tools/repo.git'

 

接着修改.repo/manifests/default.xml文件

$ gedit ./repo/manifests/default.xml

同样将

fetch="git://android.git.kernel.org/" 改成

fetch=http://android.git.kernel.org/

 

注:repo init -u git://android.git.kernel.org/platform/manifest.git是默认下载最新版

的源码,如果需要指定版本,可以用

Android 1.5, 1.6, 2.0,2.1 的代号分别为 CupcakeDonut Éclair Flan

repo init -u git://android.git.kernel.org/platform/manifest.git  -b  Flan

2) 获取代码:

$ repo sync

这个过程的时间可能很长,中间如果出错了,可以重复进行,直到下好为止,一般需要4个小时以上。

:源码编译

1) 源码下好后就可直接编译

$make

但是马上会报错,提示2.2版源码只能在64位系统上运行,要对付他,得修改如下文件

a)      build/ core/main.mk73行左右)

ifneq (64,$(findstring 64,$(build_arch)))改成

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

b)      external/clearsilver/ cgi/Android.mk

         LOCAL_CFLAGS += -m64

LOCAL_LDFLAGS += -m64

改成

LOCAL_CFLAGS += -m32

LOCAL_LDFLAGS += -m32

c)       external/clearsilver/ cs/Android.mk

LOCAL_CFLAGS += -m64

LOCAL_LDFLAGS += -m64

改成

LOCAL_CFLAGS += -m32

LOCAL_LDFLAGS += -m32

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

LOCAL_CFLAGS += -m64

LOCAL_LDFLAGS += -m64

改成

LOCAL_CFLAGS += -m32

LOCAL_LDFLAGS += -m32

e)      external/clearsilver/util/Android.mk

LOCAL_CFLAGS += -m64

LOCAL_LDFLAGS += -m64

改成

LOCAL_CFLAGS += -m32

LOCAL_LDFLAGS += -m32

 

修改完成后,再执行make命令,就不会出错

2)  模拟器运行

编译完成后,模拟器emulator/out/host/linux-x86/bin 下,ramdisk.imgsystem.imguserdata.img则在/out/target/product /generic

运行

$ out/host/linux-x86/bin/

$ emulator -system system.img -data userdata.img -ramdisk ramdisk.img

至此,模拟器就可以正确运行了。

SDK编译

在源码根目录下,执行

$make PRODUCT-sdk-sdk

即可,编译好的sdk就可以拿来使用,路径out/host/linux-x86/sdk

直接用make sdk编译的sdk无法使用

 

编译

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值