作者:赞比亚小鸡
Android自从发布以来就是以开源的身份收到广大开发者的青睐和追捧,多数android应用的开发者会参考Dev Guide。如果想深入了解android,免不了需要参考底层源码,这样来的更直接一些。
Android的版本控制工具为Git(分布式版本控制工具),所以在准备下载源码之前,有必要做一下前提准备,如果我在下面提到的一些工具和命令你没有接触过,没关系,看完教程我会给出一些参考资料,但是现在我们先完成我们的主要任务(去载源码)。
准备工具:
1、 msysgit(windows下分布式版本控制系统);
a) 下载地址:http://115.com/file/bhgp6gd1
2、 libiconv-2.dell、libcurl-4.dll;
a) 下载地址:http://115.com/file/e6tq3pgr
A ) 安装msysgit
运行msysGit-fullinstall-1.7.7.1-preview20111027.exe,选择安装目录(我的安装路径是c:\msysgit\),一路next,非常容易:
安装完成后,需要在环境变量Path里追加$HOME\bin\变量,以我的为例(C:\msysgit\msysgit\bin)。
另外,msysgit在工作的时候会调用libiconv-2.dll、libcurl-4.dll等类库,所以需要添加额外的类库类库,解压我们刚才下载的dll文件,复制粘贴到$HOME\bin目录下(我这里是C:\msysgit\msysgit\bin)。
B ) 完成上述步骤,msysgit基本上就配置完成了,msysgit是一款分布式版本管理工具(DVCS),不同于传统的SVN、CVS这些集成版本管理工具(CVCS),CVCS在服务器宕机后,会面临所有项目的数据丢失的危险,虽然客户端也许保留着服务器的副本,但是你不能保证项目数据的完整性。DVCS不记录版本之间的差异,每个版本都会以快照的形式保存在文件系统中,每次checkout时,客户端都会clone服务器的所有数据和镜像,这样在服务器宕机时,通过客户端的镜像文件,也可以完整的还原服务器数据,更多的将会在后面介绍,下面我们来克隆Android的Git源码。
由于8月份http://android.git.kernel.org/网站被黑客攻击,最近网站准备迁移数据,不过目前好像还没有完成,所以暂时我还没有比较好的办法能浏览整个framework下的项目tree,这里我以下载android的base.git为例(http://android.googlesource.com/platform/frameworks/base.git)。下载网站咱们还保留着呢,庆幸啊^_^。
新建工作目录,我这里是C:\msysgit\android framework src用来保存android源码,打开cmd,切换到该目录,输入:git clonehttp://android.googlesource.com/platform/frameworks/base.git,回车就可以启动下载了。然后我们可以去泡杯咖啡,慢慢等吧,下载完成后会有一个进度指示 100%。
最后完成下载时间2个多小时 凸(#‵′)凸
B ) 在Eclipse中关联Android源码:
完成后,打开C:\msysgit\android framework src\base\,该目录下就是我们刚才下载的源码文件。
通常我们会在Eclipse下直接按住Ctrl+鼠标左键点击某个类名,切换到该类的源码文件,这样做简便快捷。那么如何在Eclipse下关联android源码呢?
1 ) 打开Eclipse,新建android项目” srcattach”,我这里使用的android2.2。展开工程目录,右击android.jar - -> Properties - -> Java Source Attachment发现有这样一句话:Android Library’which does not allow user modifications to source attachments on its entries.
相当郁闷,ADT插件不允许关联源码,找了好多资料,具体方案就不详细说了,我会在后面给出解决方案的参考资料。
2 ) 解决方案就是,打开android sdk的安装目录D:\Program Files\android-sdk-windows\platforms\android-8目录,新建文件夹sources;把我们刚才下载的文件C:\msysgit\android framework src\base\core\java\下的android、com两个文件夹Copy到sources目录,重启Eclipse,ADT会自动关联sources下的源码。
这次我们试试方案有没有奏效,新建Activity01.java,代码:
按住Ctrl,鼠标点击Activity类名,这是切换到了Activity源码文件下:
OK,到这里好像我们的所有工作基本完成了,以后下载Android Framework下的其他项目源码的时候,一起Copy放到sources下就可以了。
后面是我提供给大家的网上参考资料,有时间的话不妨看看,也许你会了解的更透彻。如果文中有错误或者不详细的地方,还希望大家能批评指正,我会及时完善的。
附录:
a)Git工具的使用详解:http://blog.csdn.net/andy_android/article/details/7001557
b)Git开源教程:http://opengit.org/open/?f=progit_01-introduction
c)Eclipse关联Android源码解决方案:http://stuffthathappens.com/blog/2008/11/01/browsing-android-source-in-eclipse/
http://www.itivy.com/android/archive/2011/7/19/how-to-download-and-associate-android-source-code-in-eclipse.html