隨著軟件規(guī)模的日益龐大,常常需要把復(fù)雜的系統(tǒng)劃分成小的組成部分,編程接口的設(shè)計十分重要,程序設(shè)計的實(shí)踐中,編程接口的設(shè)計首先要使軟件系統(tǒng)的職責(zé)得到合理劃分,良好的接口設(shè)計可以降低系統(tǒng)各部分的相互依賴,提高組成單元的內(nèi)聚性,降低組成單元間的耦合程度,從而提高系統(tǒng)的維護(hù)性和擴(kuò)展性。API是接口的一種,在程序交互中具有重要的作用,而SDK與API有著密不可分的關(guān)系。
SDK
(1)SDK的概念
SDK即“軟體開發(fā)工具包”,一般是一些被軟件工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的集合。通俗點(diǎn)是指由第三方服務(wù)商提供的實(shí)現(xiàn)軟件產(chǎn)品某項功能的工具包。
通常SDK是由專業(yè)性質(zhì)的公司提供專業(yè)服務(wù)的集合,比如提供Android/ target=_blank class=infotextkey>安卓開發(fā)工具、或者基于硬件開發(fā)的服務(wù)等。也有針對某項軟件功能的SDK,如推送技術(shù)、圖像識別技術(shù)、移動支付技術(shù)、語音識別分析技術(shù)等,在互聯(lián)網(wǎng)開放的大趨勢下,一些功能性的SDK已經(jīng)被當(dāng)作一個產(chǎn)品來運(yùn)營。
開發(fā)者不需要再對產(chǎn)品的每個功能進(jìn)行開發(fā),選擇合適穩(wěn)定的SDK服務(wù)并花費(fèi)很少的經(jīng)歷就可以在產(chǎn)品中集成某項功能。
(2)SDK和API的區(qū)別
SDK相當(dāng)于開發(fā)集成工具環(huán)境,API就是數(shù)據(jù)接口。在SDK環(huán)境下調(diào)用API數(shù)據(jù)。
API
API的概念
API即“應(yīng)用程序編程接口”,是一些預(yù)先定義的函數(shù),目的是作為“介面”溝通兩個不同的東西,提供應(yīng)用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內(nèi)部工作機(jī)制的細(xì)節(jié)。
其實(shí)就是別人已經(jīng)寫好的可以實(shí)現(xiàn)特定功能的函數(shù),而你只需要根據(jù)他提供好的接口,也就是調(diào)用他的方法,傳入他規(guī)定的參數(shù),然后這個函數(shù)就會幫你實(shí)現(xiàn)這些功能。
實(shí)際上SDK包含了API的定義,API定義一種能力,一種接口的規(guī)范,而SDK可以包含這種能力、包含這種規(guī)范。但是SDK又不完完全全只包含API以及API的實(shí)現(xiàn),它是一個軟件工具包,它還有很多其他輔助性的功能。
SDK 包含了使用 API 的必需資料,所以人們也常把僅使用 API 來編寫 windows 應(yīng)用程序的開發(fā)方式叫做“SDK編程”。
用通俗語言來解釋,API是前端調(diào)用后端數(shù)據(jù)的一個通道,就是我們俗說的接口,通過這個通道,可以訪問到后端的數(shù)據(jù),但是又無需調(diào)用源代碼;而SDK是工程師為輔助開發(fā)某類軟件的相關(guān)文檔、范例和工具的集合,使用SDK可以提高開發(fā)效率,更簡單的接入某個功能,比如一個產(chǎn)品想實(shí)現(xiàn)某個功能,可以找到相關(guān)的SDK,工程師直接接入SDK,就不用再重新開發(fā)了。






