如何在Android Studio中构建部分Android源码而不克隆整个Android库?

问题描述 投票:0回答:1

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

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

在过去,我的做法是简单地将相关的Java文件从源代码中逐一复制到Android Studio中,将它们重命名,并将它们的包名改为我自己的包名......并修复任何损坏的依赖关系。

这种方法对于简单的类来说是可行的,例如 RadioButton.java但我现在试图 "导入 "的 "部分 "模块是 tts包中的所有文件.

所以,我发现 TextToSpeech.java 在线,将其复制并粘贴到Android Studio中,将其重命名为MyTTS.java,并将包名改为我的......然后开始查看 "未解决的符号",并根据需要重复这个过程......

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

android android-studio build android-source
1个回答
0
投票

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

要克隆最小数量的Android源码,请确保你为repo命令指定一个特定的分支,限制git深度为1,并指定一个 git部分克隆. 这些将加快你的克隆,但它仍然需要一些时间.E.g.

$ 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项目文件. 请注意,每次打开项目时,索引将需要很长的时间来完成。

© www.soinside.com 2019 - 2024. All rights reserved.