1、iOS開發(fā)中靜態(tài)庫和動態(tài)庫區(qū)別
不管動態(tài)庫還是靜態(tài)庫,本質(zhì)上就是可執(zhí)行二進制格式,可以被載入到內(nèi)存中執(zhí)行,分為靜態(tài)庫和動態(tài)庫兩種。
靜態(tài)庫:以.a?和?.framework為文件后綴名。
動態(tài)庫:以.tbd(之前叫.dylib) 和?.framework?為文件后綴名。
靜態(tài)庫與動態(tài)庫的區(qū)別
靜態(tài)庫:鏈接時會被完整的復制到可執(zhí)行文件中,被多次使用就有多份拷貝。?好處是:
1.模塊化,分工合作,提高了代碼的復用及核心技術(shù)的保密程度
2.避免少量改動經(jīng)常導致大量的重復編譯連接
3.也可以重用,注意不是共享使用
動態(tài)庫:鏈接時不復制,程序運行時由系統(tǒng)動態(tài)加載到內(nèi)存,系統(tǒng)只加載一次,多個程序共用(如系統(tǒng)的UIKit.framework等),節(jié)省內(nèi)存。動態(tài)庫好處是:
1.使用動態(tài)庫,可以將最終可執(zhí)行文件體積縮小,將整個應(yīng)用程序分模塊,團隊合作,進行分工,影響比較小
2.使用動態(tài)庫,多個應(yīng)用程序共享內(nèi)存中得同一份庫文件,節(jié)省資源
3.使用動態(tài)庫,可以不重新編譯連接可執(zhí)行程序的前提下,更新動態(tài)庫文件達到更新應(yīng)用程序的目的。
4.應(yīng)用插件化
5.軟件版本實時模塊升級
6.共享可執(zhí)行文件 在其它大部分平臺上,動態(tài)庫都可以用于不同應(yīng)用間共享,這就大大節(jié)省了內(nèi)存。從目前來看,iOS仍然不允許進程間共享動態(tài)庫,即iOS上的動態(tài)庫只能是私有的,因為我們?nèi)匀徊荒軐討B(tài)庫文件放置在除了自身沙盒以外的其它任何地方。 不過iOS8上開放了App Extension功能,可以為一個應(yīng)用創(chuàng)建插件,這樣主app和插件之間共享動態(tài)庫還是可行的。
補充一點iOS 的各設(shè)備CPU架構(gòu)
模擬器:
iPhone4s-iPnone5:i386
iPhone5s-iPhone7 Plus:x86_64
真機:
iPhone3gs-iPhone4s:armv7
iPhone5-iPhone5c:armv7s
iPhone5s-iPhone6s:Plus:arm64
參考鏈接:iOS_小松哥?:?http://www.itdecent.cn/p/90f5ec723175
? ??????????????????鄧立兵???http://ios.jobbole.com/82644/?utm_source=blog.jobbole.com&utm_medium=relatedPosts