隨著軟體規模的日益龐大,常常需要把複雜的系統劃分成小的組成部分,程式設計介面的設計十分重要,程式設計的實踐中,程式設計介面的設計首先要使軟體系統的職責得到合理劃分,良好的介面設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的維護性和擴充套件性。api是介面的一種,在程式互動中具有重要的作用,而sdk與api有著密不可分的關係。
api
(1)api的概念
api即「應用程式程式設計介面」,是一些預先定義的函式,目的是作為「介面」溝通兩個不同的東西,提**用程式與開發人員基於某軟體或硬體得以訪問一組例程的能力,而又無需訪問原始碼,或理解內部工作機制的細節。
其實就是別人已經寫好的可以實現特定功能的函式,而你只需要根據他提供好的介面,也就是呼叫他的方法,傳入他規定的引數,然後這個函式就會幫你實現這些功能。
從介面inte***ce來說,在計算機領域是指兩個不同事物之間互動的地方,大可以到兩個完整的不同系統,小可以到兩段程式。所以這個i就這麼理解。在這個基礎上,人和程式互動的地方,叫做ui,user inte***ce,所有人輸入的包括滑鼠鍵盤觸控螢幕聲音輸入都算。那麼程式和程式互動的就叫做api,所有非人對非人互動都通過api進行互動,所謂互動,其實就是傳遞資料,觸發功能。
(2)api應用案例
api使用:這就意味著,你的**伺服器需要直接與谷歌伺服器進行對話,在掌握既定細節資訊的情況下,申請建立活動。之後,你的伺服器就會接收到谷歌的響應並進行處理,然後將相關資訊傳送回瀏覽器,比如說向使用者傳送乙個確認資訊。
(3)api產品——現在也有公司將api包裝成產品
案例:weather underground**其天氣資料api的訪問許可權給其他人。
(4)api的分類
api又分為(windows、linux、unix等系統的)系統級api,及非作業系統級的自定義api。作為一種有效的**封裝模式,微軟windows的api開發模式已經為許多商業應用開發的公司所借鑑,並開發出某些商業應用系統的api函式予以發布,方便第三方進行功能擴充套件。如google、蘋果電腦公司,以及諾基亞等手機開發的api等等。
api又分為開放式api和私有api。顧名思義,開放式api即是向所有人公開的介面,允許任何人呼叫它並獲取到它背後的資料,有時公司會將 api 作為其公共開放系統,也就是說,公司制定自己的系統介面標準,當需要執行系統整合、自定義和程式應用等操作時,公司所有成員都可以通過該介面標準呼叫源**,該介面標準被稱之為開放式api。私有api即介面未對外開放。
sdk
(1)sdk的概念
sdk即「軟體開發工具包」,一般是一些被軟體工程師用於為特定的軟體包、軟體框架、硬體平台、作業系統等建立應用軟體的開發工具的集合。通俗點是指由第三方服務商提供的實現軟體產品某項功能的工具包。
通常sdk是由專業性質的公司提供專業服務的集合,比如提供安卓開發工具、或者基於硬體開發的服務等。也有針對某項軟體功能的sdk,如推送技術、影象識別技術、移動支付技術、語音識別分析技術等,在網際網路開放的大趨勢下,一些功能性的sdk已經被當作乙個產品來運營。
開發者不需要再對產品的每個功能進行開發,選擇合適穩定的sdk服務並花費很少的經歷就可以在產品中整合某項功能。
(2)sdk和api的區別
sdk相當於開發整合工具環境,api就是資料介面。在sdk環境下呼叫api資料。
實際上sdk包含了api的定義,api定義一種能力,一種介面的規範,而sdk可以包含這種能力、包含這種規範。但是sdk又不完完全全只包含api以及api的實現,它是乙個軟體工具包,它還有很多其他輔助性的功能。
sdk 包含了使用 api 的必需資料,所以人們也常把僅使用 api 來編寫 windows 應用程式的開發方式叫做「sdk程式設計」。
通俗語言解釋
api
前端呼叫後端資料的乙個通道,就是我們俗說的介面,通過這個通道,可以訪問到後端的資料,但是又無需呼叫源**。
sdk
工程師為輔助開發某類軟體的相關文件、範例和工具的集合,使用sdk可以提高開發效率,更簡單的接入某個功能。
舉例說明:
乙個產品想實現某個功能,可以找到相關的sdk,工程師直接接入sdk,就不用再重新開發了。
sdk 和 api 的區別??????
定義 1 api 2 sdk sdk software development kit 中文是 軟體開發工具組 由一系列的工具組合在一起,編輯器裡敲 的時候它會自動補全 自動錯誤檢查等 區別 sdk 包含了使用 api 的必需資料。sdk是開發工具提供商提供的,而api是統一定的系統 作業系統或專用...
API和SDK的區別
1 api是什麼 2 sdk是什麼 sdk全稱software development kit,軟體開發工具包。一般都是一些軟體工程師為特定的軟體包 軟體框架 硬體平台 作業系統等建立應用軟體時的開發工具的集合。通俗來講就是第三方服務商提供的實現產品軟體某項功能的工具包。再來舉個粟子 老闆讓胖虎來完...
SDK和API的區別
講個小故事 研發人員a開發了軟體a,研發人員b正在研發軟體b。有一天,研發人員b想要呼叫軟體a的部分功能來用,但是他又不想從頭看一遍軟體a的原始碼和功能實現過程,怎麼辦呢?研發人員a想了乙個好主意 我把軟體a裡你需要的功能打包好,寫成乙個函式。你按照我說的流程,把這個函式放在軟體b裡,就能直接用我的...