`
zhujianjia
  • 浏览: 484116 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

转:在Eclipse中查看Android SDK的源代码

 
阅读更多

 

via http://stuffthathappens.com/blog/2008/11/01/browsing-android-source-in-eclipse/

Google的Android SDK中包含一个android.jar文件,里面有Android所有的公开类的API接口。同时,Google还提供了一个Eclipse插件,可以很容易的开始进行开发。但是,这里并没有一个类似于androidSrc.jar的文件,因此当我们试图在Eclipse去查看Android SDK的源代码的时候,会得到下面这样的一个页面:


 

Google已经发布了Android所有的源代码,很大。要在Eclipse中查看Android的源代码,需要去http://source.android.com/,Get Source那个页面内按照指示一步步的将所有的东西都通过Git弄下来。很值得抽出一个晚上的时间来做这件事,因为如果能够随时查看源码,对于理解SDK如何工作的是非常有帮助的。

链接到Eclipse

现在我们有了源码,应该可以告诉Eclipse如何找到它了。右键点击android.jar——属性,可是却发现了这样的信息:


嗯....那段话的大意是,当前的class path的设置属于'Android Library',不允许用户修改。好吧,只能去看看ADT的源码了,看能否找到什么办法。

查看ADT源码

当下载完Android源码之后,我们已经得到了所有内容,包括:操作系统、Dalvik虚拟机、Eclipse插件、公开的SDK...等等。

在 com.android.ide.eclipse.adt.project.internal 包里,我找到一个名为 AndroidClassspathContainerInitializer.java 的类,包含如下代码:

 

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

 

 

好,再来看看 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;
}

 

 

最后来看看 AndroidConstants.java:

 

public static final String FD_ANDROID_SOURCES = "sources";

 

 

 

搞定!

解决方案 #1

根据上面的分析,我们可以在android SDK的安装目录内创建一个sources目录,与android.jar位于同一个目录内。之后,我们可以在之前下好的Android源码中找到所有我们需要的代码。SDK的代码在frameworks/base/core/java,在这个目录下有一个android目录,我们需要将这个目录拷贝(链接)到SDK安装目录中的sources目录。你可能需要想想办法,把所有分散在不同Component的源码都弄到一起去。最终我们的目录结构大致如下:

 

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

 

 

 

我把所有这样的目录都弄进来了,但是没有详细记录。

译注(也就是我Simon Liu):
上面的代码是适用于以前的老版本的ADT,目前最新版本的ADT已经不适用了。经过查看源代码发现,最新版本的ADT需要在SDK目录下的platformsandroid-X对应的目录下建立sources目录,其中X是3、4、7、8之一的数字,对应不同的SDK版本。这也是一个比较合理的方案,毕竟不同版本的SDK的源码还是不一样的。

如果你在Linux或者Mac下工作,sources的源码目录结构可以用我写的如下的一个Shell脚本来完成这个事情,在Android的源码目录下运行这个脚本,然后会在~/workspace/src-tree创建"几乎"所有Java源码的soft symbol link。之后也可以用tar带-h参数打包到windows下使用。你可以根据自己的需求修改一下。

 

simon@simon-desktop:~/bin$ cat make-src-tree
#!/bin/bash
# Author: Simon Liu , Beijing, China
# Date: 2010-08-27
# License: GPL

curr_dir=$PWD
dest_dir=~/workspace/src-tree
if [ ! -z "$1" ]; then
        dest_dir=$1
fi

rm -rf $dest_dir
mkdir -p $dest_dir

for d in $(find -path .repo -prune
    -or -path .git -prune
    -or -path "*/src/com/*" -type d -print
    -or -path "*/src/org/*" -type d -print
    -or -path "*/java/com/*" -type d -print
    -or -path "*/java/org/*" -type d -print
    -or -path "*/java/android/*" -type d -print
    -or -path "*/java/javax/*" -type d -print)
do
        sd=$(echo $d | sed 's#.*/src/(.*)/#1/#g' | sed 's#.*/java/(.*)/#1/#g')
        echo ";; $sd"

        mkdir -p $dest_dir/$sd
        for f in $(cd $d; find . -mindepth 0 -maxdepth 1 -type f | sed 's#^./##g'); do
                echo "        $f"
                ln -s $curr_dir/$d/$f $dest_dir/$sd/$f
        done
done

 

 

现在,当我再去查看Android SDK类的时候,可以看到源码了:

 

 


 

 

解决方案 #2

如果你实在不愿意把所有的Android源码拷贝到SDK目录里面去,也可以创建一个Eclispe User Library并把源码附加上去。

 

  • 大小: 62.8 KB
  • 大小: 82.1 KB
  • 大小: 122.5 KB
分享到:
评论

相关推荐

    eclipse查看Android源代码

    总的来说,要在Eclipse中查看Android源代码,你需要正确的源码环境、Eclipse的SDK配置,以及一个指向源码的Android项目。通过这种方式,开发者不仅可以学习Android系统的内部工作原理,还能方便地进行调试和问题定位...

    eclipse中android源代码-点击系统封装的方法可以看到源代码

    在探讨“Eclipse中Android源代码—点击系统封装的方法可以看到源代码”这一主题时,我们首先需要理解几个关键概念:Eclipse集成开发环境(IDE)、Android操作系统、源代码以及系统封装的方法。 ### Eclipse IDE ...

    Android 4.1.2 SDK 源代码

    在Eclipse中直接引用Android 4.1.2 SDK源代码,开发者可以方便地查看源码,了解系统底层运作,这对于学习Android系统原理、调试系统级问题或进行定制化开发非常有帮助。同时,源代码的使用也便于开发者学习最佳实践...

    在Eclipse里关联android源代码的三种方式

    通过以上三种方法,开发者可以在Eclipse环境中查看和调试Android系统的源代码,这不仅有助于理解Android系统的工作原理,还能为自定义系统组件和解决问题提供便利。在进行源代码关联时,根据个人的需求和习惯选择最...

    Android SDK 4.2源代码

    在本文中,我们将详细探讨这个源代码包所包含的内容、如何使用Eclipse进行连接绑定,以及通过源码学习Android开发的关键知识点。 首先,Android SDK 4.2源代码代表了Android操作系统的第17个版本,也被称为Jelly ...

    Android SDK 4.1源代码

    4. 使用ADT插件,可以在Eclipse中查看和编辑源代码,同时调试应用时可以跳转到系统函数的源码,有助于理解Android系统的内部工作流程。 四、源代码学习价值 1. 系统架构:通过源代码,可以了解Android系统的层次...

    android_sdk源代码(1.5)

    android的sdk源代码,绝对可用,eclipse下点击导入所下载的jar包即可使用,无需解压。

    在Eclipse里查看android源代码.pdf

    ### 如何在Eclipse中查看Android源代码 对于Android开发者来说,掌握如何查看和理解Android系统源代码是一项非常重要的技能。这不仅可以帮助我们更深入地理解Android系统的内部工作原理,还可以帮助我们在遇到某些...

    android sdk -19 源代码

    这里的"android sdk -19 源代码"指的是Android 4.4 KitKat版本的源码,对应API级别19。这个版本在2013年发布,引入了许多新特性,提升了性能,并对用户体验进行了优化。 源代码对于开发者来说非常重要,因为它允许...

    android4.1 关联eclipse 源代码

    这将涉及到安装必要的工具,如repo和Git,并使用以下命令初始化和拉取源代码: ``` $ repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.2_r1 $ repo sync ``` 下载源代码可能需要...

    android4.0关联eclipse源代码

    为了便于开发,Eclipse提供了ADT(Android Development Tools)插件,它允许开发者导入并关联Android SDK中的源代码,这样在编写代码时可以直接查看API的源码,加深理解并解决调试问题。 源代码是软件开发的基础,...

    Eclipse跟踪调试Android源代码

    本文将详细介绍如何使用Eclipse来跟踪和调试Android源代码,包括应用层和框架层,这对于提升开发效率和解决复杂问题至关重要。 1. **导入Android源码到Eclipse** - 首先,你需要获取Android源码,通常可以从...

    Android开发环境搭建全程演示(jdk+eclipse+android sdk

    2. 配置Android SDK路径:在Eclipse的"Window"菜单中选择"Preferences",然后在左侧树形结构中找到"Android",设置SDK的安装路径。 3. 更新SDK版本:通过"Window"菜单选择"Android SDK and AVD Manager",在此界面中...

    android+Eclipse+ADT+SDK

    当你在Eclipse中创建一个Android项目时,ADT会利用SDK中的资源和工具,生成项目的结构,设置默认的AndroidManifest.xml文件,以及初始化必要的源代码和资源文件。在编写代码过程中,ADT会根据SDK提供的API信息提供...

    解决eclipse中查看android工程代码出现android.jar has no source attachment

    总的来说,"android.jar has no source attachment"的问题主要源于Eclipse与Android SDK源代码的关联不正确。通过检查和更新SDK,以及正确设置项目属性,我们可以轻松地解决这个问题,从而更好地理解和调试Android...

    如何使用Eclipse来开发Android

    【标签】:“源码”和“工具”表明这篇博文可能涵盖了Android应用的源代码管理和Eclipse作为开发工具的使用。 综上所述,学习如何在Eclipse中开发Android应用需要理解Eclipse的基本操作,安装和配置必要的Android...

    android_sdk源代码(4.0.3)

    android的sdk源代码,绝对可用,eclipse下点击导入所下载的jar包即可使用,无需解压。

    android-20 sdk source

    导入Android-20 SDK源代码后,开发者可以通过查看源码、设置断点等方式进行深入学习和调试。 2. **IntelliJ IDEA**:这是JetBrains公司出品的一个强大的Java IDE,也支持Android开发。通过Android插件,开发者可以...

Global site tag (gtag.js) - Google Analytics