iOS SDK开发
一款好用且設計充分的 SDK 必須要遵循以下 4 條基本原則,即:
1、SDK 安全,穩定
2、統一的開發規范
3、Library 小而精
4、不依賴第三方 SDK
安全,穩定:考慮到 SDK 是需要嵌入到 App 里面去的,所以 SDK 最重要的特性就是安全性,不會因為亂開放接口而導致 App 數據泄露;其次重要的是 SDK 的穩定性, SDK 的 Crash 如果沒有被捕獲進行處理,則會導致應用徹底崩潰(這樣就會導致第三方接入的 App 體驗性非常差),甚至會直接導致接入方的用戶流失;
統一的開發規范:對于 SDK 開發規范來說,統一的命名規范很重要,最好的狀態是“接入方看到接口命名就能知道是哪家廠商的 SDK”,換句話說就是 SDK 的命名規范統一,形成自己公司的品牌效應,此外也方便開發者進行接入使用。此外也需要具有自己的編碼規范,你可以在網上找到大廠的規范模板,并通過借鑒整理出屬于自己的規范,從而盡早統一代碼風格;
Library 小而精:小是指要避免造成接入方的App增加很大,不然會引起接入方的不滿,甚至下架。精是指功能要專注,比如極光推送,就是專注推送相關的功能;
不依賴第三方 SDK:這個也很好理解,SDK 中如果又依賴其他第三方 SDK, 不僅會導致 SDK 的體積變大,也會影響接入方集成 SDK 的相關成本。
動態連接:創建應用的時候只約定好與庫之間的調用關系,而不徹底將庫包集成進應用。這樣在應用運行時,需要運行環境中提供庫,并且連接裝載。優劣與靜態庫相反,動態鏈接庫需要庫環境,但由于本身不集成庫內容,會比較小,同時也為和其他應用共享庫的使用提供了可能(常見的動態庫是 Windows 下的 .dll,Linux 下的 .so,Mac 下的 .dylib/.tbd)。
a與.framework有什么區別?
.a是一個純二進制文件,.framework中除了有二進制文件之外還有資源文件。 .a文件不能直接使用,至少要有.h文件配合(微信的SDK就是這種形式),.framework文件可以直接使用。 .a + .h + sourceFile = .framework。 建議用.framework。再者 靜態方式開發,一直是iOS SDK開發的主流方式
靜態庫和動態庫的區別
如果說要找出靜態庫與動態庫的區別,那可以從文件鏈接(每個源代碼模塊獨立編譯,然后按照需要將他們組裝起來,這個組裝模塊的過程,就是鏈接)的角度進行解釋:
靜態庫:鏈接時會被完整的復制到可執行文件中,所以如果兩個程序都用了某個靜態庫,那么每個二進制可執行文件里面,都會含有這份靜態庫的代碼;
動態庫:鏈接時不復制,而是在程序啟動后動態加載,然后再進行符號決議(符號綁定)。理論上動態庫只存在一份就可以了。其他的程序都可以動態鏈接到這個動態庫上面,從而節省內存(內存中只有一份動態庫)。另外一個好處是,由于動態庫并不綁定到可執行程序上,所以我們想升級這個動態庫就很容易,windows和linux上面一般插件和模塊機制都是這樣實現的。
具體的優劣勢可以看這張表:
總結
- 上一篇: Kotlin学习的一些心得
- 下一篇: Unity打开两个同样的工程,使用mkl