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

概述

隨著android項(xiàng)目的開發(fā),項(xiàng)目的體積肯定是會(huì)越來(lái)越大,結(jié)構(gòu)變得復(fù)雜沸久。尤其是模塊化季眷、重構(gòu)后,會(huì)產(chǎn)生許多代碼和資源的重復(fù)冗余卷胯。這對(duì)于程序員來(lái)說(shuō)簡(jiǎn)直就是噩夢(mèng)子刮。因?yàn)樵陂_發(fā)中,絕大多數(shù)時(shí)間都是浪費(fèi)在編譯調(diào)試上窑睁,對(duì)于企業(yè)級(jí)的項(xiàng)目來(lái)說(shuō)挺峡,尤為明顯。因此優(yōu)化代碼目錄結(jié)構(gòu)担钮,減少冗余代碼和資源橱赠,對(duì)項(xiàng)目都是很有幫助的。今天箫津,我就通過(guò)Android Studio自帶的Code Analyze狭姨,介紹一下如何刪除無(wú)用資源。

介紹

刪除無(wú)用資源苏遥,主要有兩種方法饼拍。

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

可以指定檢查的范圍

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

遇到的坑

由于我是用家里的demo做的截圖,真正的項(xiàng)目開發(fā),結(jié)構(gòu)會(huì)復(fù)雜的多幽歼,到時(shí)候lint彈的提示也會(huì)多種多樣朵锣,unused的資源也會(huì)多很多。在公司項(xiàng)目的優(yōu)化中甸私,由于模塊化的結(jié)構(gòu)诚些,使得資源被層層依賴,所以第一種方法皇型,可以在正常的情況下使用诬烹,而第二種,需要?jiǎng)h除所有的build文件犀被,這樣才能刪得比較徹底椅您。而第一種方法,如果刪除了build文件夾的話寡键,會(huì)有很多被依賴的資源也被掃出來(lái)掀泳,影響到正常的編譯。

這里還要說(shuō)明的一點(diǎn)是西轩,在刪除資源后员舵,提交的時(shí)候一定要反復(fù)check,有些資源是通過(guò)庫(kù)的反射進(jìn)行調(diào)用的(push圖標(biāo))藕畔,或者是潛規(guī)則马僻,需要將他們還原回來(lái)。

shrinkResources

這里發(fā)展一下知識(shí)點(diǎn)注服,在gradle的buildTypes中有個(gè)shrinkResources屬性韭邓,當(dāng)將其設(shè)置為true的時(shí)候,可以在打包apk的時(shí)候溶弟,自動(dòng)刪除沒(méi)有被引用到的資源女淑,并且可以在build中找到resources.txt,在最后會(huì)列出了被優(yōu)化的資源文件辜御。這里有一點(diǎn)要提的是鸭你,并不是所有不被引用到的文件都會(huì)被過(guò)濾掉,很多被依賴到build后擒权,還是能被打進(jìn)apk袱巨。

resources.txt

總結(jié)

總得來(lái)說(shuō),remove unused resources還是很重要的碳抄,無(wú)論是對(duì)編譯還是apk的體積愉老,都很有幫助。下一篇纳鼎,我將講解一下如何刪除無(wú)用的java文件俺夕。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末裳凸,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子劝贸,更是在濱河造成了極大的恐慌姨谷,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件映九,死亡現(xiàn)場(chǎng)離奇詭異梦湘,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)件甥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門捌议,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人引有,你說(shuō)我怎么就攤上這事瓣颅。” “怎么了譬正?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵宫补,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我曾我,道長(zhǎng)粉怕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任抒巢,我火速辦了婚禮贫贝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蛉谜。我一直安慰自己稚晚,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布型诚。 她就那樣靜靜地躺著蜈彼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪俺驶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天棍辕,我揣著相機(jī)與錄音暮现,去河邊找鬼。 笑死楚昭,一個(gè)胖子當(dāng)著我的面吹牛栖袋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播抚太,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼塘幅,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼昔案!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起电媳,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤踏揣,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后匾乓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捞稿,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年拼缝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了娱局。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡咧七,死狀恐怖衰齐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情继阻,我是刑警寧澤耻涛,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站穴翩,受9級(jí)特大地震影響犬第,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜芒帕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一歉嗓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧背蟆,春花似錦鉴分、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至垛叨,卻和暖如春伦糯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嗽元。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工敛纲, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人剂癌。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓淤翔,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親佩谷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子旁壮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,082評(píng)論 25 707
  • 什么是 Lint Android Lint 是 SDK Tools 16(ADT 16)開始引入的一個(gè)代碼掃描工具...
    凱玲之戀閱讀 23,597評(píng)論 2 38
  • 作者簡(jiǎn)介 原創(chuàng)微信公眾號(hào)郭霖 WeChat ID: guolin_blog 本篇作者張拭心之前分享了好幾篇設(shè)計(jì)模式...
    木木00閱讀 1,334評(píng)論 1 4
  • 我的母親出身于大戶人家监嗜,是名副其實(shí)的大家閨秀,但剛好在她該上學(xué)的年紀(jì)抡谐,外婆不幸去世裁奇,母親年紀(jì)小不愿上學(xué),外公...
    玉見歡喜閱讀 239評(píng)論 0 4
  • 五月的風(fēng)童叠, 微涼中帶著夏天的氣息框喳; 城市的街頭, 喧囂中藏著孤獨(dú)的冷漠厦坛; 站在路燈下五垮, 看著遠(yuǎn)處燈光閃爍; 或思考...
    灃扉閱讀 190評(píng)論 0 0