一、什么是API
API(Application Programming Interface) 應用程序接口,是一些預先定義的函數,目的是作為“介面”溝通兩個不同的東西,提供應用程序與開發人員基於某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工作機制的細節。
其實就是別人已經寫好的可以實現特定功能的函數,而你只需要根據他提供好的接口,也就是調用他的方法,傳入他規定的參數,然后這個函數就會幫你實現這些功能。
API的分類:
API又分為(Windows、Linux、Unix等系統的)系統級API,及非操作系統級的自定義API。作為一種有效的代碼封裝模式,微軟Windows的API開發模式已經為許多商業應用開發的公司所借鑒,並開發出某些商業應用系統的API函數予以發布,方便第三方進行功能擴展。如Google、蘋果電腦公司,以及諾基亞等手機開發的API等等。
API又分為開放式API和私有API。顧名思義,開放式API即是向所有人公開的接口,允許任何人調用它並獲取到它背后的數據,有時公司會將 API 作為其公共開放系統,也就是說,公司制定自己的系統接口標准,當需要執行系統整合、自定義和程序應用等操作時,公司所有成員都可以通過該接口標准調用源代碼,該接口標准被稱之為開放式API。私有API即接口未對外開放。
一般是一些被軟件工程師用於為特定的軟件包、軟件框架、硬件平台、操作系統等建立應用軟件的開發工具的集合。通俗點是指由第三方服務商提供的實現軟件產品某項功能的工具包。
通常SDK是由專業性質的公司提供專業服務的集合,比如提供安卓開發工具、或者基於硬件開發的服務等。也有針對某項軟件功能的SDK,如推送技術、圖像識別技術、移動支付技術、語音識別分析技術等,在互聯網開放的大趨勢下,一些功能性的SDK已經被當作一個產品來運營。
開發者不需要再對產品的每個功能進行開發,選擇合適穩定的SDK服務並花費很少的經歷就可以在產品中集成某項功能。
實際上SDK包含了API的定義,API定義一種能力,一種接口的規范,而SDK可以包含這種能力、包含這種規范。但是SDK又不完完全全只包含API以及API的實現,它是一個軟件工具包,它還有很多其他輔助性的功能,sdk用來實現所需的邏輯,很多個邏輯都在sdk內實現,api形成接口對外提供調用部分功能,api對外提供的可能只是部分sdk內的功能。
