兩鮮APP從2015年立項(xiàng)到現(xiàn)在,累計(jì)快5年输莺,中間我離開了近2年戚哎。每個月至少一個版本的節(jié)奏,中間開發(fā)了很多功能嫂用,又舍棄了很多功能型凳。項(xiàng)目中oc和swift混合,融合了很多不用的功能嘱函。一個看似簡單的電商應(yīng)用甘畅,實(shí)際上已經(jīng)是中等規(guī)模的電商程序。
網(wǎng)上有很多經(jīng)驗(yàn)分享实夹,資料比較零散橄浓,我通過兩鮮的實(shí)踐,看到比較明顯的效果亮航。這里把實(shí)踐過程記錄下,具體的文章和原理大家可以再根據(jù)關(guān)鍵詞檢索匀们。
剛回來的時候缴淋,apple store 安裝包96M,稍微做了一些工作泄朴,現(xiàn)在已經(jīng)到了45M重抖。
經(jīng)歷3次安裝包優(yōu)化迭代,安裝包從96M先降到75M祖灰,再到50M钟沛,再到45M。和大家分享下我先后的操作和一些實(shí)踐工具局扶。
第一個階段:
重點(diǎn)移除無用的三方庫資源
恨统。GPUImage
叁扫。Umeng
。Talkingdata
畜埋。Datatist
莫绣。明顯過大的歡迎頁輪播圖(開發(fā)沒有做好全屏幕適配,采用粗暴的多組圖片)
這些庫都是在項(xiàng)目需要的時候添加的悠鞍,但是后期廢棄后開發(fā)不夠不責(zé)任或者不敢動对室,就一直留在工程中。
簡單粗暴的實(shí)現(xiàn)咖祭,安裝包直接壓縮近20M掩宜。
第二個階段:
重點(diǎn)處理資源文件
1.linkMap分析app包資源的靜態(tài).o,給app做體檢么翰,清楚包資源文件的大小排序锭亏,重點(diǎn)關(guān)注明顯過大的資源。
2.通過LSUnusedResources 檢索項(xiàng)目中未用到的圖片資源硬鞍,經(jīng)年累月的項(xiàng)目肯定存在很多無用資源慧瘤。不僅僅可以檢索到圖片,還有.h/.m/.swift 文件固该。
3.項(xiàng)目中的png/jpg圖片資源锅减,通過無損壓縮,部分圖片壓縮率高達(dá)90%以上伐坏。推薦以下工具
怔匣。PNGShrink // png、jpg圖片無損壓縮桦沉,本地壓縮可以批量每瞒,但是無法保持原來的文件結(jié)構(gòu)
。https://tinypng.com/ //在線壓縮有數(shù)量限制
4.激進(jìn)點(diǎn)纯露,可以移除2x資源剿骨,只保留3x資源。我沒有進(jìn)行這個操作
5.appCode + inspect code 埠褪,無用代碼片段和import檢查浓利。appCode檢查比較慢,不過功能強(qiáng)大钞速,檢查結(jié)果出來后最好手動操作贷掖。不要輕易批量操作,否則你會哭的渴语。
這個階段處理效果最為明顯苹威,我們的項(xiàng)目中圖片資源近38M,壓縮處理后直接降到18M驾凶。用戶下載安裝包的時間變短了很多牙甫。
第三個階段:
1.APP代碼檢查, 推薦appCode + inspect code掷酗,更精細(xì)處理。移除注釋代碼腹暖、無用方法
2.移除有import但無實(shí)現(xiàn)的類
3.升級xcode支持編譯版本汇在,我們從iOS8.0支持升級到iOS9.0
4.還有編譯選項(xiàng)設(shè)置,我暫時沒有調(diào)整脏答。一個是時間再是不確定對線上用戶有多少影響糕殉。