zoukankan      html  css  js  c++  java
  • 如何在Eclipse中浏览Android源码

    Google的Android SDK包括了android.jar,这个Jar文件包含了Android公有API类文件。他们还提供了一个Eclipse插件,这使得开始Android上的开发相当简单。然而,你却不能找到androidSrc.jar这个Jar文件,所以当你想要在Eclipse中看一下Android SDK源代码的时候,你会碰到如图所示的情况:

    如何在Eclipse中浏览Android源码

    开源来解救我们了!

    这个月早些时候,Google开放了Android的全部源码,顺便说一下,这相当大!不管怎样,为了在Eclipse中浏览源码,你需要访问http://source.android.com/,并且按照他们的说明用Git把每一样东西都拖下来。绝对值得拿出一个晚上做这件事,因为有完整的源码使得理解SDK的工作机制变得更容易了。

    (把源码)附加到Eclipse上……兄弟,没有想象中那么快

    既然你有了源代码,你可以告诉Eclipse它的位置在哪。我尝试过在android.jar上右击然后选择【属性】,但是欢迎我的是下面的截图:

    如何在Eclipse中浏览Android源码

    嗯哈……“当前的类路径入口点属于Android Library这个容器,它不允许用户在它的入口点修改源附件。”这真是让我陷入死循环了,因为我通常使用IDEA,所以我真的被这个难住了。因此,我深入研究了源代码,想要找出一个解决方案。

    测试源码

    当你下载了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";

    我成功啦!

    方案一

    基于以上的分析,你需要在你的Android SDK 安装目录中新建一个名为“sources”的目录。

    既然你有了这个目录,你可以在你从Git下载下来的Android源代码中找到这个恰当的源码目录。Google的测试指导建议这个目录命名为“mydroid”,所以这边我也用这个名称。公有SDK源码可以在这里找到:mydroid/frameworks/base/core/java。在那个文件夹下,你可以找到一个Android目录,它应该被拷贝到你的Android SDK 安装目录下的源码目录。

    你将会不得不在周遭做一些寻找来找到所有的源码,它散置于mydroid目录树的各个地方。最后,你应该可以得到这样一个目录结构:

    SDK_PATH

      | android.jar

      +--docs/...

      +--samples/...

      +--sources

           +--android

           |      ...accounts, annotation, app, bluetooth, etc...

           +--com/android/etc...

           +--dalvik/...

           +--java/...

           +--javax/...

    我抓取了所有的目录,但是我没有做很好的记录,所以我可能并且不注意地增加了太多。你可能仅仅需要公有SDK源码,但是我认为学习一下类实现也是很棒的。

    现在当我在Android SDK类中浏览时,我看到了源码:

    如何在Eclipse中浏览Android源码

    方案二

    如果你不愿意拷贝(或者链接)所有需要的源码目录到你的SDK目录,你也可以创建一个Eclipse用户库。首先,我试图创建我自己的包含android.jar的用户库,但是Eclipse抱怨说那会成为一个重复的Jar文件。所以,我挑选了任意一个Jar文件作为我的用户库,然后开始附加所有的Android源目录到那个库文件。

    我的用户库似乎可以起作用,但是我更喜欢复制源目录的方式,这样无需在每次新建工程的时候记得增加用户库。

    原文: http://www.linuxidc.com/Linux/2011-09/43200.htm

  • 相关阅读:
    mybatis Result Maps collection already contains value for com.ebways.dictionary.dao.impl.PtInfoDaoImpl.beanMap
    spring mvc 重定向加传参
    http apr 8080 exec 3解决
    jsp调用java方法 function taglib
    java读取xml文件
    jsp自定义标签(时间格式化包括Long转时间)
    JAVA-JSP内置对象之request获得所有的参数名称
    JAVA-JSP内置对象之request对象参数
    JAVA-JSP内置对象之移除属性
    JAVA-JSP内置对象之application范围
  • 原文地址:https://www.cnblogs.com/veins/p/3714446.html
Copyright © 2011-2022 走看看