不知道區(qū)別的人,大概率是你還沒搞懂 API、SDK 是什么。 講個小故事:
研發(fā)人員A開發(fā)了軟件A,研發(fā)人員B正在研發(fā)軟件B。 有一天,研發(fā)人員B想要調(diào)用軟件A的部分功能來用,但是他又不想從頭看一遍軟件A的源碼和功能實(shí)現(xiàn)過程,怎么辦呢? 研發(fā)人員A想了一個好主意:我把軟件A里你需要的功能打包好,寫成一個函數(shù)。你按照我說的流程,把這個函數(shù)放在軟件B里,就能直接用我的功能了! 其中,API就是研發(fā)人員A說的那個函數(shù)。
這就是API的誕生。 日常生活中,我們有很多類似API的場景,比如:
電腦需要調(diào)用手機(jī)里面的信息,這時(shí)候你會拿一根數(shù)據(jù)線將電腦手機(jī)連接起來,電腦和手機(jī)上連接數(shù)據(jù)線的接口就相當(dāng)于“API接口”。如圖所示:
那SDK又是什么? SDK 就是 Software Development Kit 的縮寫,翻譯過來——軟件開發(fā)工具包。這是一個覆蓋面相當(dāng)廣泛的名詞,可以這么說:輔助開發(fā)某一類軟件的相關(guān)文檔、范例和工具的集合都可以叫做SDK。 SDK被開發(fā)出來是為了減少程序員工作量的。 比如—— 有公司開發(fā)出某種軟件的某一功能,把它封裝成 SDK(比如數(shù)據(jù)分析 SDK 就是能夠?qū)崿F(xiàn)數(shù)據(jù)分析功能的SDK),出售給其他公司做開發(fā)用,其他公司如果想要給軟件開發(fā)出某種功能,但又不想從頭開始搞開發(fā),直接付錢省事。 現(xiàn)在可以談?wù)?API 和 SDK 的區(qū)別了。 總的來說,兩者沒有值得比較的區(qū)別,因?yàn)槭蔷哂嘘P(guān)聯(lián)性的兩種東西。 你可以把SDK想象成一個虛擬的程序包,在這個程序包中有一份做好的軟件功能,這份程序包幾乎是全封閉的,只有一個小小接口可以聯(lián)通外界,這個接口就是API。 比如—— 我們現(xiàn)在要在企業(yè) ERP 系統(tǒng)中增加某個功能(比如自動備份、數(shù)據(jù)分析、云存儲等),但又不想耗費(fèi)大量時(shí)間、也沒那么多研發(fā)親自去做這個功能。這時(shí)我們可以選擇使用這個“SDK”軟件包,把 ERP 系統(tǒng)連接上 API 接口,就可以使用 SDK 軟件包里的功能。
舉個實(shí)例輔助理解:
【中鐵大橋科研院】有一個自研的信息平臺,用于管理業(yè)務(wù)數(shù)據(jù)。 但他們曾面臨一個問題——盡管有信息平臺,卻因?yàn)橄到y(tǒng)的獨(dú)立性,數(shù)據(jù)的上傳和備份,需要依靠人工在 excel 里來回操作,效率很低。 由于系統(tǒng)的開發(fā)周期長、成本高,橋科院將目光聚焦到現(xiàn)成的功能軟件上。 后來通過 API 將簡道云直接插入公司數(shù)據(jù)庫,數(shù)據(jù)可自動上傳至信息平臺上并統(tǒng)一展示;再通過 webhook 把數(shù)據(jù)推送到服務(wù)器,實(shí)現(xiàn)自動備份。
API將信息平臺與簡道云相連 在這一過程中,簡道云扮演的角色就是 SDK,而簡道云配備 API 接口,可以對接外部系統(tǒng),讓橋科院不用開發(fā)直接實(shí)現(xiàn)了數(shù)據(jù)自動上傳、備份的功能。 最后,貼近生活講講兩者的關(guān)系: 有一杯密封飲料,它的名字叫做“SDK”。 飲料上插著吸管,吸管的名字叫“API”。 把你叫做“XX系統(tǒng)”。 如果你想喝到 SDK 里的飲料(讓系統(tǒng)擁有 SDK 中的功能),你必須通過 API 這根吸管來實(shí)現(xiàn)(通過 API 連接你的系統(tǒng)和 SDK 工具包),否則你就喝不到飲料。 所以: SDK=放著你想要的軟件功能的軟件包 API=SDK上唯一的接口 不知道你這次真的懂了沒?
編輯:黃飛
-
API
+關(guān)注
關(guān)注
2文章
1600瀏覽量
63975 -
SDK
+關(guān)注
關(guān)注
3文章
1076瀏覽量
49015
原文標(biāo)題:SDK 和 API 的區(qū)別是什么?
文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
Power Optimization SDK介紹之Static API
SDK、API、Open API有什么區(qū)別(iot開發(fā)平臺)
SDK、API、Open API有什么區(qū)別(iot開發(fā)平臺)
SDK及API相關(guān)資料推薦
OpenHarmony SDK只支持API8和API9嗎?
OpenHarmony 應(yīng)用開發(fā)SDK、API 與基礎(chǔ)工具
ESP8266 RTOS SDK軟件開發(fā)包API參考資料免費(fèi)下載

SDK和API的區(qū)別是什么?
ESP8266 Non OS SDK API參考

ESP8266 RTOS SDK API參考(僅針對舊版SDK V2.X及之前版本)

SDK 與API 在視頻環(huán)境中的區(qū)別
ESP8266 Non-OS SDK API參考

評論