一. 靜態庫的簡介
庫
所謂庫, 就是講程序代碼集合, 封裝為一個庫文件, 他是共享代碼的一種方式, 可以將自己的代碼共享給他人使用
庫的分類
開源庫: 公開代碼, 能看到代碼的具體實現
閉源庫:
不公開代碼, 將代碼的實現編譯為二進制文件, 只將API接口提供給使用者
閉源庫分為
靜態庫: .a和.framework
動態庫: .dylib和.framework
靜態庫和動態庫的區別
靜態庫在鏈接時, 會被完整的復制到可執行文件中; 多次使用, 就會有多次的拷貝;(import)
動態庫則不會復制, 只有一份, 當程序運行時動態加載到內存; 系統只加載一次, 多個程序可以共用, 節省內存
注意: 項目如果使用到自己的動態庫, 蘋果就不會上架你的APP
但是, 在WWDC2014上公布的, 蘋果對iOS8開放動態加載dylib的接口, 也就是說開放了動態庫掛載
靜態庫的主要用途
保護自己的代碼: 將自己的技術分享給其他人使用, 但是又不希望自己的代碼暴露給別人, 就可以使用靜態庫:
如一些技術公司提供的SDK: 支付寶/百度高德地圖/推送等
將MRC的項目, 打包成靜態庫, 可以直接在ARC的環境下直接使用, 不需要轉換