原理
在項目編譯期間遍歷intermediates/res下的圖片資源,對于符合壓縮條件的進(jìn)行webp壓縮,不符合的進(jìn)行簡單的png或者jpg壓縮。
實現(xiàn)思路
- 排除icon圖片 解析AndroidManifest.xml 獲得icon(google不推薦對icon圖標(biāo)轉(zhuǎn)webp)
- 獲得需要打包的圖片資源,通過android gradle 插件 api獲得預(yù)處理資源目錄 build/intermediates/res/merged
- 遍歷res目錄獲得所有圖片,根據(jù)minSdkVersion選擇壓縮/轉(zhuǎn)換 圖片
限制:不能開啟aapt2,aapt2目前對合并的資源做了除了,導(dǎo)致遍歷時無法識別到對于資源。(android-gradle 3.0.0之后: android.enableAapt2=false)
image.png
目前demo已經(jīng)實現(xiàn),但是前提是不開啟aapt2的情況下,aapt2所做的事情可以查看相應(yīng)文檔:https://developer.android.com/studio/command-line/aapt2
