您的位置:首页 > 移动开发 > Android开发

Android系统源代码下载

2012-12-27 16:19 459 查看
一、概述

众所周知,Android移动操作系统是Google花费了很大的财力、物力及人力的前提下,推广到世界各个角落,以开放源代码的方式(当然也不是完全开放所有),使其在世界范围内迅速漫延开来,到目前虽说只有三四年的时间 ,火热程度,也不用我细说了,看看业界新闻就明白了。这里我们主要讨论Android系统源代码的下载,这里我们先了解两个工具:

1、Git

Git是面向Linux内核管理的一个工具,它是一种分布式的版本控制系统,即每一个工作目录下都是一个完整的仓库,因此也支持离线工作, 在本地提交后,便会稍后更新到服务器上。它这种结构比集中式版本控制系统(如常见的SVN、CVS等只有一个完整仓库)更加健壮。

2、repo

其实repo只是用Python编写的一个脚本,它是为了更好、更方便地管理Android操作系统下多个组成部分,如Kernel、Dalivk、Bionic、prebuild、build等多个项目。repo的目的就是为了统一管理这些项目,简化Git的使用过程。

3、curl

curl是一个利用URL语法在命令行模式下的文件传输工具。这里我们用它来获取repo脚本。

二、源代码下载步骤

1、环境介绍:

首先介绍一下我的环境:Windows7下通过Vmare 7.1虚拟出Ubuntu10.4.2 系统 (当然将Ubuntu安装到硬盘上也一样,只是我这Linux系统不方便上网)

2、操作步骤:

1)、安装Git工具

命令:sudo apt-get install git

当然也可以去http://git-scm.com上下载最新版本的源代码,在本地编译安装,这里不详述了。

2)、安装curl:

命令:sudo apt-get install curl

2)、获取repo脚本并赋执行权限:

说明一下,我打算将此脚本放到~/bin目录下面,并将此目录加入到环境变量PATH里,以方便运行repo

命令:mkdir ~/bin

cd ~/bin

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

chmod 755 repo

若已经将~/bin目录添加到PATH变量中了,就可以在任意目录下执行repo了。

3)、初始化库

首先创建你要存放Android源代码的目录,这里我下载到~/android_src目录下,

命令:mkdir ~/android_src

cd ~/android_src

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

repo sync

上面这句命令会将当前主线上的最新版本的源代码库全部取下来,若只需要其中一部分代码,也可通过再加一个-b [branchname]参数来取指定的分支代码。

三:扩展:

1.先新建一个文件夹存放Android目录,并初始化repo:

root@ubuntu:~$ mkdir Android

root@ubuntu:~$ cd Android

root@ubuntu:~/Android$ mkdir bin

root@ubuntu:~/Android$ cd bin

root@ubuntu:~/Android/bin$ curl
https://dl-ssl.google.com/dl/googlesource/git-repo/repo >repo

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

19731 100 19731 0 0 14034 0 0:00:01 0:00:01 --:--:-- 17157

在这里,几个月前http://android.git.kernel.org/已经无法访问了,很多朋友如果用的是这个源下载站点,就会出现如下情况:

root@ubuntu:~/Android/bin$ curl http://android.git.kernel.org/repo >repo

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 244 100 244 0 0 75 0 0:00:03 0:00:03 --:--:-- 976

然后在之后的代码初始化时就会出现如下错误:

./bin/repo: 行 1: 未预期的符号 `newline' 附近有语法错误
./bin/repo: 行 1: `<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">'

2.现在继续。建立存放源码目录source,初始化所需的android源码版本,在终端执行如下命令:

root@ubuntu:~/Android/bin$ sudo chmod a+x repo

root@ubuntu:~/Android/bin$ cd

root@ubuntu:~$ cd Android/source/

root@ubuntu:~/Android/source$ ../bin/repo init -u
https://android.googlesource.com/platform/manifest -b android-2.3.3_r1

gpg: 钥匙环‘/home/wayne/.repoconfig/gnupg/secring.gpg’已建立

gpg: 钥匙环‘/home/wayne/.repoconfig/gnupg/pubring.gpg’已建立

gpg: /home/wayne/.repoconfig/gnupg/trustdb.gpg:建立了信任度数据库

gpg: 密钥 920F5C65:公钥“Repo Maintainer <repo@android.kernel.org>”已导入

gpg: 合计被处理的数量:1

gpg: 已导入:1

Get https://android.googlesource.com/tools/repo

remote: Counting objects: 1414, done

remote: Finding sources: 100% (78/78)

remote: Total 1414 (delta 917), reused 1414 (delta 917)

Receiving objects: 100% (1414/1414), 429.88 KiB | 169 KiB/s, done.

Resolving deltas: 100% (917/917), done.

From https://android.googlesource.com/tools/repo

* [new branch] maint -> origin/maint

* [new branch] master -> origin/master

* [new branch] stable -> origin/stable...

这样下来之后,会要求输入用户名和邮箱地址,随意写个就ok。

初始化完毕之后会出现:

repo initialized in /home/wayne/Android/source

现在完成初始化之后便可以下载了,在终端执行如下命令,开始下载:

root@ubuntu:~/Android/source$ ../bin/repo sync

下载全部的源码需要很长时间,现在正在经历漫长的等待……

过程中时常看一下,也许会出错而中断:

error: Exited sync due to fetch errors

遇到这些问题时,重新执行一遍./bin/repo sync就ok。

Fetching projects: 100% (165/165), done.

Checking out files: 100% (3573/3573), done.ut files: 30% (1078/3573)

Checking out files: 100% (4679/4679), done.out files: 33% (1580/4679)

Checking out files: 100% (10008/10008), done.t files: 23% (2370/10008)

Checking out files: 100% (11980/11980), done.t files: 0% (64/11980)

Checking out files: 100% (9601/9601), done. out files: 0% (67/9601)

Syncing work tree: 100% (165/165), done.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: