SDK、API和OPEN API有啥區別,這是最為形象的比喻

先說一下SDK和API的區別

SDK是什麼

SDK 就是 Software Development Kit 的縮寫,中文意思就是“軟件開發工具包”。

這是一個覆蓋面相當廣泛的名詞,可以這麼說:輔助開發某一類軟件的相關文檔、範例和工具的集合都可以叫做“SDK”。具體到我們這個系列教程,我們後面只討論廣義 SDK 的一個子集——即開發 Windows 平臺下的應用程序所使用的 SDK。

軟件開發工具包,只是簡單的為某個程序設計語言提供應用程序接口的一些文件,但也可能包括能與某種嵌入式系統通訊的複雜的硬件。一般的工具包括用於調試和其他用途的實用工具。

SDK還經常包括示例代碼、支持性的技術註解或者其他的為基本參考資料澄清疑點的支持文檔。軟件工程師通常從目標系統開發者那裡獲得軟件開發包。

為了鼓勵開發者使用其系統或者語言,許多 SDK 是免費提供的。軟件工程師通常從目標系統開發者那裡獲得軟件開發包,也可以直接從互聯網下載,有時也被作為營銷手段。例如,營銷公司會免費提供構建SDK 以鼓勵人們使用它,從而會吸引更多人由於能免費為其編程而購買其構件。

SDK、API和OPEN API有啥區別,這是最為形象的比喻

sdk和api的區別

SDK和API都是類似於公共服務的東西,都代表的是一種封裝,只是封裝的形式不一樣:

SDK的封裝是在客戶端層面的一個library(也叫做“包”或者“庫”),這個library提供一些客戶端API接口,類似於已經寫好了的函數,你只需要調用它就好了。SDK暴露出來的接口都是和語言相關的,如果SDK是用Java寫的,就需要用Java去調用那個函數;如果是SDK是用Objective-C寫的,就需要用Objective-C去調用那個函數。

API是封裝在服務端層面的library,從網絡服務的層面暴露出一些API接口,提供給使用這些服務的人去調用。因為封裝在服務的層面,傳輸數據用的是網絡協議(常用HTTP/TCP),就不需要管他是用什麼語言實現的。

SDK、API和OPEN API有啥區別,這是最為形象的比喻

栗子來了!

有兩套炒菜的機器,都能做酸辣土豆絲,一個叫API,一個叫SDK。

API給了你一個說明書(接口文檔),上面說:炒酸辣土豆絲,需要土豆、辣椒、醋、鹽。

API上邊有幾個洞(接口),

第一個洞,扔進去一個土豆(入參),吐出來一個削了皮的土豆(返回值);

第二個洞,扔進去一個削了皮的土豆,吐出一堆土豆絲;

第三個洞,扔進去一個辣椒,吐出來一堆辣椒絲;

第四個洞,扔進去一些醋和鹽,吐出來一份配比好的調料;

說明書上還說了:拿著那些東西,找一口鍋,你就能炒出土豆絲了!

SDK呢,只有一個洞。也有個說明書,列出了需要的材料。並且告訴你,只要把這些材料往裡一扔,我就能給你一盤酸辣土豆絲!

用戶用了之後,反饋給廠家:

SDK確實方便,但是他是咋做的酸辣土豆絲呢?我們看不著啊!

API真麻煩,還得自己去炒!但是我發現,臥槽!用API還能做出熗炒土豆絲!

不open的API只是放在你自己家的廚房裡,只有你自己能用;

open的API呢,放到了大街上,誰都能用!只要每個人在用之前先輸入個賬號密碼,炒菜機的生廠廠家核對一下,對了就能用!

SDK、API和OPEN API有啥區別,這是最為形象的比喻


分享到:


相關文章: