Android apk瘦身最佳實(shí)踐(五):圖片壓縮

之前講過的幾種 apk 瘦身方法里球恤,除了通過 proguard 進(jìn)行混淆壓縮比較常規(guī)外辜昵,其他都是些奇淫技巧,對 apk 進(jìn)行壓縮的大小有限咽斧,適合對 apk 大小進(jìn)行極致優(yōu)化的場景堪置,并且如果對配置不熟悉躬存,很容易出現(xiàn)各種錯(cuò)誤。但其實(shí)瘦身最有效的辦法之一舀锨,就是進(jìn)行圖片壓縮岭洲。

1. 只配置同一種分辨率下的圖片

一般現(xiàn)在我們只配置一種分辨率的圖片,現(xiàn)在主流的有 xhdpi坎匿、xxhdpi盾剩、xxxhdpi,但我們沒必要配置3套圖片替蔬,否則圖片資源的大小呈倍數(shù)增長告私。高分辨的圖片在低分辨率手機(jī)上展示,效果一般沒問題承桥,但是低分辨率的圖片在高分辨率手機(jī)上展示則很可能會(huì)出現(xiàn)模糊驻粟,結(jié)合目前市場上手機(jī)的普通情況,目前我們選擇了 xxhdpi 這套分辨率的圖凶异。也可以只選擇 xhdpi 分辨率上的圖格嗅,效果一般也沒問題,結(jié)合自己的時(shí)實(shí)際情況選擇唠帝。

2. 采用 TinyPng 進(jìn)行圖片壓縮

網(wǎng)站地址:https://tinypng.com/

所用的每一個(gè)圖片屯掖,都通過 TinyPng 進(jìn)行壓縮處理,有的比較大的圖片可以反復(fù)壓縮襟衰,直到?jīng)]有壓縮空間為止贴铜。

3. 使用 xml 定義的 drawable 資源

不要所有的地方都采用 png 圖片,特別是像一些類似圓角背景瀑晒、漸變的顏色背景等绍坝,能通過 xml 來定義成 drawable 的,盡量都不要直接使用 png 圖片苔悦,一個(gè) xml 文件比一個(gè) png 圖片會(huì)小很多轩褐。

4. 使用 .9 png 圖片

有些設(shè)計(jì)師對 Android 不是很熟悉,切圖時(shí)總會(huì)按照效果圖切一張大圖出來玖详。如果能夠使用 .9 圖的把介,盡量跟設(shè)計(jì)師溝通清楚,雖然制作 .9 圖會(huì)稍微麻煩一點(diǎn)蟋座,但是你要想想拗踢,壓縮再多代碼量也比不了一張大圖的大小。

5. 使用 webp 格式的圖片

Android 4.3以上就已經(jīng)全面支持 webp 格式的圖片了向臀,不需要自己再做額外的版本兼容了巢墅。Android Studio 已經(jīng)提供了很方便的工具,可以直接將 png 圖片轉(zhuǎn)換成 webp 格式了,當(dāng)然可能會(huì)有少許的圖片清晰度損耗君纫。一張 100kb 的 png 圖片驯遇,轉(zhuǎn)成 webp 格式化,大小可能只有幾 kb 了蓄髓,壓縮效率驚人妹懒。

那是不是可以將所有的 png 圖片轉(zhuǎn)換為 webp 圖片了,答案是否定的双吆。有的 png 圖片轉(zhuǎn)換后眨唬,圖片大小可能比原圖還大,這顯然是不行的好乐;有些小的 icon匾竿,本身已經(jīng)很小了,再去壓縮降低了清晰度蔚万,大小減少得微乎其微岭妖,似乎也沒這個(gè)必要了;有的 webp 圖片還是有點(diǎn)兼容性問題反璃,曾經(jīng)碰到過在某些手機(jī)上 webp 圖片會(huì)花掉的現(xiàn)象昵慌。所以我們的處理原則是:

  • 小的 icon 圖片大小比較小,為了高質(zhì)量不會(huì)去壓縮淮蜈;
  • 類似引導(dǎo)圖這種斋攀,都是全屏大小的圖片,全部轉(zhuǎn)換為 webp 格式梧田;
  • 一些說明介紹性的 png 圖片淳蔼,如果大小超過 20kb,考慮轉(zhuǎn)換為 webp 格式裁眯;
  • 對于 20kb 以下的這些圖片鹉梨,優(yōu)先采用 TinyPng 進(jìn)行壓縮優(yōu)化;

總的來說穿稳,webp 能節(jié)省很大的空間存皂,但它不是萬能的,根據(jù)情況而定逢艘。

6. 合理使用網(wǎng)絡(luò)圖片

對于有些并不是高頻使用的業(yè)務(wù)場景旦袋,這里面的圖片可以考慮使用網(wǎng)絡(luò)加載的方式。將這些圖片存儲(chǔ)到服務(wù)器埋虹,需要用到的時(shí)候再來加載或者是預(yù)加載好猜憎。

7. 小結(jié)

以上是我常用的一些方法娩怎,只要平時(shí)開發(fā)的時(shí)候搔课,注意這些問題就可以實(shí)現(xiàn)了。此外,還有其他的方式爬泥,例如使用矢量圖柬讨,但是矢量圖的定義個(gè)人覺得有點(diǎn)麻煩,為了自己的開發(fā)效率就放棄掉了袍啡。圖片壓縮是減小 apk 大小的最有效方式之一踩官,只有平時(shí)注意這個(gè)問題,后面想為 apk 瘦身的時(shí)候就好辦多了境输。

系列文章
Android apk瘦身最佳實(shí)踐(一):去除R.class
Android apk瘦身最佳實(shí)踐(二):代碼混淆和資源壓縮
Android apk瘦身最佳實(shí)踐(三):資源混淆原理
Android apk瘦身最佳實(shí)踐(四):采用AndResGuard進(jìn)行資源混淆
Android apk瘦身最佳實(shí)踐(五):圖片壓縮
Android apk瘦身最佳實(shí)踐(六):采用D8編譯器

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蔗牡,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子嗅剖,更是在濱河造成了極大的恐慌辩越,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件信粮,死亡現(xiàn)場離奇詭異黔攒,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)强缘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門督惰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人旅掂,你說我怎么就攤上這事赏胚。” “怎么了商虐?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵栅哀,是天一觀的道長。 經(jīng)常有香客問我称龙,道長留拾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任鲫尊,我火速辦了婚禮痴柔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘疫向。我一直安慰自己咳蔚,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布搔驼。 她就那樣靜靜地躺著谈火,像睡著了一般。 火紅的嫁衣襯著肌膚如雪舌涨。 梳的紋絲不亂的頭發(fā)上糯耍,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼温技。 笑死革为,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的舵鳞。 我是一名探鬼主播震檩,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜓堕!你這毒婦竟也來了抛虏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤套才,失蹤者是張志新(化名)和其女友劉穎嘉蕾,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體霜旧,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡错忱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了挂据。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片以清。...
    茶點(diǎn)故事閱讀 38,569評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖崎逃,靈堂內(nèi)的尸體忽然破棺而出掷倔,到底是詐尸還是另有隱情,我是刑警寧澤个绍,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布勒葱,位于F島的核電站,受9級特大地震影響巴柿,放射性物質(zhì)發(fā)生泄漏凛虽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一广恢、第九天 我趴在偏房一處隱蔽的房頂上張望凯旋。 院中可真熱鬧,春花似錦钉迷、人聲如沸至非。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荒椭。三九已至,卻和暖如春舰蟆,著一層夾襖步出監(jiān)牢的瞬間趣惠,已是汗流浹背狸棍。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留信卡,地道東北人隔缀。 一個(gè)月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓题造,卻偏偏與公主長得像傍菇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子界赔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評論 2 348

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