iOS靜態庫和動態庫的區別

來源:互聯網
上載者:User

標籤:

一、什麼是庫?

庫是共用程式碼的方式,一般分為靜態庫和動態庫。

靜態庫:連結時完整地拷貝至可執行檔中,被多次使用就有多份冗餘拷貝。

動態庫:連結時不複製,程式運行時由系統動態載入到記憶體,供程式調用,系統只載入一次,多個程式共用,節省記憶體。

二、形式

靜態庫形式: .a和.framework

動態庫形式:.dylib和.framework

其中,系統的.framework是動態庫,我們自己建立的.framework是靜態庫。

 

.a是一個純二進位檔案,.framework中除了有二進位檔案之外還有資源檔。

.a檔案不能直接使用,至少要有.h檔案配合,.framework檔案可以直接使用。

.a + .h + sourceFile = .framework。

建議用.framework.

三, 為什麼要使用靜態庫?

方便共用代碼,便於合理使用。

實現iOS程式的模組化。可以把固定的業務模組化成靜態庫。

和別人分享你的程式碼程式庫,但不想讓別人看到你代碼的實現。

開發第三方sdk的需要。

 

四,限制

蘋果官方不允許使用者自己的動態庫上線 

最簡單的區別,動態庫 所有app共用一份,靜態庫每個app一份
之所以蘋果不讓有動態庫是有考慮的,比如很多app都用了友盟,如果友盟是個動態哭,那在這些app中通過友盟動態庫實現資料共用 甚至隱私竊取將成為可能。 

iOS靜態庫和動態庫的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.