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