隨著業(yè)務(wù)迭代笆凌,應(yīng)用中的資源會(huì)越來越多,同時(shí)也會(huì)有一些老舊無用資源文件不再被引用绞愚。及時(shí)清理無用資源可以有效防止包體積增長過快郎任。下面介紹如何在Android Studio中查找無用資源并進(jìn)行刪除。
1. 在工程目錄中點(diǎn)擊右鍵番官,選擇Analyze->Run Inspection by Name…
清理無用資源
2. 在彈出的對(duì)話框中輸入unused resource庐完,并點(diǎn)擊回車鍵
搜索unused resource
3. 選擇搜索范圍,然后點(diǎn)擊OK鍵徘熔,即可開始自動(dòng)搜索门躯。
選擇搜索范圍
建議總是選擇“Whole project”選項(xiàng)。假如選擇指定module酷师,那該module中如果有資源僅被上層模塊引用讶凉,將會(huì)在這種模式下被標(biāo)記為無用資源染乌,從而造成清理錯(cuò)誤。
4. 下面是運(yùn)行結(jié)果頁面懂讯。
無用資源結(jié)果頁面
右側(cè)有一個(gè)按鈕“Apply quick fixes to all the problems”荷憋。點(diǎn)擊該按鈕后,IDE會(huì)自動(dòng)將搜索到的所有無用資源一起刪除褐望。
5. 關(guān)于反射引用資源的問題
在某些情況下勒庄,代碼中可能會(huì)通過反射的方式引用特定資源。這種情況下譬挚,如果資源被刪除锅铅,是很令人沮喪的。
為了避免資源被錯(cuò)誤刪除减宣,可以這樣做:
- 在反射資源的代碼附近添加一個(gè)資源引用代碼(無論該資源是否被其他位置應(yīng)用盐须,都建議這樣做):
// 代碼可以像下面這樣,既保證了資源的引用漆腌,又不影響正式包的運(yùn)行狀態(tài)贼邓。
if (BuildConfig.DEBUG) {
Log.i("yq", "we need resource " + R.drawable.ic_launcher_foreground);
}
在資源中添加注釋,表名該資源被反射引用闷尿。如果資源是個(gè)圖片無法添加注釋塑径,可以將信息寫在commit log中。
在使用資源的時(shí)候填具,如果發(fā)現(xiàn)資源不存在统舀,不要沉默處理,應(yīng)該拋出一個(gè)運(yùn)行時(shí)異常以方便開發(fā)者能夠迅速定位問題劳景。