iOS開發(fā)中靜態(tài)庫和動態(tài)庫區(qū)別

靜態(tài)庫和動態(tài)庫是相對編譯期和運行期的:

靜態(tài)庫在程序編譯時會被鏈接到目標(biāo)代碼中,程序運行時將不再需要改靜態(tài)庫;

動態(tài)庫在程序編譯時并不會被鏈接到目標(biāo)代碼中,只是在程序運行時才被載入,因為在程序運行期間還需要動態(tài)庫的存在。

靜態(tài)庫 優(yōu)點:

1.模塊化,分工合作,提高了代碼的復(fù)用及核心技術(shù)的保密程度

2.避免少量改動經(jīng)常導(dǎo)致大量的重復(fù)編譯連接

3.也可以重用,注意不是共享使用

動態(tài)庫 優(yōu)點:

1.使用動態(tài)庫,可以將最終可執(zhí)行文件體積縮小,將整個應(yīng)用程序分模塊,團(tuán)隊合作,進(jìn)行分工,影響比較小

2.使用動態(tài)庫,多個應(yīng)用程序共享內(nèi)存中得同一份庫文件,節(jié)省資源

3.使用動態(tài)庫,可以不重新編譯連接可執(zhí)行程序的前提下,更新動態(tài)庫文件達(dá)到更新應(yīng)用程序的目的。

4.應(yīng)用插件化

5.軟件版本實時模塊升級

6.共享可執(zhí)行文件 在其它大部分平臺上,動態(tài)庫都可以用于不同應(yīng)用間共享,這就大大節(jié)省了內(nèi)存。

從目前來看,iOS仍然不允許進(jìn)程間共享動態(tài)庫,即iOS上的動態(tài)庫只能是私有的,因為我們?nèi)匀徊荒軐討B(tài)庫文件放置在除了自身沙盒以外的其它任何地方。 不過iOS8上開放了App Extension功能,可以為一個應(yīng)用創(chuàng)建插件,這樣主app和插件之間共享動態(tài)庫還是可行的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容