DLL,SDK,API專業技術術語

SDK(software development kit),中文可譯爲“軟件開發工具包”。

一般都是一些被軟件工程師用於爲特定的軟件包、軟件架構、硬件平臺、操作系統等建立應用軟件的開發工具的集合。通俗點是指由第三方服務商提供的實現軟件產品某項功能的工具包。在編輯器裏敲代碼的時候它會自動補全代碼、自動檢查錯誤。

通常SDK是由專業性質的公司提供專業服務的集合,比如提供安卓開發工具、或者基於硬件開發的服務等。也有針對某項軟件功能的SDK,如推送技術、圖像識別技術、移動支付技術、語音識別分析技術等,在互聯網開放的大趨勢下,一些功能性的SDK已經被當作一個產品來運營。

開發者不需要再對產品的每個功能進行開發,選擇合適穩定的SDK服務並花費很少的經歷就可以在產品中集成某項功能。

API(application programming interface),中文可譯爲“應用程序編程接口”。提供用戶編程時的接口,是一些預先定義的函數,目的是提供應用程序與開發人員基於某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工作機制的細節。DOSAPI 是“Thinking in彙編語言”的,而 Windows API 則是“Thinking in 高級語言”的,我們通常指的是Windows API ,DOSAPI是系統程序的一部分,他們與系統一同被載入內存並且可以通過中斷矢量表找到他們的入口,那麼關於 Windows API又是 呢?要說明白這個問題就不得不引入這個概念——DLL

DLL( Dynamic Link Library),中文譯爲“動態鏈接庫”。在windows環境下含有大量 .dll格式的文件,這些文件就是動態鏈接庫文件,其實也是一種可執行文件格式。跟 .exe 文件不同的是,.dll文件不能直接執行,他們通常由 .exe 在執行時裝入,內含有一些資源以及可執行代碼等。其實 Windows 的三大模塊就是以DLL的形式提供的(Kernel32.dll,User32.dll,GDI32.dll),裏面就含有了 API函數的執行代碼。爲了使用 DLL 中的 API 函數, 必須要有 API 函數的聲明(.H)和其導入庫(.LIB),導入庫可以先這樣理解:導入庫是爲了在 DLL 中找到 API 的入口點而使用的。

實際上SDK包含了API的定義,API定義一種能力,一種接口的規範,而SDK可以包含這種能力、包含這種規範。但是SDK又不完完全全只包含API以及API的實現,它是一個軟件工具包,它還有很多其他輔助性的功能。

爲了使用 API 函數,我們就要有跟 API 所對應的 .H 和 .LIB 文件,而 SDK 正是提供了一整套開發 Windows 應用程序所需的相關文件、範例和工具的“工具包”。

SDK 包含了使用 API 的必需資料,所以人們也常把僅使用 API 來編寫 Windows 應用程序的開發方式叫做“SDK編程”。而API和 SDK 是開發Windows應用程序所必需的東西,所以其它編程框架和類庫都是建立在它們之上的,比如VCL 和MFC,雖然他們比起“SDK 編程”來有着更高的抽象度,但這絲毫不妨礙它們在需要的時候隨時直接調用 API 函數 。

舉例:

 

假設你要做一款WiFi可視門鈴,APP功能有:
1. 視頻對講
2. APP開鎖
3. 訪客截圖
4. 移動偵測
5. 觸發警報
6. 人臉識別
首先,要做1-6的API, 組成了SDK, 然後根據SDK開發Project File項目文件,製作APP, 門鈴上寫入Firmware固件(Firmware是門鈴的軟件,是SDK和門鈴溝通的橋樑)。
如下圖:

後來,你想升級門鈴,加入新功能 7. 虹膜識別,做API-7, 組成新的SDK, 生成新的Firmware, 更新到門鈴,搞定。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章