Long story short: Android source code needs to be placed in a "sources" subdirectory of the Android SDK.
1. Download the code
2. Move code to "sources" subdirectory of the Android SDK.

Where to put the Source Code?
To find out what the default location for source code is, please refer to Eric Burke's blog (ref. 2).

Inside com.android.ide.eclipse.adt.project.internal.AndroidClassspathContainerInitializer .java

IPath android_src = new Path(AdtPlugin.getOsAbsoluteAndroidSources());

Inside com.android.ide.eclipse.adt.project.internal.AdtPlugin .java

/** Returns the absolute android sources path in the sdk */ public static String getOsAbsoluteAndroidSources() { return getOsSdkFolder() + getOsRelativeAndroidSources(); } /** Returns the android sources path relative to the sdk folder */ public static String getOsRelativeAndroidSources() { return AndroidConstants.FD_ANDROID_SOURCES; }

Inside com.android.ide.eclipse.adt.project.internal.AndroidConstants

public static final String FD_ANDROID_SOURCES = "sources";

So the code should be placed into:
[SDK_PATH ]/sources/
In SDK1 .5, should be:
[SDK_PATH ]/platforms/android-1.1/sources
[SDK_PATH ]/platforms/android-1.5/sources


Wh at is the code tree structure?

SDK_PATH | android.jar  +--docs/...  +--samples/... +--sources   +--android       |      ...accounts, annotation, app, bluetooth, etc...    +--com/android/etc...    +--dalvik/...    +--java/...    +--javax/...

How to pack the Source Code?
You can zip the source code and then unzip it into sources. You can use the Python script written by Mike (ref. 1)

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()


References:
1. View Android Source Code in Eclipse
http://blog.michael-forster.de/2008/12/view-android-source-code-in-eclipse.html
2. Browsing Android Source in Eclipse
http://stuffthathappens.com/blog/2008/11/01/browsing-android-source-in-eclipse/

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. android native ndk崩溃定位
  2. Android logcat详细用法
  3. Android艺术开发探索——第二章:IPC机制(下
  4. androidjunit test基本知识(一)
  5. MonoDroid架起.NET与Android之间的桥梁
  6. Eclipse中编译Android工程时出现的问题解
  7. Android——横竖屏切换以及数据保存
  8. Android matrix偏移(平移),旋转,缩放,倾斜的
  9. 最全面总结 Android WebView与 JS 的交互
  10. Android 自定义 View 理论基础