【安卓开发学习】2.安卓源码下载


应该说笔者自己走了好多弯路终于下到了安卓的源码,发现网上的好多说法都过时了。在这里特别感谢公司的一位大侠,他对我说了一句话,我觉得很有道理,你所有需要的答案基本上都可以在http://developer.andorid.com上可以找到。

下载的过程是按照官网说明一步步下来的很顺利。

官网链接如下:

 http://source.android.com/source/downloading.html

软件环境:

操作系统:windows xp

软件:      Cgywin

过程详解:

         笔者其实是很担心自己的英语水平的,6级基本上是靠猜出来的。也有N年不碰英文了。

         笔者将这个翻译献给自己,也同时献给走在奋斗路上的你,come on

       下载repo

         Repo使Gitandroid环境下工作更加容易。如果您想获得更多关于Repo的信息,可以看看Version Control

         请按照如下步骤安装,初始化,配置Repo

请确保在您的工作目录下有一个bin目录,并包含在您的PATH路径下。

笔者的目录如下:

$ mkdir /home/android                                                  //创建自己的安卓工作目录

$ cd /home/android                                                       

$ mkdir bin                                                                         //创建自己的bin目录,用于存放Repo

$ PATH=/home/android/bin:$PATH                    //将自己的bin目录加入环境变量

下载Repo,并确保该文件时可以执行的。

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo >/home/android/bin/repo //repo下载至自己的工作目录下

$ chmod a+x /home/android/bin/repo                       //设置repo为可执行,笔者对linux基本没什么涉略,哈哈,客串一下

Repo文件的SHA-1的校验码为29ba4221d4fccdfa8d87931cd73466fdc24040b5

         笔者自己没有校验,直接略过。

初始化repo客户端

         在安装了repo的客户端之后,开始设置你的客户端以访问android源码目录。

创建一个你的空的工作目录,并跳转到该目录。如果你正在使用MacOS(口水,谁送我一台Mac啊),它的文件系统是大小写敏感的。你可以给你的工作路径起一个你自己喜欢的名称。

$ mkdir /home/android             //如果你有这个目录了,那么就请跳过

$ cd /home/android/bin           

运行Repo init把最新的repo给下下来。你必须要自定一个URL连接来下载manifest,它指定了将会放置到你的工作目录下的数量繁多的android目录。

$ repo init -u https://android.googlesource.com/platform/manifest              //将会下载android的若干源码目录列表

 

为了检查除了父目录的所有分支,用参数“-b”指定:(该句翻译不确定,原文如下:To check out a branch other than "master", specify it with -b:

$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1     //检索android-4.0.1_r1目录

之后repo将会提示你填写你真正的姓名以及email(笔者的实践是可以随意填。)。为了使用Gerrit代码查看工具,你将需要一个与注册的google账号关联的email。确保这是一个可以正常接收信息的地址。您提供的名字将会在你的代码意见中显示。

成功安装之后,将会有一个消息提示你已经把repo安装到你的工作目录下了。你的工作目录将包括一个.repo目录,像manifest这样的文件会保存在这这个目录中。

获得文件

为了将manifest中指定的库下载到您的本地工作目录,请运行:

$ repo sync                                                    nbsp; //下载指定库到本地

Android的源码将放置至工作目录下的相应路径。最开始的sync操作将会花费一个小时甚至更多。如果想要知道repo sync或者更新命令,请看Version control

使用授权

在默认情况下,对android源码访问都是匿名的。为了保护服务器免受过激的攻击,每个IP都是有一定的限额。

当与别人一起共享受用一个IP的时候(如通过NAT防火墙来访问那些源码库),即使是正常的使用也会达到那个限额(如许多用户同时通过一个IP访问。)。

在这种情况下,使用授权的使用授权的访问,为每个用户分配一定的配额且与IP无关。

第一步通过密码生成你的密码,并将它根据该网页的说明保存在~/.netrc中。

第二步是通过如下的URI: manifest URI: https://android.googlesource.com/a/platform/manifest访问。如下将说明怎么触发授权的访问。你可以通过如下的命名转化成使用授权的访问:

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

疑难的网络问题

当通过一个代理来下载的时候,需要明确的指定被repp使用的代理服务器:

$ export HTTP_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>

$ export HTTPS_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>

在极少数情况下,linux客户端会有网络连接上或者下载中断的一些问题。据说调整TCP/IP的栈设置或者使用类似的命令有助于解决这些问题。当你修改这些设置的时候,是需要root权限的。

$ sudo sysctl -w net.ipv4.tcp_window_scaling=0

$ repo sync -j1

使用本地镜像

当有许多中断的时候,尤其是网络带宽非常有限的情况下,创建一个服务端的镜像并且都从那个镜像同步将会是个很好的主意。

如下质量假设那些镜像将会创建在/usr/local/aosp/mirror。第一步是创建并同步那个有10G宽带或者相同数量的硬盘空间的镜像。注意,--mirror标志只能在创建一个新的客户端的时候才能指定。

$ mkdir -p /usr/local/aosp/mirror

$ cd /usr/local/aosp/mirror

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

$ repo sync

一旦镜像同步了,新客户端就可以从这里创建了。注意:指定一个绝对路径非常重要。

$ mkdir -p /usr/local/aosp/master

$ cd /usr/local/aosp/master

$ repo init -u /usr/local/aosp/mirror/platform/manifest.git

$ repo sync

最后,为了使客户端能与服务端同步,镜像将会先去与服务端同步,之后才是客户端与镜像同步。

$ cd /usr/local/aosp/mirror

$ repo sync

$ cd /usr/local/aosp/master

$ repo sync

LAN服务器上保存一个镜像并通过NFS, SSH or Git访问是有可能的。一个镜像也可以保存在一个远程硬盘中,并可以在各个用户和机器之间访问。

验证Git Tags

将如下公共密钥导入您的GnuPG密钥数据库。那个密钥将会在您的有注释的tags上添加,并在releases中展现。

$ gpg –import

请复制并粘贴如下的密钥,然后输入EOF (Ctrl-D)来结束输入。

-----BEGIN PGP PUBLIC KEY BLOCK-----

Version: GnuPG v1.4.2.2 (GNU/Linux)

 

mQGiBEnnWD4RBACt9/h4v9xnnGDou13y3dvOx6/t43LPPIxeJ8eX9WB+8LLuROSV

lFhpHawsVAcFlmi7f7jdSRF+OvtZL9ShPKdLfwBJMNkU66/TZmPewS4m782ndtw7

8tR1cXb197Ob8kOfQB3A9yk2XZ4ei4ZC3i6wVdqHLRxABdncwu5hOF9KXwCgkxMD

u4PVgChaAJzTYJ1EG+UYBIUEAJmfearb0qRAN7dEoff0FeXsEaUA6U90sEoVks0Z

wNj96SA8BL+a1OoEUUfpMhiHyLuQSftxisJxTh+2QclzDviDyaTrkANjdYY7p2cq

/HMdOY7LJlHaqtXmZxXjjtw5Uc2QG8UY8aziU3IE9nTjSwCXeJnuyvoizl9/I1S5

jU5SA/9WwIps4SC84ielIXiGWEqq6i6/sk4I9q1YemZF2XVVKnmI1F4iCMtNKsR4

MGSa1gA8s4iQbsKNWPgp7M3a51JCVCu6l/8zTpA+uUGapw4tWCp4o0dpIvDPBEa9

b/aF/ygcR8mh5hgUfpF9IpXdknOsbKCvM9lSSfRciETykZc4wrRCVGhlIEFuZHJv

aWQgT3BlbiBTb3VyY2UgUHJvamVjdCA8aW5pdGlhbC1jb250cmlidXRpb25AYW5k

cm9pZC5jb20+iGAEExECACAFAknnWD4CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX

gAAKCRDorT+BmrEOeNr+AJ42Xy6tEW7r3KzrJxnRX8mij9z8tgCdFfQYiHpYngkI

2t09Ed+9Bm4gmEO5Ag0ESedYRBAIAKVW1JcMBWvV/0Bo9WiByJ9WJ5swMN36/vAl

QN4mWRhfzDOk/Rosdb0csAO/l8Kz0gKQPOfObtyYjvI8JMC3rmi+LIvSUT9806Up

hisyEmmHv6U8gUb/xHLIanXGxwhYzjgeuAXVCsv+EvoPIHbY4L/KvP5x+oCJIDbk

C2b1TvVk9PryzmE4BPIQL/NtgR1oLWm/uWR9zRUFtBnE411aMAN3qnAHBBMZzKMX

LWBGWE0znfRrnczI5p49i2YZJAjyX1P2WzmScK49CV82dzLo71MnrF6fj+Udtb5+

OgTg7Cow+8PRaTkJEW5Y2JIZpnRUq0CYxAmHYX79EMKHDSThf/8AAwUIAJPWsB/M

pK+KMs/s3r6nJrnYLTfdZhtmQXimpoDMJg1zxmL8UfNUKiQZ6esoAWtDgpqt7Y7s

KZ8laHRARonte394hidZzM5nb6hQvpPjt2OlPRsyqVxw4c/KsjADtAuKW9/d8phb

N8bTyOJo856qg4oOEzKG9eeF7oaZTYBy33BTL0408sEBxiMior6b8LrZrAhkqDjA

vUXRwm/fFKgpsOysxC6xi553CxBUCH2omNV6Ka1LNMwzSp9ILz8jEGqmUtkBszwo

G1S8fXgE0Lq3cdDM/GJ4QXP/p6LiwNF99faDMTV3+2SAOGvytOX6KjKVzKOSsfJQ

hN0DlsIw8hqJc0WISQQYEQIACQUCSedYRAIbDAAKCRDorT+BmrEOeCUOAJ9qmR0l

EXzeoxcdoafxqf6gZlJZlACgkWF7wi2YLW3Oa+jv2QSTlrx4KLM=

=Wi5D

-----END PGP PUBLIC KEY BLOCK-----

在导入了该密钥之后,你可以用如下指令校验任何的tag目录:

$ git tag -v TAG_NAME

如果你还没有设置过ccache,现在将会是个不错的时机。

下载内核

如果你对内核代码感兴趣,那么你可以通过如下的一系列命令来获取。

$ git clone https://android.googlesource.com/kernel/common.git

$ git clone https://android.googlesource.com/kernel/goldfish.git

$ git clone https://android.googlesource.com/kernel/msm.git

$ git clone https://android.googlesource.com/kernel/omap.git

$ git clone https://android.googlesource.com/kernel/samsung.git

$ git clone https://android.googlesource.com/kernel/tegra.git

你可能感兴趣的:(【安卓开发学习】2.安卓源码下载)