AAPT2 命令使用

实用的AAPT 命令详解

当你来到这里,说明你aapt的命令使用也感到迷惑,那么我们一起学习下,以下都是一些实用性比较大的命令,没啥作用或者作用不大就没写出来了。感兴趣可以在看下官方文档(https://developer.android.com/studio/command-line/aapt2?hl=zh-cn#dump_syntax)

AAPT 简介

aapt 是一个apk资源构建工具,在SDK安装目录下的build-tools工具下,aapt2是aapt的升级版,对资源的检索有了更高的要求,避免资源配置不正确导致的问题。

编译命令:compile

不压缩png 图片(默认压缩)
–no-crunch
指定在当前目录下寻找资源文件
–dir
将使用早期版本的 AAPT 时允许的错误视为警告。(忽略不正确的配置or资源)
–legacy
生成默认字符串的伪本地化版本,如 en-XA 和 en-XB。(基本不需要)
–pseudo-localize
输出日志信息
-v

关联命令:link

指定AndroidManifest.xml
–manifest
指定android.jar
-I
指定Assets目录
-A
传递要链接的单个 .flat 文件 (基本不使用)
-R
指定要用于应用的软件包 ID(值必须在0x7f-0xff,没啥用)
–package-id
指定生成R.java 文件目录(跟随Androidmanifest.xml的包名设置)
–java
生成相同的R.java文件(但是包名不同)
–extra-packages

查看包体信息:dump

输出从 APK 的清单中提取的基本信息。
badging
输出 APK 中的资源使用的每项配置(如v21、 v24、mdpi-v4、hdpi-v4)
configurations
输出从 APK 的清单提取的权限。
permissions
输出 APK 的资源表字符串池的内容。所有的资源索引名(res/drawable/ic_launcher_background.xml,Aapt)
strings
查看包名
packagename

实例:

基础命令编译资源文件
aapt2 compile --dir ./aapt/res -o output/ -v

编译的资源添加到压缩文件夹(在link时如果不采用zip文件方式,需要一个个.flat添加)
aapt2 compile --dir ./aapt/res -o output/res.zip -v

单个文件(不知为何没有输出文件)
aapt2 compile ./aapt/res/values/strings.xml -o output/

link资源,并且生成apk(apk不包含dex文件,也会生成R.java)
aapt2 link -A ./aapt/assets --package-id 0xff --extra-packages com.my.test ./output/res.zip -I Local\Android\Sdk\platforms\android-30\android.jar -o ./outputfilename.apk --manifest ./aapt/AndroidManifest.xml --java ./test -v

查看apk信息(命令有先后顺序)
aapt2 dump badging outputfilename.apk

问题:

1、output/: error: 设备不识别此命令。 (22).
答:需要先创建一个输出目录 output,他不会自动创建

2、resource file cannot be a directory. bad resource path.
资源的目录不正确,相对路径需要加 ./

3、failed to open file: 数据无效。 (13).
资源路径搞错

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值