好吧,我自己想出来了。这个过程很丑陋,所以难怪谷歌开发人员没有关于它的信息,也许他们对这个过程感到羞耻,更愿意自己保留这个 :D 如果有更好的方法,请告诉我。
首先,如果您只是使用“make”构建 Android,您将不会在 out 目录中有 aar 文件,只有 jars(可能有一些小例外)。你需要做的是“制作”例如“make SettingsLib”(很奇怪,但这是目前的情况),这将在此处另外生成 aar:
out/soong/.intermediates/frameworks/base/packages/SettingsLib/SettingsLib/android_common/SettingsLib.aar
但这还没有结束……如果您解压并比较 SettingsLib.jar 和 SettingsLib.aar,您会注意到 jar 包含:
META-INF, androidx, com
而 aar 包含:
META-INF, AndroidManifest.xml, classes.jar, R.txt
但是......如果你打开谷歌放入源代码的“魔法”aar,例如prebuilts/sdk/current/aaos-libs/car-apps-common.aar你会注意到它还包含资源目录:
META-INF, res, AndroidManifest.xml, classes.jar, R.txt
所以你需要做的是解压缩生成的 aar(在本例中为 SettingsLib.aar),然后复制粘贴资源(在本例中为 frameworks/base/packages/SettingsLib/res),再次压缩文件,将扩展名更改为 .aar最后资源也可以从 xml 文件中获得。
您可能还会遇到一些重复字符串或二进制资源与正常资源冲突的问题,并且您可能需要在重建时清理项目,但除此之外它应该可以工作。