android gradle aapt,aaptOptions——安卓gradle

目录

一、前言

二、aaptOptions 结构简析

三、aaptOptions 属性

四、写在最后

一、前言

今天进行分享 aaptOptions 配置。aapt 全称为 Android Asset Packaging Tool,即为Android资源打包工具。可以通过其来进行配置打包的细节。

二、aaptOptions 结构简析

1、存在形式

会映射为 com.android.build.gradle.internal.dsl.aaptOptions 类。该类比较简单,没有继承任何类

2、所属位置

android{

aaptOptions{

...

}

}

复制代码

三、aaptOptions 属性

1、additionalParameters

类型:List< String >

描述:给 aapt 执行时添加额外参数,添加的参数可通过 aapt --help 进行查看。

使用:

举个例子,进行更改包名

aaptOptions{

// 会将包名更改为 com.zinc.test

additionalParameters '--rename-manifest-package','com.zinc.test'

}

复制代码

AndroidManifest.xml 文件如下,包名为 com.zinc.gradlestudy

a47a99633322c6713aaf945a20c87792.png

在终端运行./gradlew clean aR,进行运行编译,编译完的包如下所示,包名更改为com.zinc.test

ae73da20f176ddbfbf695462be55f695.png

2、 cruncherProcesses

类型:int

描述:设置处理的线程数。

使用:

aaptOptions{

cruncherProcesses 4

}

复制代码

3、failOnMissingConfigEntry

类型:boolean

描述:设置是否无法找到配置条目,则强制aapt返回错误。

使用:

aaptOptions{

failOnMissingConfigEntry true

}

复制代码

4、ignoreAssets

类型:boolean

描述:设置忽略的资源

使用:

aaptOptions{

// 忽略掉 png 后缀的图像,只会排除 assets 下的资源,res下的资源不会排除

ignoreAssets "*.png"

}

复制代码

使用了上面的配置之后,使用

./gradlew app:clean app:aR

复制代码

进行打包,包中内容如下,t121212.png 的图片以 'png' 结尾则被过滤掉

3376e0db1d84516155deba147fe8418e.png

5、ignoreAssetsPattern

类型:boolean

描述:设置忽略的资源

使用:

aaptOptions{

// 忽略掉 png 后缀的图像,只会排除 res 下的资源,assets下的资源不会排除

ignoreAssetsPattern '*.png'

}

复制代码

ignoreAssets 和 ignoreAssetsPattern 区别

从源码角度来看,两者是一样的,如下图所示(AaptOptions 的源码段)setIgnoreAssets 方法最终调用了 setIgnoreAssetsPattern。而 getIgnoreAssets 和 getIgnoreAssetsPattern 返回的字段都为 ignoreAssetsPattern。

b5fc8b8d821cffec7c80536584f6206e.png

6、noCompress

类型:Collection< String >

描述:是否对资源进行压缩,默认不对"jpg"、"png"压缩。如果传入'',则表明全部资源不会进行压缩。压缩后的资源可以通过 aapt l -v apk路径 进行查看压缩的细节。

使用:

aaptOptions{

// 不对 bat 进行压缩

noCompress '.bat'

}

复制代码

不禁用压缩之前,默认会对 “bat” 后缀的文件进行压缩。如下图,使用了 DEFLATE 算法进行压缩,压缩比率11%。

9db4aa7237a39ca039c8efbbec1d1a72.png

禁用压缩之后,可以看到 同一文件 已经转为 store,压缩比率为0%

d09601ff5231493d7dec8cb33e7abd6e.png

四、写在最后

Gradle项目地址:Github传送门 (如果对你有所帮助或喜欢的话,赏个star吧,码字不易,请多多支持)

本篇博文的 aaptOptions 配置,请进传送门

如果觉得本篇博文对你有所启发或是解决了困惑,给个赞或关注公众号呀,小盆友会继续分享更多的优质文章。

或是请我喝杯咖啡吧,小盆友会更加信心百倍的写下去

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值