- 论坛徽章:
- 0
|
在eclipse中浏览Android源码
Pls refer to http://stuffthathappens.com/blog ... -source-in-eclipse/
如果能够在eclipse中浏览Android源代码,这对提高阅读源码的效率非常有帮助。根据上面连接,下面是一个简要步骤描述:
1. 安装eclipse 3.4或3.5 (本人使用的是从http://www.eclipse.org/downloads/上下载的3.4.1。3.5版本下面有些步骤没有成功)
2. 安装Android plugin (参见sdk 文档docs/sdk/eclipse-adt.html)
3. 从源码中创建一个项目, (create a project from existing sources), 如为packages/apps/calendar
4. 安装Android源码到这个项目中。
4.1 在eclipse的Window->Preference->Android中,指定sdk location,例如xxx/android-linux-sdk_86
4.2 假设使用的sdk是1.6,则在目录xxx/android-linux-sdk_86/platforms/android-1.6/下创建sources目录
4.3 符号连接 你的源码 ln -s frameworks/base/core/java/android xxx/android-linux-sdk_86/platforms/android-1.6/sources/android
4.4 符号连接其他源码到sources目录下。注意:源码文件所放路径应该与源码文件所属Java包的名字匹配。例如,Bitmap.java属于android.graphics包,则应放于目录sources/android/graphics目录下。
4.5 如果你仍然不能浏览源码的话,可通过重新创建一个project进行刷新。这可能是我这个版本的eclipse的一个bug。
4.6,下面的script给出了如何抽取所有的java源码文件(http://blog.michael-forster.de/2 ... ode-in-eclipse.html):
- 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()
复制代码 |
|