【问题标题】:How to find every version of android support libraries source code如何找到每个版本的android支持库源代码
【发布时间】:2016-09-10 12:46:42
【问题描述】:

我遇到了一些问题,所以我想找到 Android 支持库的源代码。比如我想阅读support.appcompat-v7中19.0.1和20.0.0版本的ActionBarActivity.java源码,找出两个版本的区别。

我找到了 https://github.com/android/platform_frameworks_base ,但该版本已命名为 android-x.x.x_rxx 但不像 19.0.1 。

【问题讨论】:

  • 我不确定我是否看到 Github 存储库的问题。分支对应于 Android 版本,直接映射到 API 版本号。例如,Marshmallow 是 API 23
  • @cricket_007 问题是我使用支持库 v.23.4,并且 repo 有像“android-6.0.1 r49”和“marshmallow-dr1.5-release”这样的参考:-(
  • 我已经跟踪到我的 23.4 堆栈跟踪来自 3 月 30 日的提交 73ec51559a791cf9fe5cfe624eee8d82b9777fb5 ......但是这个提交只涉及 RecyclerView,并且下一个 RecyclerView 提交(不再匹配堆栈跟踪)是在同一个天,所以我什至不能自己标记来源。
  • @OrcJMR 请参阅stackoverflow.com/a/39314296/746347 /extras/android/m2repository 包含*-sources.jar 的每个支持库版本。

标签: android android-support-library


【解决方案1】:

您可以从此处按版本下载预构建的源 jar https://android.googlesource.com/platform/prebuilts/maven_repo/android/+/master/com/android/support/appcompat-v7

虽然他们似乎已经删除了 22.1.0 之前的任何资源。

或者,您可以在此处获取特定文件的所有更改 https://android.googlesource.com/platform/frameworks/support/+log/master/v7/appcompat/src/android/support/v7/app/ActionBarActivity.java

【讨论】:

【解决方案2】:

您可以浏览到您的 sdk 目录和支持目录,您可以在其中找到 aar 文件 - 我所在的 mac 上

/Users/username/Library/Android/sdk/extras/android/m2repository/com/android/support/

确保您拥有想要查看的版本。 然后将 gradle.build 中的版本更改为您需要的版本。 然后同步项目, 现在将android studio的资源管理器模式更改为项目模式。

现在您可以浏览外部库以查看源代码。

【讨论】:

  • Thx @Sanjeet Ajnabee ,这是一个解决方案,但需要 IDE 。
【解决方案3】:

如此简单 只需创建一个版本为 19.0.1 的项目并创建另一个版本为 20.0.0 的项目,然后从 actionbaractivity 扩展您的活动,否则,按住 ctrl 键并单击 actionbaractivity 。

【讨论】:

    【解决方案4】:

    如果您已经下载了源代码,您应该能够在这三个位置之一找到它们的版本(使用 OSX,但应该足够熟悉以推断 OS 位置)

    Android 源代码

    ~/Library/Android/sdk/sources/

    Maven 本地仓库

    ~/.m2/repository

    Gradle 缓存(位置可能是不同的名称)

    ~/.gradle/caches/modules-2/files-2.1

    使用其中任何一个,对您需要的源代码进行比较应该不会太难。

    【讨论】:

    • ~/Library/Android/sdk/sources 包含 Android SDK 版本而非 Android 支持库版本的源代码。 Mavel Local Repo 和 Gradle Cache 不包含源代码。
    • @mixel Maven 本地存储库和 Gradle 缓存将包含作为 jar 文件的源代码。
    【解决方案5】:

    如果您不想使用任何 IDE,您只能从以下网站下载命令行工具 https://developer.android.com/studio/index.html#downloads

    此示例适用于 OSX:

    1. 下载命令行工具后,您可以使用以下命令运行SDK Manager:“sh android”,可能需要在命令前添加“sudo”。
    2. SDK 管理器将显示
    3. 为 Android SDK 或您要下载的任何软件包选择源
    4. 点击按钮安装,并接受许可。
    5. 下载成功后,你可以导航到你放SDK的文件夹,然后去sources导航到ActionBarActivity或者你想要的任何sources

    【讨论】:

    • 你没有回答这个问题。 OP 正在搜索两个不同版本的支持库的来源,并希望找到它们之间的差异。
    • @mixel 怎么没有回答?下载我们想要的支持库后,我们就有了源代码,比如 android Kitkat 的支持库位于 android-19 文件夹中,或者 android Marshmallow 的支持库位于 android-23 文件夹中。它几乎反映了 OP 想要的版本本身。从那里我们可以使用任何我们想要检查每个源代码的不同的文本编辑器,甚至可以使用终端中的“diff”命令。
    • 因为 OP 希望查看支持库版本和 Android 版本之间的差异。 19.0.1 和 20.0.0 不是 Android API 级别,而是支持库版本。实际上,支持库的来源可以在 extras/android/m2repository*-sources.jar 档案中找到。
    【解决方案6】:

    可以使用grepcode查看Android源码

    例如,您想在 support.appcompat-v7 中查看版本 19.0.1 和 20.0.0 中的 ActionBarActivity.java 源代码。

    Wiki 看到,API 19.0.1 将是 Android 4.4 版

    现在您可以从grepcode 中选择所需的安卓版本。例如可以在 grepcode here 上看到 Android 4.4 (Api 19) 源代码

    接下来你可以看到ActionBarActivity inside support package的源代码

    同样,您可以在没有 IDE 的情况下查看不同构建版本的 Android 源代码。

    【讨论】:

    • 19.0.1 不是 Android 的 API 版本。它是 Android 支持库的版本。它与 Android 具有完全独立的版本控制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 2020-10-13
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多