SDK 和 API 的區(qū)別是什么?
作者:簡道云
鏈接:https://www.zhihu.com/question/21691705/answer/770586138
講個(gè)小故事:
研發(fā)人員A開發(fā)了軟件A,研發(fā)人員B正在研發(fā)軟件B。??
有一天,研發(fā)人員B想要調(diào)用軟件A的部分功能來用,但是他又不想從頭看一遍軟件A的源碼和功能實(shí)現(xiàn)過程,怎么辦呢???
研發(fā)人員A想了一個(gè)好主意:我把軟件A里你需要的功能打包好,寫成一個(gè)函數(shù)。你按照我說的流程,把這個(gè)函數(shù)放在軟件B里,就能直接用我的功能了!
其中,API就是研發(fā)人員A說的那個(gè)函數(shù)。

這就是API的誕生。
日常生活中,我們有很多類似API的場景,比如:
電腦需要調(diào)用手機(jī)里面的信息,這時(shí)候你會(huì)拿一根數(shù)據(jù)線將電腦手機(jī)連接起來,電腦和手機(jī)上連接數(shù)據(jù)線的接口就相當(dāng)于“API接口”。如圖所示:

那SDK又是什么?
比如——
有公司開發(fā)出某種軟件的某一功能,把它封裝成SDK(比如數(shù)據(jù)分析SDK就是能夠?qū)崿F(xiàn)數(shù)據(jù)分析功能的SDK),出售給其他公司做開發(fā)用,其他公司如果想要給軟件開發(fā)出某種功能,但又不想從頭開始搞開發(fā),直接付錢省事。
現(xiàn)在可以談?wù)凙PI和SDK的區(qū)別了。
我們現(xiàn)在要在企業(yè)ERP系統(tǒng)中增加某個(gè)功能(比如自動(dòng)備份、數(shù)據(jù)分析、云存儲(chǔ)等),但又不想耗費(fèi)大量時(shí)間、也沒那么多研發(fā)親自去做這個(gè)功能。另外搜索公眾號(hào)互聯(lián)網(wǎng)架構(gòu)師后臺(tái)回復(fù)“2T”,獲取一份驚喜禮包。這時(shí)我們可以選擇使用這個(gè)“SDK”軟件包,把ERP系統(tǒng)連接上API接口,就可以使用SDK軟件包里的功能。
舉個(gè)實(shí)例輔助理解:

所以:
不知道你這次真的懂了沒?
3、字節(jié)跳動(dòng)面試經(jīng)驗(yàn)總結(jié),已順利拿到offer
4、雷軍做程序員時(shí)寫的博客,很強(qiáng)大!
