【问题标题】:How to get source code for android.jar如何获取 android.jar 的源代码
【发布时间】:2013-08-10 04:54:41
【问题描述】:

我实际上并没有在 android 设备上工作,但我想将 android java std lib 用于我的项目。我在这里从 android ADT 中提取 android java std lib:

http://developer.android.com/sdk/index.html

解压包后在

adt-bundle-windows-x86_64-20130729\sdk\platforms\android-18\android.jar

但是,当我在 Intellij 中打开它时,它没有显示任何源代码:所有方法都只是标记为“已编译代码”

有什么方法可以获取android.jar 的源代码(在 jar 中或以其他方式),以便我可以将其连接到 IDE,以便我可以很好地浏览标准库的源代码?我翻遍了 sdk 下载包,没有找到任何东西。

-好义

【问题讨论】:

  • 当我用 VIM 打开 andorid.jar 时,它显示了 10k 行代码!它们大多是 xmls 和 java-classes 的路径。
  • 只是出于好奇,你在用不涉及安卓设备的安卓做什么?
  • @supersam654 我想将它用作我的 Metascala JVM 的或多或少兼容、不那么臃肿的 Java 类库

标签: java android eclipse intellij-idea


【解决方案1】:

但我想将 android java std lib 用于我的项目

我不知道你为什么认为这会起作用,就像尝试在 Linux 上使用 Windows DLL 一样。

有什么方法可以获取 android.jar 的源代码(在 jar 中或以其他方式),以便我可以将它连接到 IDE 以便我可以很好地浏览标准库的源代码?

Android 的源代码位于the Android Open Source Projectandroid.jar 的源代码主要在 platform_frameworks_base 存储库 (GitHub mirror) 中,但 JAR 实际上是固件构建的输出。

【讨论】:

  • 这看起来像我想要的;但有一个问题:您知道该仓库中的 java.lang.*、java.util.* 等类在哪里吗?我现在正在挖掘,没有发现任何东西
  • @LiHaoyi:“你知道 java.lang.*、java.util.* 等类在那个 repo 中的位置吗?” -- 好吧,既然你的 JVM 中已经有了这些,我不太清楚你需要 Android 做什么。无论如何,对于单个类,安装 Roman Nurik 的 Chrome 扩展程序会更简单,它会向每个 developer.android.com JavaDocs 页面添加“查看源代码”链接。例如,该扩展在此处显示String 的定义:android.googlesource.com/platform/libcore/+/refs/heads/master/…
【解决方案2】:

在您的 Android SDK 根目录中,转到 sources 文件夹。您可以在此处找到已下载的不同平台的源文件。

注意:这将为您提供 Android 库的 Java 代码,例如 Activity

【讨论】:

  • 谢谢!我在我的“Android SDK Manager”中选择了下载源,但是下载完成后我找不到它的位置。现在我找到了!
【解决方案3】:

解压 jar 远比您需要担心的要多。 Android 是开源,因此您可以在线获取所需的一切。首先,您可以浏览Android's GitHub account 上的大部分源代码,或下载Android Open Source Project website 上的源代码树。您还可以在GrepCode 上查看大部分(如果不是全部)来源。

如果你真的想麻烦解压jar和反编译源码,可以使用JD-GUI

【讨论】:

  • 链接 GrepCode 仅包含 5.1.1 以下的 andoid.jar。有没有办法获取 android version-6 的 jar?
【解决方案4】:

当你使用 eclipse 时,使用

jadclips

它可以在 Eclipse 中提取任何 jar,您可以查看任何源代码而无需下载,也无需互联网。它还可以导出源代码,作为开发人员,它对你的帮助最大。 :-> link to download

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 2012-08-19
    相关资源
    最近更新 更多