日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

iOS SDK开发

發(fā)布時(shí)間:2023/10/11 综合教程 140 老码农
生活随笔 收集整理的這篇文章主要介紹了 iOS SDK开发 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一款好用且設(shè)計(jì)充分的 SDK 必須要遵循以下 4 條基本原則,即:

1、SDK 安全,穩(wěn)定
2、統(tǒng)一的開發(fā)規(guī)范
3、Library 小而精
4、不依賴第三方 SDK
安全,穩(wěn)定:考慮到 SDK 是需要嵌入到 App 里面去的,所以 SDK 最重要的特性就是安全性,不會(huì)因?yàn)閬y開放接口而導(dǎo)致 App 數(shù)據(jù)泄露;其次重要的是 SDK 的穩(wěn)定性, SDK 的 Crash 如果沒有被捕獲進(jìn)行處理,則會(huì)導(dǎo)致應(yīng)用徹底崩潰(這樣就會(huì)導(dǎo)致第三方接入的 App 體驗(yàn)性非常差),甚至?xí)苯訉?dǎo)致接入方的用戶流失;
統(tǒng)一的開發(fā)規(guī)范:對(duì)于 SDK 開發(fā)規(guī)范來說,統(tǒng)一的命名規(guī)范很重要,最好的狀態(tài)是“接入方看到接口命名就能知道是哪家廠商的 SDK”,換句話說就是 SDK 的命名規(guī)范統(tǒng)一,形成自己公司的品牌效應(yīng),此外也方便開發(fā)者進(jìn)行接入使用。此外也需要具有自己的編碼規(guī)范,你可以在網(wǎng)上找到大廠的規(guī)范模板,并通過借鑒整理出屬于自己的規(guī)范,從而盡早統(tǒng)一代碼風(fēng)格;
Library 小而精:小是指要避免造成接入方的App增加很大,不然會(huì)引起接入方的不滿,甚至下架。精是指功能要專注,比如極光推送,就是專注推送相關(guān)的功能;
不依賴第三方 SDK:這個(gè)也很好理解,SDK 中如果又依賴其他第三方 SDK, 不僅會(huì)導(dǎo)致 SDK 的體積變大,也會(huì)影響接入方集成 SDK 的相關(guān)成本。

靜態(tài)連接:一般是指在創(chuàng)建應(yīng)用程序的時(shí)候,將庫集成進(jìn)去,這樣做的好處就是應(yīng)用程序包自身可以獨(dú)立運(yùn)行,而不好的地方就是包會(huì)略顯臃腫,庫不能共享(靜態(tài)庫經(jīng)常以 .a 結(jié)尾);
動(dòng)態(tài)連接:創(chuàng)建應(yīng)用的時(shí)候只約定好與庫之間的調(diào)用關(guān)系,而不徹底將庫包集成進(jìn)應(yīng)用。這樣在應(yīng)用運(yùn)行時(shí),需要運(yùn)行環(huán)境中提供庫,并且連接裝載。優(yōu)劣與靜態(tài)庫相反,動(dòng)態(tài)鏈接庫需要庫環(huán)境,但由于本身不集成庫內(nèi)容,會(huì)比較小,同時(shí)也為和其他應(yīng)用共享庫的使用提供了可能(常見的動(dòng)態(tài)庫是 Windows 下的 .dll,Linux 下的 .so,Mac 下的 .dylib/.tbd)。
 
靜態(tài)庫:鏈接時(shí)完整地拷貝至可執(zhí)行文件中,被多次使用就有多份冗余拷貝。表現(xiàn)形式為 .a和.framework。動(dòng)態(tài)庫:鏈接時(shí)不復(fù)制,程序運(yùn)行時(shí)由系統(tǒng)動(dòng)態(tài)加載到內(nèi)存,供程序調(diào)用,系統(tǒng)只加載一次,多個(gè)程序共用,節(jié)省內(nèi)存。 表現(xiàn)形式為 .dylib和.framework。注意:動(dòng)態(tài)庫只能蘋果使用,如果項(xiàng)目中使用了動(dòng)態(tài)庫不允許上架(如:jspatch)
a與.framework有什么區(qū)別?

.a是一個(gè)純二進(jìn)制文件,.framework中除了有二進(jìn)制文件之外還有資源文件。 .a文件不能直接使用,至少要有.h文件配合(微信的SDK就是這種形式),.framework文件可以直接使用。 .a + .h + sourceFile = .framework。 建議用.framework。再者 靜態(tài)方式開發(fā),一直是iOS SDK開發(fā)的主流方式

靜態(tài)庫和動(dòng)態(tài)庫的區(qū)別

如果說要找出靜態(tài)庫與動(dòng)態(tài)庫的區(qū)別,那可以從文件鏈接(每個(gè)源代碼模塊獨(dú)立編譯,然后按照需要將他們組裝起來,這個(gè)組裝模塊的過程,就是鏈接)的角度進(jìn)行解釋:

靜態(tài)庫:鏈接時(shí)會(huì)被完整的復(fù)制到可執(zhí)行文件中,所以如果兩個(gè)程序都用了某個(gè)靜態(tài)庫,那么每個(gè)二進(jìn)制可執(zhí)行文件里面,都會(huì)含有這份靜態(tài)庫的代碼;
動(dòng)態(tài)庫:鏈接時(shí)不復(fù)制,而是在程序啟動(dòng)后動(dòng)態(tài)加載,然后再進(jìn)行符號(hào)決議(符號(hào)綁定)。理論上動(dòng)態(tài)庫只存在一份就可以了。其他的程序都可以動(dòng)態(tài)鏈接到這個(gè)動(dòng)態(tài)庫上面,從而節(jié)省內(nèi)存(內(nèi)存中只有一份動(dòng)態(tài)庫)。另外一個(gè)好處是,由于動(dòng)態(tài)庫并不綁定到可執(zhí)行程序上,所以我們想升級(jí)這個(gè)動(dòng)態(tài)庫就很容易,windows和linux上面一般插件和模塊機(jī)制都是這樣實(shí)現(xiàn)的。
具體的優(yōu)劣勢(shì)可以看這張表:

 

總結(jié)

以上是生活随笔為你收集整理的iOS SDK开发的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。