iOS應用程式瘦身的靜態庫解決方案
隨著應用程式的功能越來越多,程式實現越來越複雜,第三方庫的引入等眾多因素程式中的程式碼量呈現井噴式的增長,從而導致應用程式包的體積越來越大。當程式體積變大後不僅會出現執行效能問題,而且會增加應用下載時長和消耗使用者的網路流量等等。因此在這種情況下需要對應用進行瘦身處理。
一個應用程式由資原始檔和可執行程式檔案組成,資原始檔的優化不在本文探討範圍。本文主要討論對可執行程式程式碼瘦身的方法。對可執行程式瘦身主要就是想辦法讓程式中不會被呼叫的原始碼不參與編譯或連結。在編譯階段的瘦身可以通過一些原始碼分析工具來執行,而在連結階段連結器會優化掉所有沒被呼叫的C/C++函式程式碼,但是對於OC類中的沒有呼叫的方法則不會被優化掉。因此我們需要了解程式碼的連結規則。本文是從靜態庫使用的技巧上討論一種應用程式瘦身的解決方案。您可以從文章: 深入iOS系統底層之靜態庫介紹中 詳細的瞭解到靜態庫的連結規則。並且我還在github上建立了一個專案: YSAppSizeTest 。您可以從這個專案中看到如何瘦身的具體實踐程式碼,專案的具體介紹您可以通過閱讀README.MD 檔案來了解。