【问题标题】:How to build a portion of Android source in Android Studio without cloning entire android library?如何在不克隆整个 android 库的情况下在 Android Studio 中构建部分 Android 源代码?
【发布时间】:2020-09-12 18:58:54
【问题描述】:

我试图更好地理解 Android 源代码的一部分。

但我不只是阅读它,而是希望在 Android Studio 中拥有它,并能够对其进行修改、重新构建、运行等。

在过去,我通过简单地将有问题的 Java 文件/s 从源代码中一个一个地复制到 Android Studio 中,重命名它们并将它们的包名称更改为我自己的...并修复任何损坏的文件来完成此操作依赖关系。

这种处理方式适用于RadioButton.java 等简单类,但我现在尝试“导入”的“部分”/模块是all the files in the tts package

所以,我在网上找到了TextToSpeech.java,将其复制并粘贴到 Android Studio 中,将其重命名为 MyTTS.java 并将包名更改为我的...并开始检查“未解析的符号”并根据需要重复该过程...

但是,由于这个 tts 包在 Android 代码树中“更深”,我在解决损坏的依赖项(非公共组件、aidl 文件、注释等!)时遇到了一些障碍,我可以只是提出个别问题,但在我尝试之前,我想知道是否已经有一些既定的方法可以做到这一点,而不涉及将整个 Android 库导入 Android Studio)。

【问题讨论】:

    标签: android android-studio build android-source


    【解决方案1】:

    您最好的选择可能是克隆 Android 源代码存储库,限制您下载的内容,然后使用 idegen.sh 命令生成一个 Android Studio 项目,让您可以从 Android Studio 中完全访问源代码。

    要克隆最少数量的 Android 源代码,请确保为 repo 命令指定特定分支,将 git 深度限制为 1 并指定 git partial clone。这些将加快您的克隆速度,但仍需要一些时间。 例如

    $ repo init --depth=1 -u https://android.googlesource.com/platform/manifest -b android-9.0.0_r46 --partial-clone
    ...
    $ repo sync -j 4
    ...
    

    下载后,您可以运行 idegen.sh 命令来生成您的 Android Studio 项目文件:

    $ source build/envsetup.sh
    ...
    $ lunch aosp_x86-eng
    ...
    $ mmm development/tools/idegen/
    ...
    $ development/tools/idegen/idegen.sh
    ...
    

    然后,您会在 AOSP 树的顶部找到 Android Studio 项目文件。请注意,每次打开项目时,索引都需要很长时间才能完成。

    【讨论】:

      猜你喜欢
      • 2018-06-11
      • 1970-01-01
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      • 2016-09-27
      • 2015-03-04
      • 2014-02-20
      相关资源
      最近更新 更多