Android代碼優(yōu)化(一)-Remove unused resources

概述

隨著android項目的開發(fā),項目的體積肯定是會越來越大,結(jié)構(gòu)變得復(fù)雜。尤其是模塊化、重構(gòu)后,會產(chǎn)生許多代碼和資源的重復(fù)冗余。這對于程序員來說簡直就是噩夢。因為在開發(fā)中,絕大多數(shù)時間都是浪費(fèi)在編譯調(diào)試上,對于企業(yè)級的項目來說,尤為明顯。因此優(yōu)化代碼目錄結(jié)構(gòu),減少冗余代碼和資源,對項目都是很有幫助的。今天,我就通過Android Studio自帶的Code Analyze,介紹一下如何刪除無用資源。

介紹

刪除無用資源,主要有兩種方法。

  1. 一個就是double shift后,輸入"unused",可以找到remove unused resources進(jìn)行刪除。
  1. 第二個就是點擊菜單欄上的Analyze->Inspect Code...對項目進(jìn)行掃描。

可以指定檢查的范圍

等待一段時間后,控制臺的位置就會彈出一個檢查的結(jié)果。其實AS的代碼分析不僅僅是刪除無用資源這么一個功能,它其實就是一個lint檢查工具,可以幫助開發(fā)者優(yōu)化許多代碼問題,這里就先暫不一一講解了,后面會再寫一篇關(guān)于lint分析及如何解決的文章。我們這里要看的是performance下面的unused resources,lint工具會提示哪些資源是沒有被用到的,并且在右邊可以直接進(jìn)行刪除操作。被掃描出來的資源類型有圖片、string、drawable、layout、id、style等等。

遇到的坑

由于我是用家里的demo做的截圖,真正的項目開發(fā),結(jié)構(gòu)會復(fù)雜的多,到時候lint彈的提示也會多種多樣,unused的資源也會多很多。在公司項目的優(yōu)化中,由于模塊化的結(jié)構(gòu),使得資源被層層依賴,所以第一種方法,可以在正常的情況下使用,而第二種,需要刪除所有的build文件,這樣才能刪得比較徹底。而第一種方法,如果刪除了build文件夾的話,會有很多被依賴的資源也被掃出來,影響到正常的編譯。

這里還要說明的一點是,在刪除資源后,提交的時候一定要反復(fù)check,有些資源是通過庫的反射進(jìn)行調(diào)用的(push圖標(biāo)),或者是潛規(guī)則,需要將他們還原回來。

shrinkResources

這里發(fā)展一下知識點,在gradle的buildTypes中有個shrinkResources屬性,當(dāng)將其設(shè)置為true的時候,可以在打包apk的時候,自動刪除沒有被引用到的資源,并且可以在build中找到resources.txt,在最后會列出了被優(yōu)化的資源文件。這里有一點要提的是,并不是所有不被引用到的文件都會被過濾掉,很多被依賴到build后,還是能被打進(jìn)apk。

resources.txt

總結(jié)

總得來說,remove unused resources還是很重要的,無論是對編譯還是apk的體積,都很有幫助。下一篇,我將講解一下如何刪除無用的java文件。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容