OC中的庫概念
庫是共享程序代碼的方式滩愁,一般分為靜態(tài)庫和動態(tài)庫
靜態(tài)庫 && 動態(tài)庫 區(qū)別
靜態(tài)庫:鏈接時,完整的拷貝至可執(zhí)行文件辫封,多次使用就會多次拷貝造成冗余拷貝硝枉,使包體積變大
動態(tài)庫:鏈接時不復制,程序運行時動態(tài)加載到內(nèi)存倦微,供程序調(diào)用妻味,系統(tǒng)只加載一次,節(jié)省內(nèi)存
iOS里靜態(tài)庫形式
.a和framework
iOS里動態(tài)庫形式
.dylib和framework
.framework為什么既是動態(tài)庫又是靜態(tài)庫
這個分情況欣福,如果是系統(tǒng)的.framework就是動態(tài)庫责球,我們自己創(chuàng)建的就是靜態(tài)庫
.a和。framework的區(qū)別
.a就是一個純二進制文件
.framework除了二進制文件之外還有資源文件
.a不能直接使用拓劝,需要搭配.h文件
.framework可以直接使用
為什么要使用靜態(tài)庫
代碼共享雏逾,合理避免重復代碼(組件化概念)
代碼私有化,提供給別人使用郑临,但不想讓別人看到你代碼的實現(xiàn)栖博,只暴露接口使用方法(一般多為三方SDK開發(fā))
還有就是組件化的時候,對業(yè)務庫打包成.a文件會提高編譯效率厢洞,但會使包體積變大(空間換時間)
作者:杯中怎可無酒
鏈接:http://www.reibang.com/p/b58c9ab12463