天天看點

SDK和API的差別?

作者:成強連結:https://www.zhihu.com/question/21691705/answer/26406216來源:知乎     SDK就是Kit,工具箱嘛,IOS平台上就是XCode,一系列的工具組合在一起,比如你在編輯器裡敲代碼的時候它會自動補全代碼,自動錯誤檢查,你點一下Run,它會調用編譯器來自動編譯,編譯完它會調用iPhone的模拟器來運作,這就是SDK,提供整套的開發工具供開發者使用。OpenAPI就是網站提供的接口,比如你想開發一個圍脖的手機用戶端,你從哪裡讀取資料寫入資料呢?總不能從Web版裡調用吧?那裡是一堆一堆的html代碼啊,是以OpenAPI就是網站提供的接口,供開發者接入用的。==================================================輸入簡體字,點下面繁體字API ? SDK? 傻傻厘清楚SDK (Software Development Kit)翻譯成中文就是"軟體開發工具組"是用來幫一個 産品 或 平台 開發應用程式的工具組,由産品的廠商提供給開發者使用的。通常是 某一家廠商 針對某一 平台 或 系統 或 硬體 所發佈出來用以開發應用程式的工具組,在這個工具包裡面,可能包含了各式各樣的開發工具,模拟器等。例如:給 Android平台 使用的 Android SDK 就是用來開發 Android系統上面的應用程式。API (Application Programming Interface)翻譯成中文就是"應用程式介面",其實這樣翻譯不好,應該說是"程式溝通介面"。翻譯為介面,顧名思義就要溝通兩個不同的東西用的,通常由一組函式庫所組成。在一個 同一個平台 下的 兩個不同東西(程式 or 系統),為了能取用對方的功能等等,是以一個 X程式 寫了一組函式,讓 同一平台的其他程式 取用 X程式 的功能,那組函式就可以說是那個 X程式 對外開放的 API。例如:我要在 自己的網頁 上加入 google map網頁的功能,就使用 "google map API"有時候 SDK(開發者工具包) 裡也會帶有些許 API 用來調用一些系統平台程式提供的功能例如說:視窗顯示,圖形特效等等。以下舉一個實際例子來說明,調用系統程式功能的API 是怎麽一回事開發Windows應用程式的SDK(開發者工具包) 裡就包含 Win32 API說明: Win32 API 是一個函式庫,可以給Windows應用程式 調用 Windows系統的功能在PTT看到有人問了差異性,我的看法是SDK是用來開發某一個平台的程式的工具包,API 是讓同一平台下的程式取用它的功能的函式庫。以及下面的評論1.API 通常大家都不會弄錯,的确就是以功能為導向的"方法"或"函式"清單,看程式語言或平台而定( Methods, Functions... ),而每個 API 主要都是為了達成某特定功能所設計的。開發商可以為了不同平台,設計相同的 API 讓開發者使用,也可能會因應不同平台,製作不同的 API 讓開發者使用。2.當 API 數量夠多功能夠繁複并且可互動為用的時候,( 例如為了達成某些功能,常需要同時引用某些 APIs 來完成 )開發商就會為了開發便利,而預先撰寫好一些組合好 APIs 的 API供開發者使用,來統一有特定需求的開發者能有一緻的開發與使用體驗,( 例如讓使用"網路連線"的開發者不需自己處理網路的基礎溝通資訊,與錯誤處理方式,使 API 在應用的時候有一定程度的便利性等 )然後,也陸續發展出測試、除錯工具,甚至是設計不同平台開發環境所需的套件,尤其針對不同平台,更是設計了對應的工具來協助開發、除錯;SDK 名詞之是以出現,俨然是為了彙整上述這些資源而誕生的,我想也可以說成是 API 的包含者(直接使用)與應用者(以便加速開發),也是以可以說這兩個是屬于不同層級的東西...以 Android 來說:a. 我們要擁有 Android SDK 才能開發 Android 應用程式( 針對不同開發系統而不同 Linux, Windows )b. Android SDK 裡的 APIs 統統都可以單獨使用,隻不過你會發現他們都還有許多其他的應用,而且可能還比自己寫來得更有效率c. Android SDK 跟開發環境整合後,除了提供程式碼文法錯誤檢查外,還提供模拟器平台讓我們不需要硬體就可以模拟測試d. Android SDK 内有測試用的 APIs,來協助我們檢查記憶體用量、程式效能以及狀态顯現等功能 ( 當然它建議僅在測試除錯時才使用 )以 Facebook 來說:a. 我們要下載下傳 Facebook SDK 才能開發應用程式( 針對不同開發語言或平台而不同,PHP, JavaScript, Android, iOS )b. Facebook 官網提供 SDK 詳細的 APIs 解說與使用方法、範例說明等c. Facebook 官網提供 線上測試工具,測試某些API的指令與文法以 Google Map API 來說:網頁開發,隻需使用 Google Map API 即可在網頁上開發、使用其功能( 但是在 Android, iOS 上開發則另外需要 Google Map SDK 才行 )由此可知,我們可以清楚知道 API 與 SDK 的定義差别了!按鈕進行線上轉換     API: Application Programming Interface編寫應用程式的接口,抽象概念。OpenGL is an API.SDK: Software Development Kit使用某種語言來暴露 API,提供頭檔案、庫檔案、工具(通常不是 IDE)和範例。DirectX could be an SDK.     API: Application Programming Interface編寫應用程式的接口,抽象概念。OpenGL is an API.SDK: Software Development Kit使用某種語言來暴露 API,提供頭檔案、庫檔案、工具(通常不是 IDE)和範例。DirectX could be an SDK.