把础苍诲谤辞颈诲源代码加入厂顿碍
- 1. 把 Android 源代码加入 SDK
Jimmy 发表于 2009-07-09 16:15 2 回/69 阅 ,对应项目:Android SDK
各 位调试 Android 程序的时候遇到“source not found”错误应该很抓狂吧,Goolge 在发布 SDK 时没有把源代
码包含进去着实有点让人费解,对很多人来说 Git 无疑是个生涩的东西,而 framework 中所有 Java 代码加起来
打个包也就是 20 多 MB。更要命的是,Android Eclipse plugin (ADT)不允许我们在项目属性中 attach 源代码
到 android.jar 上。好在 Eric Burke 找到了把 source 加入到 SDK 中的办法,通过分析 ADT 的源代码我们知道
ADT 是从 SDK 目录下的“sources”目录来查找 class 对应的源代码,这样我们只要把源代码放到 sources 目录
中 ADT 就可以自动找到对应的源代码了。
那么接下来的问题是,我们需要把哪些源代码加入到 SDK 中,我们又如何得到这些源代码呢?
我之前的文章 Android Scripting Environment 动手玩中提到过一个 fix_android_sdk.py 脚本,用来解决
编译 ASE 的时候找不到 android.os.Exec 包的问题,事实上这个脚本还做了另一件事,即遍历整个< android-
source >目录,把其中所有的 Java 代码复制到了 SDK 的 sources 目录中。ASE Wiki 的 CompilingASE 中 提
到,编译 ASE 需要 Android 的代码树,而我当时告诉大家了一个取巧的方法,即只要下载 frameworks/base 的
android- 1.5r2 这个 tag 的 snapshot 就行,因为 android.os.Exec 包就在其中,这足已解决我们编译 ASE 的
问题。
回到我们把源代码加入到 SDK 上来,有了 fix_android_sdk.py 脚本(这里我们并不需要把 android.os.Exec
包编译并添加到 android.jar,所以我把脚本中的这个功能去掉了,点击下载修改后的脚本),如果你已经通过
repo 下载了完整的代码树(需要注意版本的对应),那么一切都很简单。按照下面的方法,把 android 源代码
和 SDK 目录作为参数传给它即可。
fix_android_sdk.py < android-source > < android-sdk >
执行完成以后,在platformsandroid-1.5 目录下就会生成一个 sources 目录,其中包含了 android 代码树中
所有的 Java 代码,并且都根据包名存放各自的目录,再次 Debug 代码的时候 ADT 就可以找到相应的源代码了。
如果手上没有完整的代码树,又想快速的把源代码添加到 SDK 呢?看过 Android 的代码树就会知道,除了
frameworks/base 以外,还 有很多 framework 的代码其实是在 Dalvik 目录下,另外还有常用的 apache http
的包位于 external/apache-http 目录下,所以要获得用于调试的比较完整的 framework 源代码,我们至少需要
从 Android 的代码库中下载
platform/dalvik.git、platform/frameworks/base.git、platform/external/apache-http.git 这 三个
project。把下载回来的文件解压到同一个目录下,目录结构随意,接下来利用 fix_android_sdk.py 脚本就可以
把 Java 文件提取 出来。用这种方法来提取 framework 的源代码比下载整个代码数来得快很多,而且提取的结果
和从完整的代码树比较来看,仅仅是少了我们 Debug 时完 全用不到的 Android 中捆绑的 Application 的源代
码,以及 jdiff、tagsoup、clearsilver 等包的代码(这 3 个包我都没 有接触过,如果各位觉得有必要,可以自行
下载并按上面提到的方法来添加源代码,它们都在 platform/external 下)。
最后,如果你连上面这几个包也懒得下载,懒得装 Python 执行环境,那么 Android Forum 上有一个讨论
Source code for android.jar 的帖子正适合你,帖子的第 10 楼和 11 楼提供了提取好的 Android 1.5 SDK 源
代码(虽然未必 100%和你的 SDK 匹配,也总比满眼的 source not found 好吧),解压缩到你 SDK 下的
sources 目录即可。
上一篇:Nginx + Apache 的优化例子一则。
下一篇:Android 对阵 iPhone 3.0 孰强孰弱
原文转自 http://www.williamhua.com/2009/06/18/add-android-sourcecode-to-the-sdk/
回复此话题
把 Android 源代码加入 SDK
四步骤:
- 2. 1、用 GIT 获取源码 见(http://source.android.com/download)
2、获取 SDK http://developer.android.com/sdk/1.5_r2/index.html
3、提取.java 源码,获取执行脚本 http://code.google.com/p/android-
scripting/source/browse/trunk/tools/fix_android_sdk.py
Windows 下运行 fix_android_sdk.py android-source[源码目录] android-sdk[SDK 目录]
注意:在 Linux 下执行此脚本会报:with open(source) ... 语法错误。原因可能跟系统的
路径有关,
4、提取完成,在 android-sdk1.5_r2platformsandroid-1.5 下会多一个叫 sources 的目录,里面即是所需
Java 的源码了,然后把 source 目录放在 Eclipse 中配制的 android-sdk 的根目录下即可。
配制好后的 Andriod-SDK 的目录如下