iOS App 安裝包瘦身指南
以下列出了安裝包瘦身的無腦執行流程,其中“奇技淫巧”部分為選做題
- 資源優化
- 刪除無用圖片
- 使用LSUnusedResources查找無用圖片
- 刪除重複資源
- 壓縮圖片資源
- 使用ImageOptim無損壓縮圖片
- 使用TinyPNG有損壓縮圖片
- TinyPNG非常好用強烈推薦
- 使用的時候直接執行
tinypng *.png -k token
腳本即可
- 奇技淫巧
- 用LaunchScreen.storyboard替換啟動圖片
- 本地大圖片都使用webp
- 資源按需加載,非必要資源都等到使用時再從服務端拉取
- 刪除無用圖片
- 編譯選項優化
- Optimization Level在release狀態設置為Fastest,Smallest
- Strip Debug Symbols During Copy在release狀態設置為YES
- Strip Linked Product在release狀態設為YES
- Make String Read-Only在release狀態設為YES
- Dead Code Stripping在release狀態設為YES
- Deployment PostProcessing在release狀態設為YES
- Symbols hidden by default在release狀態設為YES
- 可執行文件優化
- 使用LinkMap分析庫的使用情況
- 三方庫優化
- 刪除不使用的三方庫
- 功能用的少但是體積大的三方庫可以考慮自己重寫
- 合並功能重複的三方庫
- 代碼分析
- 用AppCode進行代碼掃描
- 去掉無用的類及文件
- 清理import
- 去掉空方法
- 去掉無用的log
- 去掉無用的變量
- 反正把能去掉的都去掉
- 奇技淫巧
- 將業務打包成動態庫
- 動態化。將一部分Native界麵用Weex重寫
- 去除Swift代碼,Swift的標準庫是打包在安裝包裏的,一般都有10M+。然後蘋果爸爸說等到Swift Runtime穩定之後會合並到iOS係統裏,那時候使用Swift就不會顯著增加包大小了
- 在target->Build Settings->Other Link Flags裏添加如下指令,會把TEXT字段的部分內容轉移到RODATA字段,避免蘋果對TEXT字段的審核限製。當然其實跟安裝包瘦身好像沒有什麼關係,所以除非快不行了否則不建議操作 =。=
-Wl,-rename_section,__TEXT,__cstring,__RODATA,__cstring -Wl,-rename_section,__TEXT,__gcc_except_tab,__RODATA,__gcc_except_tab -Wl,-rename_section,__TEXT,__const,__RODATA,__const -Wl,-rename_section,__TEXT,__objc_methname,__RODATA,__objc_methname -Wl,-rename_section,__TEXT,__objc_classname,__RODATA,__objc_classname -Wl,-rename_section,__TEXT,__objc_methtype,__RODATA,__objc_methtype
- 跟著蘋果爸爸走
- App Thinning
- 使用xcasset管理圖片
- 開啟BitCode
- App Thinning
最後更新:2017-10-25 12:03:45
上一篇:
.NET Core采用的全新配置係統[3]: “Options模式”下的配置是如何綁定為Options對象
下一篇:
JVM性能監控常用命令-1
??????6s??????????????????|iPhone6s????????????????????????-??????-????????????-?????????
機房收費係統之主窗體
碼棧開發手冊(四)---編碼方式開發(字符串處理相關函數)
Oracle 12c多租戶特性詳解:從Schema到PDB的變化與隔離
【轉載】java連接MYSQL
找不到BufferedImage這個Class的解決方法
【雲棲大會】雲計算是普惠科技 阿裏雲將與製造業緊密結合推進“中國智造”
DBA生存指南:以嚴謹防範事故
偷Microsoft師學MFC藝:且看C++如何支持反射
網絡子係統19_積壓設備