aapt2 工具介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了aapt2 工具介绍相关的知识,希望对你有一定的参考价值。

参考技术A

aapt 是android Asset Packaging Tool的缩写,是编译和打包资源的工具。而aapt2是在aapt上做了优化。Android Gradle Plugin 3.0.0或者更高版本默认开启aapt2。当然也可以在配置文件中手动关闭aapt2。

一般打包过程情况下,都是由gradle自动调用aapt2,将资源文件编译成二进制文件。当然,我们也可以使用命令行进行手动打包资源。aapt2打包资源的流程如下图。

aapt2将原先的资源编译打包过程拆分成了两部分,即编译和链接。

这种方式可以很好的提升资源的编译性能,比如只有一个资源文件发送改变时,你只需要重新编译改变的文件,然后将其与其他未改变的资源进行链接即可。而之前的aapt是将所有资源进行merge,merge完后将所有资源进行编译,产生一个 资源ap_ 文件,该文件是一个压缩包,这样带来的后果就是即使只改变了一个资源文件,也要进行全量编译。

aapt2支持编译所有的资源文件,并产生.flat格式的文件。

编译语法

下面我们在Android项目目录下,使用aapt2 命令行编译资源文件

可以在myBuild/目录下,找到values_strings.arsc.flat文件

可以在myBuild/目录下,找到mipmap-xhdpi_ic_launcher.png.flat文件

在链接阶段,aapt2首先合并编译阶段生成的文件,像二进制XML文件,处理后的PNG文件等,然后,将其打包成一个apk文件。此外,在此阶段可以生成其他辅助文件,如R.java和ProGuard规则文件。当然,此时生成的apk文件并不包含dex文件,也没有签名。

连接语法

常用link命令行参数

更多命令行可以参见 aapt2#link

在上一节,我们编译后得到两个文件values_strings.arsc.flat和mipmap-xhdpi_ic_launcher.png.flat文件。现在,我们使用aapt2 link命令将这两个文件打包到output.apk 中。

执行上述命令,即可在当前目录生成output.apk。

dump用于打印通过link命令产生的APK文件的资源和配置文件。可以使用以下命令将其打印到终端。

使用aapt2 dump命令将链接后生成的output.apk打印出来。

输出结果如下

以上是关于aapt2 工具介绍的主要内容,如果未能解决你的问题,请参考以下文章

使用命令行工具构建 Android

Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error:

Android studio 报错AAPT2 error

找不到 com.android.tools.build:aapt2:4.0.0-6051327 [重复]

Android项目打包遇com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details

永久解决AndroidStudio Aapt2的问题