aapt2 工具介绍
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了aapt2 工具介绍相关的知识,希望对你有一定的参考价值。
参考技术Aaapt 是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 工具介绍的主要内容,如果未能解决你的问题,请参考以下文章
Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: 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