如何使用aapt2,文档在哪里?

我使用aapt p打包资源并生成R.java

但是当我升级到Android 24时,我find了aapt2.exe

我应该使用aapt2.exe吗? 我该如何使用它? 我找不到任何关于它的文档。

    AAPT和AAPT2之间的工作方式有很大差异。

    编译和链接

    除了新function之外,AAPT2背后的主要思想是将“包”步骤分为两部分:’compile’和’link’。 它提高了性能,因为如果只有一个文件发生更改,您只需要重新编译该文件并使用’link’命令链接所有中间文件。

    更具限制性

    AAPT2试图尽早捕获大多数错误。 这就是为什么当从AAPT切换到AAPT2时,您可能会遇到许多错误,指出某些元素嵌套不正确或某些引用不正确。 有关Android Studio 3.0文档的新限制性的更多信息,请参阅。

    用法

    Android Studio 3.0默认启用AAPT2(使用Android Gradle Plugin 3.0.0)。 但是,如果要在自己的脚本中使用AAPT2,则需要更改处理资源的方式。 对于使用AAPT的’package’命令,您将使用-S传递资源目录。 使用AAPT2,您需要首先使用’compile命令编译每个资源,然后仅使用-R标志传递所有已编译的文件。
    例如:

     aapt package -S app/src/main/res/ ... 

    而是使用:

     aapt2 compile -o compiled/res/ app/src/main/res/values/values.xml aapt2 compile -o compiled/res/ app/src/main/res/drawable/myImage.png --no-crunch ... aapt2 link -R compiled/res/values_values.arsc.flat -R compiled/res/drawable_myImage.flat ... 

    标志使用方面存在更多差异,例如,在“编译”步骤期间,每个文件都使用“–pseudo-localize”和“–no-crunch”标志。 有关AAPT2标志types的完整信息:

     aapt2 compile -h aapt2 link -h 

    注意:将此视为Izabela答案的补充

    这是(截至2018年2月)相当差的文件。 Android O中Overlay Manager Service的作者最近介绍了他们的工作,并在他们的幻灯片中讨论了AAPT2(请参阅幻灯片12-14以获取上下文)。

    此外,如有疑问,请查看源代码: https : //android.googlesource.com/platform/frameworks/base/+/android-7.0.0_r7/tools/aapt2 。

    除了上面给出的答案,AAPT2的文档终于出来了。 你可以在这里find文档。 如果您发现任何错误,请报告针对这些错误的错误。