获取android源码主要用到的工具:
cURL:cURL是一个利用URL语法在命令行方式下工作的文件传输工具。
http://curl.haxx.se/

git:android使用的版本控制软件。
http://git-scm.com/download
windows版git(msysGit),带有gui的http://code.google.com/p/msysgit/downloads/list?can=3

repo:建立在git上的一个管理工具,简化git的使用的。它其实就是一个python脚本文件
http://android.git.kernel.org/repo

除了上面的工具,还需要的一些依赖:
python:repo的命令都是python脚本,所以需要用到python

这里我们使用cygwin来下载上面提到的的大部分工具:
cygwin:
这个项目的名字来源于:GNU、Cygnus、Windows,3者的缩写。Cygwin的目标是:构建一套Windows下的Linux模拟环境。因此,Cygwin是一个庞大的项目,不只包括Linux下的开发环境,也包括工作环境,和各种各样的Linux下的软件。
http://cygwin.com/install.html该页面能够下载到一个网络安装程序setup.exe,然后通过它我们就可以更新和下载最新的工具版本了。

启动cygwin

选择从网络安装

选择安装根目录

选择临时文件目录

代理设置,如果所在的网络需要使用代理的话这里需要进行设置。我使用的是移动额宽带,不存在代理,所以无需设置

选择下载站点,一般离我们较近的站点速度会比较快一点

开始更新工具列表

搜索curl,并选择要安装的包

搜索git,并选择要安装的包。git因为我之前就安装好了,所以我并没有安装这边的,你可以去上面的站点下载.exe的git安装文件

所有python,并选择要安装的包

确定下载所有工具的依赖文件

开始下载…

安装完毕

验证python是否安装成功

没成功你只需要将cygin/bin目录加入到环境变量path中就可以了

curl是否安装成功

使用curl下载repo,repo其实就是一个python脚本而已。
curl的基本使用http://macroc.7mx.cn/20081993247.html

repo脚本

好像这个repo脚本是专门为linux写的,android官方也说明了最好在linux下下载和编译android源码,所以repo在window上没能用起来(主要是对python不熟悉),但这并不影响我们下载源码,因为repo是建立在git上的一个管理工具而已,没有repo,我们可以照样使用git来下载源码。(同时,如果用repo下的话是下载的整个android的源码,虚拟机,一些工具的源码等,有3个多G,但一般我们就只需要其中的一部分而已)。具体可以参考这个:
http://www.cnblogs.com/qianxudetianxia/archive/2011/05/29/2060636.html

因为android的源码很大,所有源码都下载下来的话也没有那个必要,其实只要下载我们所需要的那一部分就ok了,这样的话我们首先得了解一下android的源码结构,不然的话就无从下手了,可以参考这个:
http://blog.csdn.net/pottichu/article/details/5655436

我们以下载android中的浏览器程序的源码为例,来展示如何用git下载需要的代码

首先进入GitWeb页面找到我们想要下载代码。
GitWeb:该网站列出了所有可下载的源码列表。http://android.git.kernel.org/(现在这个网站好像暂时关闭了,默认会跳到android的源码下载页面http://source.android.com/source/downloading.html,这里提供另外一个现在可以查看git资源的网站http://git.tarot.com.tw/

然后在命令行使用git下载那个要下载的源码

下载好后

其它相关网站
git使用参考:
基本使用:http://www.cnblogs.com/qianxudetianxia/archive/2011/06/12/2035974.html
常用命令介绍:http://zensheno.blog.51cto.com/2712776/490748

android官方的源码站点,描述了如何下载源码及如何对android进行编译、移植等:http://source.android.com/index.html

git官网推荐的一些git教程:http://git-scm.com/documentation

git community book:http://gitbook.liuhui998.com/index.html

git user’s manual:http://www.kernel.org/pub/software/scm/git/docs/user-manual.html

git magic:也是教程之一,稍微看了一下,好像是斯坦福的教材,还是斯坦福的人编写的

至于选择哪个教程,自己觉得哪个好就看哪个,个人倾向是看最薄的

android java部分源码压缩包下载:http://rgruet.free.fr/public/

下载anroid framework框架的源码,并获取指定版本的框架源码
首先还是进入GitWeb找framework源码的位置(注意,现在android源码的地址发生了改变,好像git web也没有了,具体原因可以看这http://www.cnblogs.com/dancefire/archive/2011/10/21/android_source_server_online_again.html)

只需要下载其中的base部分就够了,其它的就是如google map等

然后使用git来下载。这部分的代码比较大,我下载下来有500多MB,所以需要等待一段时间。我是在source_android下直接下载的,所以默认git创建一个base目录作为根目录
最新的源码地址:git clone http://android.googlesource.com/platform/frameworks/base.git

对于要获取指定版本的framework的源码,比如2.2的,我们是在本地来操作的。因为刚刚下载下来的源码中包含了到目前为止最新的源码。这就要用到git的分支功能了。

首先进入base目录,查看下载下来的源码中的所有分支,然后切换到指定的分支。(对于命令不理解的,上面提供的几个链接里面的教程可以帮助理解)

切换到2.2后,就可以提取需要部分的源码了。(对于到底framework源码放在哪个目录下,也参考上面的android源码目录结构的连接)。java层的源码大部分在core目录中




android的各个版本命名:具体可以参考http://baike.baidu.com/view/1241829.html
Android 1.1
发布时间:发布于 2008 年9月
Android 1.5
Cupcake纸杯蛋糕
发布时间:发布于 2009 年 4 月
Android 1.6
Donut甜甜圈
发布时间:2009 年 9 月
Android 2.0
Eclair松饼
发布时间:2009 年 10 月 26 日
Android 2.1
Eclair松饼
Android 2.2
Froyo冻酸奶
Android 2.3
Gingerbread姜饼
Android 3.0
Honeycomb(蜂巢)
Android3.1
IcecreamSandwich 冰激凌三明治
Android 3.2
Honeycomb(蜂巢)

作者 xingzhou

发表回复