本文以實例講述了過濾Android工程中多余資源文件的解決方法,很有實用價值!具體描述如下:
很多開發人員在Android項目開發過程中經常會遇到這樣的情況:界面開發人員發布了一個新版本的資源包,不過有的圖片名稱改了,有的圖片刪掉了,可是在實現的時候開發人員只是把新的資源覆蓋到原來的資源文件夾中,隨著版本的發布,在drawable或values中積累的無用資源越來越多,直到最后發布正式版的時候再想要刪除這些多余的文件,于是不得不一個一個文件檢查看是否有用,再決定要不要刪除之。
有鑒于此,很有必要將這個檢測的過程自動化!
處理這一類問題大家首先想到的應該就是shell腳本,下面是一段使用shell腳本來自動檢測文件有沒有用到,并實現自動刪除沒有用到的文件的功能:
#!/bin/shresfile=result.txt#drawdir=res/layoutdrawdir=res/drawable-hdpitmpdrawfile="tmpdraw.txt"#clear tmp fileecho "" > $tmpdrawfileecho "" > $resfilels $drawdir > $tmpdrawfile#ls $tmpdrawfilecat $tmpdrawfile | while read linedofilename=`echo $line | sed 's/..*//'`#echo $filename#start to search"grepDir=./res#grepMode=R.layout.$filename#grepDir=./comresult=`grep -r $grepMode $grepDir`if [ "$result" == "" ]thenecho $lineecho $line >> $resfilerm -f $drawdir/$line#else# echo "----------------"fidonerm -f $tmpdrawfile
上面的代碼很簡單,首先將drawable(或者你可以改成任意目錄)下的所有文件列出來,然后在整個目錄中遍歷,對每個文件檢測有沒有‘@drawable/$filename'這種格式的用法(你可以自己改成任意格式),如果沒有使用到的話,就將文件刪除。使用的時候需要將這個腳本放在跟res同級的目錄。
這段代碼也可以用在其他任何需要檢測出未使用/已使用文件的地方,只要將對應的目錄和匹配模式修改一下就可以了,或者如果為了通用,可以將所有配置寫在一個配置文件,也可以將配置作為參數傳遞進去。
新聞熱點
疑難解答
圖片精選