1.在概念方面
API是應(yīng)用程序編程接口,是一些預(yù)先定義的函數(shù),或者軟件系統(tǒng)不同部分組成銜接的約定。SDK是軟件開發(fā)工具包,一般都是一些軟件工程師為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應(yīng)用軟件時的開發(fā)工具的集合。
2.在性質(zhì)方面
API是一個確定的功能,已經(jīng)明確了它的作用(比如做加法)。而SDK就像是很多方法的集合體,是一個工具。比如你要做加法,你就調(diào)用計算機(jī)SDK的加法API實現(xiàn),要做減法就調(diào)用減法API實現(xiàn),無論你想完成什么計算,SDK里總有能實現(xiàn)的方法。
3.在形式包裝方面
API是封裝在服務(wù)端層面的library,從網(wǎng)絡(luò)服務(wù)的層面暴露出一些API接口,提供給使用這些服務(wù)的人去調(diào)用。因為封裝在服務(wù)的層面,傳輸數(shù)據(jù)用的是網(wǎng)絡(luò)協(xié)議(常用HTTP/TCP),就不需要管他是用什么語言實現(xiàn)的。
SDK的封裝是在客戶端層面的一個library,library提供一些客戶端API接口,類似于已經(jīng)寫好了的函數(shù),你只需要調(diào)用它就好了。SDK暴露出來的接口都是和語言相關(guān)的,如果SDK是用Java寫的,就需要用Java去調(diào)用那個函數(shù);如果是SDK是用Objective-C寫的,就需要用Objective-C去調(diào)用那個函數(shù)。
4.功能和目的不同
API的主要功能為提供通用功能集,API同時作為一種中間件,為各平臺提供數(shù)據(jù)共享的能力;而SDK發(fā)明的目的就是為了減少工作量,其主要功能是幫助程序員開發(fā)應(yīng)用程序。
以上就是API、SDK有什么不同?的內(nèi)容。