winXP上Android源代码的获取以及在Eclipse中浏览方法

      Google在android开发的文档系统感觉并没有apple做的好,文档不多,可能是因为他开源吧,并不需要罗里罗嗦介绍太多东西,但是sdk没有附带整理后的源代码这个很让人不爽。source not found对于一个开源项目来说,除了2没有其他字可以形容,虽然网上有些是自己做了代码包,给别人下载,但是版本如此多。更新也不是很及时,我们自己动手丰衣足食吧。

       由于我的开发环境是winXP+Eclipse,所以我介绍的方法都是基于这个开发平台的,用mac,linux和win7的童子们俺就先不照顾了。(话说windows上应该是最麻烦的。。。)

       STEP1: 下载cygwin,http://www.cygwin.com/ 然后需要安装以下几个模块:

       (1) 默认的base模块

       (2) python 2.6.5-2 

       (3) git 1.7.1-1         

       (4) curl  7.20.1-1

       

       注:以上软件的版本号截止至2010年8月7日号,不保证后续版本号能正常工作,请大家自己实验,一般来说问题不大。

      

      

 

       STEP2:

       把cygwin安装路径下的bin目录添加到PATH中。(图1-1)

 

winXP上Android源代码的获取以及在Eclipse中浏览方法_第1张图片

 

 图1-1

 

       运行cygwin,下载一个repo的脚本,目前是通过这个脚本来获取android全部的源代码的。

       假设我们把脚本下载到x:/android/froyo/bin目录下,然后源代码也放在这个目录下,那么我们在cygwin里面键入如下命令:

       cd x:/android/froyo

       $ cd x:/android/froyo

       $ mkdir bin

       $ curl http://android.git.kernel.org/repo> /cygdrive/x/android/froyo/bin/repo

       $ cd bin

       $ chmod a+x repo

       

       运行结果见图1-2,(现在别关cygwin,后面还要用)

      

 

winXP上Android源代码的获取以及在Eclipse中浏览方法_第2张图片

 

 

图 1-2

 

   然后下载你需要的android版本,一般和你的sdk相对应。如何知道你的sdk对应什么哪个版本tag?以froyo为例,用任意文本工具打开 %sdk%/platfroms/android-8/source.properties :

里面有 Pkg.Desc=Android SDK Platform 2.2_r1
   OK,打开http://android.git.kernel.org/ 选择 platform/manifest.git ,

   在Tag中,我们可以找到一行

5 weeks ago android-2.2_r1 Android 2.2 release 1

   这就是你的sdk对应的源代码,其他的tag有些是最新的release版,他们可能还没发布,比如说2.2_r1.1,有些是老的,别管他们,也千万别下最新的。那和你的sdk源代码不一定匹配。一定要下和你sdk匹配的那个tag。

 

   在cygwin里面输入$ python ./repo init -u git://android.git.kernel.org/platform/manifest.git -b android-2.2_r1   

 

   然后他会要求你输入用户名和邮箱,输不输都可以,回车即可。

 

   最后输入$python ./repo sync  就开始下载了,慢慢等吧,好几个G呢。

 

   每次版本更新都是个悲剧。。。

 

   等下载完了,把以下python脚本保存在一个文本文件中,改名叫getSource.py

from __future__ import with_statement # for Python < 2.6 import os import re import zipfile # open a zip file DST_FILE = 'sources.zip' if os.path.exists(DST_FILE): print DST_FILE, "already exists" exit(1) zip = zipfile.ZipFile(DST_FILE, 'w', zipfile.ZIP_DEFLATED) # some files are duplicated, copy them only once written = {} # iterate over all Java files for dir, subdirs, files in os.walk('.'): for file in files: if file.endswith('.java'): # search package name path = os.path.join(dir, file) with open(path) as f: for line in f: match = re.match(r'/s*package/s+([a-zA-Z0-9/._]+);', line) if match: # copy source into the zip file using the package as path zippath = match.group(1).replace('.', '/') + '/' + file if zippath not in written: written[zippath] = 1 zip.write(path, zippath) break; zip.close()

 

    把该脚本放在你下载源代码的地方,运行脚本$python getSource.py 然后慢慢等。。。他会遍历所有java文件,然后根据包名重建目录树。并且把代码放在一个sources.zip包里面。把这个zip包解压到你的platform/android-8/目录下,重新打开Eclipse,就可以看到源代码啦。同样的方法适用于任何android sdk版本,只要大家自己找到版本库相应的tag就行了。

    这下大家就不用为新版sdk出来没有源代码包发愁啦~

 

 

 

你可能感兴趣的:(eclipse,android,python,脚本,File,import)