隨著開發(fā)的進(jìn)行 App的體積不斷的增大禁荸。如何瘦身 也是一個(gè)問題乘粒。
圖片文件的處理膨更。
- 圖片文件 往往占據(jù)了開發(fā)包一個(gè)大的部分诉稍。其實(shí)往往設(shè)計(jì)人員 給的圖片都是巨大的蝠嘉。在保證質(zhì)量的情況下是可以進(jìn)行壓縮的。在這里推薦兩款圖片處理軟件 ImageAlpha和ImageOption杯巨≡楦妫可以只用一款 也可以兩款兼用,一般情況下能將資源文件壓縮20%-50%而且完全不影響顯示服爷。
- 有一些簡單的圖標(biāo)完全也可以用字體去處理杜恰。這樣不需要使用 2x和3x获诈。方便修改顏色。而且還可以進(jìn)行復(fù)用心褐。
- 有些時(shí)候多人開發(fā)可能 會(huì)導(dǎo)致同一個(gè)資源文件的多次導(dǎo)入舔涎。這個(gè)時(shí)候可以使用。fdupes進(jìn)行處理逗爹。他可以根據(jù)文件md5去找到相同的文件终抽。
- 某些文件可能不再使用。LSUnusedResources可以找到項(xiàng)目中不在使用的文件桶至。但是這個(gè)有一些缺陷,會(huì)連隱性命名的那些文件一起找出來匾旭,需要使用人進(jìn)行人工篩選一下镣屹。
- 使用asset管理圖片文件,因?yàn)樘O果提供了 Slicing,當(dāng)用戶設(shè)備為iOS9以上會(huì)根據(jù)用戶設(shè)備進(jìn)行資源文件下載。
- On-Demand 按照需求加載資源价涝。這里的按照需求是蘋果幫忙托管女蜈,然后 使用tag管理資源文件。
在任何時(shí)刻都必須是app的一部分色瘩。
可以提升用戶體驗(yàn)伪窖,但在啟動(dòng)app時(shí)不是必需的。包括高分辨率素材居兆、高質(zhì)量聲音等等覆山。
在特定場景下才需要。
后面兩種可以使用tag進(jìn)行管理泥栖。每個(gè)tag下的資源總計(jì)大小不能超過2GB簇宽。按需加載資源的總計(jì)大小不能超過20GB。按需加載資源的大小是不算在app bundle的大小中的吧享。
開啟bitCode
iOS瘦身計(jì)劃中一個(gè)魏割。開啟bitCode后允許蘋果對代碼進(jìn)行 二次優(yōu)化bitCode。從APPStroe下載的包會(huì)根據(jù) 你當(dāng)前的機(jī)型選擇最優(yōu)的钢颂。
無用類的刪除
隨著開發(fā)的進(jìn)行钞它,項(xiàng)目不斷的迭代過程中無用的類肯定也是不斷的增多。WHC_Scan掃描項(xiàng)目殊鞭,然后發(fā)現(xiàn)未使用的類遭垛。這個(gè)主要問題是掃描出來之后 需要再次的分析一下。因?yàn)榭赡懿糠值念愂沁\(yùn)行時(shí)創(chuàng)建的操灿。這個(gè)可以與linkmap.js共同使用耻卡。使用他分析出每個(gè)文件的大小。然后與無用類做一下對比牲尺÷牙遥可以有目的的刪除一些無用的類幌蚊。
還有一種刪除無用的類的方法。通過分析可執(zhí)行文件與linkmap分析出未使用的類和方法溃卡。iSee使用過程中 發(fā)現(xiàn) 并沒有那么優(yōu)秀溢豆。可能是有一些bug需要處理瘸羡′鱿桑或者是我們現(xiàn)在的項(xiàng)目巨大。
.a文件的處理
發(fā)布的時(shí)候僅真機(jī)可用 可以將.a文件中的無關(guān)的架構(gòu)都刪除犹赖。
無用頭文件的引入
引入頭文件過多是一件非扯铀可怕的事情。因?yàn)樗麜?huì)將引入的頭文件拷貝到.o中峻村。不過好像新的編譯器是做過優(yōu)化的麸折。fui可以查找。