工程無效圖片清理工具(iOS&Android)
背景
隨著業(yè)務(wù)版本迭代,開發(fā)人員不斷增加或研發(fā)同學(xué)隨需求不斷輪轉(zhuǎn),工程中會出現(xiàn)許多沒有使用的圖片。這些圖片若不清理,會常駐于工程。長期如此不僅會提高每次的編譯時拷貝時間,且會增加應(yīng)用包大小,浪費(fèi)用戶下載流量,從而影響下載量。so,定期檢查并刪除工程失效圖片是有必要的。
如何解決
笨笨的 - 傳統(tǒng)做法
那么,如何檢查和刪除失效圖片呢?傳統(tǒng)方式是分給每個人n張圖片,每人做如下操作:
復(fù)制圖片名稱,在工程中搜索,查看是否有圖片的引用(而不是單純的圖片名稱),若有則刪除圖片。如此循環(huán)直到全部結(jié)束。
小清新 - 清理工具
Now,推薦一款無效圖片搜索Python小工具。下載請點(diǎn)擊Github地址
<mark>工具的大致實(shí)現(xiàn)原理:</mark> 模擬傳統(tǒng)的過程,將過程自動化。先搜索出所有的png圖片,合成數(shù)組。循環(huán)遍歷圖片名稱數(shù)組,針對iOS及Android平臺對圖片使用的不同方式生成不同的搜索匹配正則,利用正則在整個工程代碼內(nèi)做搜索。正則匹配沒有考慮自己拼接的圖片名稱,但一般使用拼接方式圖片名稱內(nèi)都會有數(shù)組,所以搜索不到的圖片如果包含數(shù)組,會強(qiáng)提示出來;并且程序也不會刪除此類圖片。
腳本內(nèi)使用的搜索工具是相對比較快的 AG: The Silver Searcher: Better than Ack 搜索。所以如果提示ag找不到,請執(zhí)行brew install ag
安裝。
Github內(nèi)有它的介紹,為方便查看,整理下里邊內(nèi)容。工具主要有以下幾個特點(diǎn):
- 可以搜索xib文件;
- 同時支持Android及iOS雙系統(tǒng)png圖片搜索;
- 顯示統(tǒng)計未使用圖片名稱及其總大小,用于評估;
- 支持刪除搜出來的未使用圖片(iOS包括imageset),且不會刪除可能誤搜的圖片。會先保存刪除的圖片,還會輸出刪除位置和復(fù)制的位置;
- iOS單倍圖提示。因單倍圖已不需要存在或者改成雙倍或三倍圖,需要警示;
- 可能誤搜圖片提示。某些圖片寫法是拼接的方式,這些圖片基本都是帶數(shù)字的,會被提示出來;
- iOS屏蔽應(yīng)用icon和launch。icon一般不會出現(xiàn)的代碼中,所以排除它;
- 文件命名不正確提示。比如,icon@2x-0.png;
使用方法
Usage: python find_unused_pics.py [optinos] image_path search_path
Options:
-h, --help show this help message and exit
-a, --android Search in Android project.(表明是搜索安卓工程)
-d, --delete Delete the unused pics.(表明搜索到即刪除掉,且會保存刪除的圖片以備回滾)
例子
// iOS文件夾搜索
python find_unused_pics.py /Users/Somebody/Downloads/app/res /Users/Somebody/Downloads/app
// Android文件夾搜索
python find_unused_pics.py -a /Users/Somebody/Downloads/app/res /Users/Somebody/Downloads/app
// iOS文件夾搜索 + 刪除
python find_unused_pics.py -d /Users/Somebody/Downloads/app/res /Users/Somebody/Downloads/app
// Android文件夾搜索 + 刪除
python find_unused_pics.py -ad /Users/Somebody/Downloads/app/res /Users/Somebody/Downloads/app
總結(jié)
懶是人類進(jìn)步的階梯,讓我們解放機(jī)械復(fù)制粘貼的雙手,騰出時間做更有意義,更有趣的事情~
目前清理工具可能還有許多不足之處,歡迎大家提出意見或自己修改提交~~