1 回答

TA貢獻2003條經驗 獲得超2個贊
SDK就是Kit,工具箱嘛,IOS平臺上就是XCode,一系列的工具組合在一起,比如你在編輯器里敲代碼的時候它會自動補全代碼,自動錯誤檢查,你點一下Run,它會調用編譯器來自動編譯,編譯完它會調用iPhone的模擬器來運行,這就是SDK,提供整套的開發(fā)工具供開發(fā)者使用。
OpenAPI就是網(wǎng)站提供的接口,比如你想開發(fā)一個圍脖的手機客戶端,你從哪里讀取數(shù)據(jù)寫入數(shù)據(jù)呢?總不能從Web版里調用吧?那里是一堆一堆的html代碼啊,所以OpenAPI就是網(wǎng)站提供的接口,供開發(fā)者接入用的,比如聚合數(shù)據(jù)平臺。
SDK (Software Development Kit)翻譯成中文就是"軟體開發(fā)工具組"
是用來幫一個 產品 或 平臺 開發(fā)應用程式的工具組,由產品的廠商提供給開發(fā)者使用的。
通常是 某一家廠商 針對某一 平臺 或 系統(tǒng) 或 硬體 所發(fā)布出來用以開發(fā)應用程式的工具組,
在這個工具包里面,可能包含了各式各樣的開發(fā)工具,模擬器等。
例如:給 Android平臺 使用的 Android SDK 就是用來開發(fā) Android系統(tǒng)上面的應用程式。
API (Application Programming Interface)
翻譯成中文就是"應用程式介面",其實這樣翻譯不好,應該說是"程式溝通介面"。
翻譯為介面,顧名思義就要溝通兩個不同的東西用的,通常由一組函式庫所組成。
在一個 同一個平臺 下的 兩個不同東西(程式 or 系統(tǒng)),為了能取用對方的功能等等,
所以一個 X程式 寫了一組函式,讓 同一平臺的其他程式 取用 X程式 的功能,
那組函式就可以說是那個 X程式 對外開放的 API。
例如:我要在 自己的網(wǎng)頁 上加入 google map網(wǎng)頁的功能,就使用 "google map API"
有時候 SDK(開發(fā)者工具包) 里也會帶有些許 API 用來調用一些系統(tǒng)平臺程式提供的功能
例如說:視窗顯示,圖形特效等等。
以下舉一個實際例子來說明,調用系統(tǒng)程式功能的API 是怎麼一回事
開發(fā)Windows應用程式的SDK(開發(fā)者工具包) 里就包含 Win32 API
說明: Win32 API 是一個函式庫,可以給Windows應用程式 調用 Windows系統(tǒng)的功能
在PTT看到有人問了差異性,我的看法是
SDK是用來開發(fā)某一個平臺的程式的工具包,API 是讓同一平臺下的程式取用它的功能的函式庫。
以及下面的評論
1.API 通常大家都不會弄錯,的確就是以功能為導向的"方法"或"函式"清單,
看程式語言或平臺而定( Methods, Functions... ),
而每個 API 主要都是為了達成某特定功能所設計的。
開發(fā)商可以為了不同平臺,設計相同的 API 讓開發(fā)者使用,
也可能會因應不同平臺,制作不同的 API 讓開發(fā)者使用。
2.當 API 數(shù)量夠多功能夠繁復并且可交互為用的時候,
( 例如為了達成某些功能,常需要同時引用某些 APIs 來完成 )
開發(fā)商就會為了開發(fā)便利,而預先撰寫好一些組合好 APIs 的 API
供開發(fā)者使用,來統(tǒng)一有特定需求的開發(fā)者能有一致的開發(fā)與使用體驗,
( 例如讓使用"網(wǎng)路連線"的開發(fā)者不需自己處理網(wǎng)路的基礎溝通信息,
與錯誤處理方式,使 API 在應用的時候有一定程度的便利性等 )
然后,也陸續(xù)發(fā)展出測試、除錯工具,甚至是設計不同平臺開發(fā)環(huán)境所需的套件,
尤其針對不同平臺,更是設計了對應的工具來協(xié)助開發(fā)、除錯;
SDK 名詞之所以出現(xiàn),儼然是為了匯整上述這些資源而誕生的,
我想也可以說成是 API 的包含者(直接使用)與應用者(以便加速開發(fā)),
也因此可以說這兩個是屬于不同層級的東西...
以 Android 來說:
a. 我們要擁有 Android SDK 才能開發(fā) Android 應用程式
( 針對不同開發(fā)系統(tǒng)而不同 Linux, Windows )
b. Android SDK 里的 APIs 統(tǒng)統(tǒng)都可以單獨使用,只不過你會
發(fā)現(xiàn)他們都還有許多其他的應用,而且可能還比自己寫來得更有效率
c. Android SDK 跟開發(fā)環(huán)境整合后,除了提供程式碼語法錯誤檢查外,
還提供模擬器平臺讓我們不需要硬體就可以模擬測試
d. Android SDK 內有測試用的 APIs,來協(xié)助我們檢查記憶體用量、
程式效能以及狀態(tài)顯現(xiàn)等功能 ( 當然它建議僅在測試除錯時才使用 )
以 Facebook 來說:
a. 我們要下載 Facebook SDK 才能開發(fā)應用程式
( 針對不同開發(fā)語言或平臺而不同,PHP, JavaScript, Android, iOS )
b. Facebook 官網(wǎng)提供 SDK 詳細的 APIs 解說與使用方法、范例說明等
c. Facebook 官網(wǎng)提供 線上測試工具,測試某些API的指令與語法
以 Google Map API 來說:
網(wǎng)頁開發(fā),只需使用 Google Map API 即可在網(wǎng)頁上開發(fā)、使用其功能
( 但是在 Android, iOS 上開發(fā)則另外需要 Google Map SDK 才行 )
由此可知,我們可以清楚知道 API 與 SDK 的定義差別了!按鈕進行在線轉換
- 1 回答
- 0 關注
- 808 瀏覽
添加回答
舉報