App瘦身

App Store 規(guī)定了安裝包大小超過 150MB 的 App 不能使用 OTA(over-the-air)環(huán)境下載玫荣,也就是只能在 WiFi 環(huán)境下下載。所以暑塑,150MB 就成了 App 的生死線处坪,一旦超越了這條線就很有可能會失去大量用戶。但是目前我們App企業(yè)端132.9MB,司機(jī)端124.3MB费坊。因此減少包瘦身就顯得比較重要倒槐。

目前正在開發(fā)的任務(wù)也進(jìn)入提測階段,手頭有了空閑時間附井,所以就開始研究App的瘦身方案讨越。

官方 App Thinning

App Thinning 是由蘋果公司推出的一項可以改善 App 下載進(jìn)程的新技術(shù),主要是為了解決用戶下載 App 耗費過高流量的問題永毅,同時還可以節(jié)省用戶 iOS 設(shè)備的存儲空間把跨。

現(xiàn)在的 iOS 設(shè)備屏幕尺寸、分辨率越來越多樣化沼死,這樣也就需要更多資源來匹配不同的尺寸和分辨率着逐。 同時,App 也會有 32 位意蛀、64 位不同芯片架構(gòu)的優(yōu)化版本耸别。如果這些都在一個包里,那么用戶下載包的大小勢必就會變大县钥。

App Thinning 會專門針對不同的設(shè)備來選擇只適用于當(dāng)前設(shè)備的內(nèi)容以供下載秀姐。比如,iPhone 6 只會下載 2x 分辨率的圖片資源若贮,iPhone 6plus 則只會下載 3x 分辨率的圖片資源省有。

App Thinning 有三種方式,包括:App Slicing谴麦、Bitcode蠢沿、On-Demand Resources。

App Slicing匾效,會在你向 iTunes Connect 上傳 App 后搏予,對 App 做切割,創(chuàng)建不同的變體弧轧,這樣就可以適用到不同的設(shè)備雪侥。

On-Demand Resources碗殷,主要是為游戲多關(guān)卡場景服務(wù)的。它會根據(jù)用戶的關(guān)卡進(jìn)度下載隨后幾個關(guān)卡的資源速缨,并且已經(jīng)過關(guān)的資源也會被刪掉锌妻,這樣就可以減少初裝 App 的包大小。

Bitcode 旬牲,是針對特定設(shè)備進(jìn)行包大小優(yōu)化仿粹,優(yōu)化不明顯。

這里的大部分工作都是由 Xcode 和 App Store 來幫你完成的原茅,你只需要通過 Xcode 添加 xcassets 目錄吭历,然后將圖片添加進(jìn)來即可。我們所做的任務(wù)較少擂橘。

圖片資源

圖片資源的優(yōu)化空間晌区,主要體現(xiàn)在刪除無用圖片和圖片資源壓縮這兩方面。而刪除無用圖片通贞,又是其中最容易朗若、最應(yīng)該先做的。

隨著項目的不斷迭代昌罩,可能有的功能已經(jīng)廢棄哭懈,或者UI改版導(dǎo)致項目中無用的圖片資源不斷增加。刪除圖片資源可以通過LSUnusedResources

使用方式簡單:

1遣总、從gitHub下載該項目,使用Xcode運(yùn)行此項目

2轨功、點擊?Browse.. 選擇你的項目工程目錄

3彤避、如果項目中有動態(tài)獲取的資源名,比如說icon_1 icon_2,可以勾選Ignore similar name,自行添加

4夯辖、點擊click?Search搜索

5、刪除不需要使用的資源董饰,注意留意fullPath蒿褂,因為有的圖片資源是第三方庫中的,可以自行看情況是否需要刪除

圖片資源壓縮

對于 App 來說卒暂,圖片資源總會在安裝包里占個大頭兒啄栓。對它們最好的處理,就是在不損失圖片質(zhì)量的前提下盡可能地做壓縮也祠。

1昙楚、可以使用將圖片轉(zhuǎn)成 WebP。WebP 是 Google 公司的一個開源項目诈嘿。

WebP 壓縮率高堪旧,而且肉眼看不出差異削葱,同時支持有損和無損兩種壓縮模式。比如淳梦,將 Gif 圖轉(zhuǎn)為 Animated WebP 析砸,有損壓縮模式下可減少 64% 大小,無損壓縮模式下可減少 19% 大小爆袍。WebP 支持 Alpha 透明和 24-bit 顏色數(shù)首繁,不會像 PNG8 那樣因為色彩不夠而出現(xiàn)毛邊。接下來陨囊,我們再看看怎么把圖片轉(zhuǎn)成 WebP弦疮?

Google 公司在開源 WebP 的同時,還提供了一個圖片壓縮工具 cwebp來將其他圖片轉(zhuǎn)成 WebP蜘醋。

不過胁塞,WebP 在 CPU 消耗和解碼時間上會比 PNG 高兩倍。而且webp作為非官方的圖片格式堂湖,實用上不夠方便闲先,而且不兼容App thinning。所以无蜂,我們有時候還需要在性能和體積上做取舍伺糠。

2、因為我們公司使用的是藍(lán)湖斥季,也可以下載icon時训桶,開啟切圖壓縮,畫質(zhì)基本是不變的酣倾。兼容App thinning

3舵揭、平時開發(fā)中盡量保持風(fēng)格統(tǒng)一,可以跟UI設(shè)計師溝通一下躁锡,同一類型的圖標(biāo)不要每開發(fā)一個功能午绳,就換圖標(biāo)。盡量做到同類型的圖標(biāo)能復(fù)用映之。如果只是顏色的不同拦焚,可以自己設(shè)置圖片的tintColor來改變顏色。多說一句杠输,如果沒有特殊要求赎败,我推薦直接使用蘋果公司提供的。具體來說蠢甲,在 iOS 系統(tǒng)內(nèi)置的 SF Symbols 為我們提供了 3150 個一致的僵刮、可定制的圖標(biāo)。

SF Symbols 有很多優(yōu)點:

它數(shù)量巨大,幾乎覆蓋所有應(yīng)用場景搞糕;

整合了 San Francisco 字體系統(tǒng)勇吊,當(dāng)用戶改變字體大小的時候,這些圖標(biāo)都會自動對齊寞宫;

所有圖標(biāo)都支持顏色萧福,我們可以根據(jù)需求搭配不同的顏色;

使用這些圖標(biāo)時也無須安裝辈赋,可以減少 App 的體積鲫忍。

代碼瘦身

刪除無用類,可以使用腳本钥屈。將無用類導(dǎo)出悟民,但是在刪除類的時候,盡量自己查下工程代碼排除一下篷就,因為有的類是通過Runtime的方式使用的射亏,這個腳本不能很好的檢測出來。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末竭业,一起剝皮案震驚了整個濱河市智润,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌未辆,老刑警劉巖窟绷,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異咐柜,居然都是意外死亡兼蜈,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門拙友,熙熙樓的掌柜王于貴愁眉苦臉地迎上來为狸,“玉大人,你說我怎么就攤上這事遗契》簦” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵牍蜂,是天一觀的道長漾根。 經(jīng)常有香客問我,道長捷兰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任负敏,我火速辦了婚禮贡茅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己顶考,他們只是感情好赁还,可當(dāng)我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著驹沿,像睡著了一般艘策。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上渊季,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天朋蔫,我揣著相機(jī)與錄音,去河邊找鬼却汉。 笑死驯妄,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的合砂。 我是一名探鬼主播青扔,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼翩伪!你這毒婦竟也來了微猖?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤缘屹,失蹤者是張志新(化名)和其女友劉穎凛剥,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體囊颅,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡当悔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了踢代。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盲憎。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖胳挎,靈堂內(nèi)的尸體忽然破棺而出饼疙,到底是詐尸還是另有隱情,我是刑警寧澤慕爬,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布窑眯,位于F島的核電站,受9級特大地震影響医窿,放射性物質(zhì)發(fā)生泄漏磅甩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一姥卢、第九天 我趴在偏房一處隱蔽的房頂上張望卷要。 院中可真熱鬧渣聚,春花似錦、人聲如沸僧叉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瓶堕。三九已至隘道,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間郎笆,已是汗流浹背谭梗。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留题画,地道東北人默辨。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像苍息,于是被迫代替她去往敵國和親缩幸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,728評論 2 351