如何使用 aapt2,文档在哪里?
How to use aapt2, where is the documentation?
我已经使用aapt p
打包资源生成R.java
.
但是当我升级到Android 24时,我发现aapt2.exe
。
我应该使用 aapt2.exe
吗?我该如何使用它?我找不到任何关于它的文档。
AAPT 和 AAPT2 的工作方式有一些很大的不同。
编译并link
除了新功能外,AAPT2 的主要思想是将 'package' 步骤分为两部分:'compile' 和 'link'。它提高了性能,因为如果只有一个文件更改,您只需要使用 'link' 命令重新编译该文件和 link 所有中间文件。
更严格
AAPT2 尝试尽早发现大多数错误。这就是为什么当从 AAPT 切换到 AAPT2 时,您可能会遇到许多错误,指出某些元素嵌套不正确或某些引用不正确。有关新限制的更多信息,请参阅 Android Studio 3.0 documentation.
用法
Android Studio 3.0 默认启用 AAPT2(使用 Android Gradle 插件 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 ...
旗帜
标志的使用存在更多差异,例如,在 'compile' 步骤中,每个文件都使用了“--pseudo-localize”和“--no-crunch”标志。有关 AAPT2 标志类型的完整信息:
aapt2 compile -h
aapt2 link -h
Note: treat this as an addition to Izabela's answer
AndroidO 中 Overlay Manager Service 的作者介绍了他们的工作并谈论了 AAPT2in their slides (see slides 12-14 for context). The official documentation for this tool is now here (courtesy @Shrijana's )
另外,如有疑问,请查看源代码:https://android.googlesource.com/platform/frameworks/base/+/android-7.0.0_r7/tools/aapt2。
除了上面给出的答案之外,AAPT2 的文档终于出来了。您可以找到针对这些错误的文档 here. If you find any errors, please report a bug。
我已经使用aapt p
打包资源生成R.java
.
但是当我升级到Android 24时,我发现aapt2.exe
。
我应该使用 aapt2.exe
吗?我该如何使用它?我找不到任何关于它的文档。
AAPT 和 AAPT2 的工作方式有一些很大的不同。
编译并link
除了新功能外,AAPT2 的主要思想是将 'package' 步骤分为两部分:'compile' 和 'link'。它提高了性能,因为如果只有一个文件更改,您只需要使用 'link' 命令重新编译该文件和 link 所有中间文件。
更严格
AAPT2 尝试尽早发现大多数错误。这就是为什么当从 AAPT 切换到 AAPT2 时,您可能会遇到许多错误,指出某些元素嵌套不正确或某些引用不正确。有关新限制的更多信息,请参阅 Android Studio 3.0 documentation.
用法
Android Studio 3.0 默认启用 AAPT2(使用 Android Gradle 插件 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 ...
旗帜
标志的使用存在更多差异,例如,在 'compile' 步骤中,每个文件都使用了“--pseudo-localize”和“--no-crunch”标志。有关 AAPT2 标志类型的完整信息:
aapt2 compile -h
aapt2 link -h
Note: treat this as an addition to Izabela's answer
AndroidO 中 Overlay Manager Service 的作者介绍了他们的工作并谈论了 AAPT2in their slides (see slides 12-14 for context). The official documentation for this tool is now here (courtesy @Shrijana's
另外,如有疑问,请查看源代码:https://android.googlesource.com/platform/frameworks/base/+/android-7.0.0_r7/tools/aapt2。
除了上面给出的答案之外,AAPT2 的文档终于出来了。您可以找到针对这些错误的文档 here. If you find any errors, please report a bug。