aaptOptions——安卓gradle

目錄
1、前言
2、aaptOptions 結構簡析
3、aaptOptions 屬性
4、寫在最後
android

1、前言

今天進行分享 aaptOptions 配置。aapt 全稱爲 Android Asset Packaging Tool,即爲Android資源打包工具。能夠經過其來進行配置打包的細節。git

2、aaptOptions 結構簡析

一、存在形式

會映射爲 com.android.build.gradle.internal.dsl.aaptOptions 類。該類比較簡單,沒有繼承任何類github

二、所屬位置

android{
	aaptOptions{
		...
	}
}
複製代碼

3、aaptOptions 屬性

一、additionalParameters

  • 類型:List< String >
  • 描述:給 aapt 執行時添加額外參數,添加的參數可經過 aapt --help 進行查看。
  • 使用:

舉個例子,進行更改包名算法

aaptOptions{
	// 會將包名更改成 com.zinc.test
	additionalParameters '--rename-manifest-package','com.zinc.test'
}
複製代碼

AndroidManifest.xml 文件以下,包名爲 com.zinc.gradlestudy app

在終端運行 ./gradlew clean aR,進行運行編譯,編譯完的包以下所示,包名更改成 com.zinc.test

二、 cruncherProcesses

  • 類型:int
  • 描述:設置處理的線程數。
  • 使用:
aaptOptions{
	cruncherProcesses 4
}
複製代碼

三、failOnMissingConfigEntry

  • 類型:boolean
  • 描述:設置是否沒法找到配置條目,則強制aapt返回錯誤。
  • 使用:
aaptOptions{
	failOnMissingConfigEntry true
}
複製代碼

四、ignoreAssets

  • 類型:boolean
  • 描述:設置忽略的資源
  • 使用:
aaptOptions{
	// 忽略掉 png 後綴的圖像,只會排除 assets 下的資源,res下的資源不會排除
	ignoreAssets "*.png"
}
複製代碼

使用了上面的配置以後,使用工具

./gradlew app:clean app:aR
複製代碼

進行打包,包中內容以下,t121212.png 的圖片以 'png' 結尾則被過濾掉 gradle

五、ignoreAssetsPattern

  • 類型:boolean
  • 描述:設置忽略的資源
  • 使用:
aaptOptions{
	// 忽略掉 png 後綴的圖像,只會排除 res 下的資源,assets下的資源不會排除
	ignoreAssetsPattern '*.png'
}
複製代碼

ignoreAssets 和 ignoreAssetsPattern 區別 從源碼角度來看,二者是同樣的,以下圖所示(AaptOptions 的源碼段)setIgnoreAssets 方法最終調用了 setIgnoreAssetsPattern。而 getIgnoreAssets 和 getIgnoreAssetsPattern 返回的字段都爲 ignoreAssetsPattern。 ui

六、noCompress

  • 類型:Collection< String >
  • 描述:是否對資源進行壓縮,默認不對"jpg"、"png"壓縮。若是傳入'',則代表所有資源不會進行壓縮。壓縮後的資源能夠經過 aapt l -v apk路徑 進行查看壓縮的細節。
  • 使用:
aaptOptions{
    // 不對 bat 進行壓縮
	noCompress '.bat'
}
複製代碼

不由用壓縮以前,默認會對 「bat」 後綴的文件進行壓縮。以下圖,使用了 DEFLATE 算法進行壓縮,壓縮比率11%。 spa

禁用壓縮以後,能夠看到 同一文件 已經轉爲 store,壓縮比率爲0%

4、寫在最後

Gradle項目地址:Github傳送門 (若是對你有所幫助或喜歡的話,賞個star吧,碼字不易,請多多支持)線程

本篇博文的 aaptOptions 配置,請進傳送門

若是以爲本篇博文對你有所啓發或是解決了困惑,給個贊或關注我呀,小盆友會繼續分享更多的優質文章。

或是請我喝杯咖啡吧,小盆友會更加信心百倍的寫下去

相關文章
相關標籤/搜索