產品技術 | 技術名詞API、SDK、DLL的非技術層面理解

SDK、API、DLL是什麼?

這幾個,沒有技術背景的產品經理可能比較陌生,或許知道,也未必知道底層的原因。

這三個其實不是一個層面的東西。

API(Application Programming Interface):應用程序編程接口
SDK(Software Development Kit)軟件開發包
DLL(Dynamic Link Library):動態鏈接庫

API(Application Programming Interface)

維基百科的對API的定義:是用於構建應用程序軟件的一組子程序定義,協議和工具。一般來說,這是一套明確定義的各種軟件組件之間的通信方法,晦澀難懂。

那什麼是API呢?

舉個例子:

比如你想開一家快餐店,你就必須要了解開快餐店要做什麼,需要滿足一系列標準才能開店,你要提供餐飲服務必須遵守:

  • 工商管理稅法、
  • 公共衛生標準、
  • 食品安全標準、
  • 環境安全標準、

這些標準就是API…由管理部門制訂,遵守才能開店。所以API就是要遵守的標準。

那對於我們現實開發環境來說,API就是接口。滿足了接口的要求,就可以請求調用。

如圖:一個醫生列表的API
在這裏插入圖片描述

左側是醫生列表,右側是該列表的API,列表之所以能顯示,就是因爲調用了獲取醫生列表的接口(API),API裏定義了每個UITableViewCell裏面的參數、類型、是否必選等。用戶請求醫生列表時,醫生列表API被調用,數據就展示出來了,前端的界面就看到了醫生的信息。

OK!API我們或多或少應該有些認知了!

SDK(Software Development Kit)軟件開發包

那什麼是SDK呢?

舉個例子:

你的快餐店經過一些列的標準都合格了,你終於可以開一家快餐店了,於是你又要開始繁忙了,你需要:

  • 簽約加盟、
  • 選擇店址、
  • 門店裝修、
  • 培訓員工…

這一套流程就是你快餐店的SDK,就像任務清單一樣,它幫助你快速實現你要做的事…

那對於我們現實開發環境來說,SDK是幹什麼用的呢?

在這裏插入圖片描述
比如測膚:

測膚是一件很難事情,測出用戶面部特徵,比如膚質、膚色、膚齡、痘痘、黑圓圈、皺紋、黑頭情況,技術的投入也非常大,美圖開發了測膚功能,美圖美妝把測膚變成了商業模式,可見測膚的重要性,如果美圖的夥伴公司也想用測膚功能又不想自己單獨再次開發,這就需要使用美圖提供測膚SDK了,這樣就可以快速實現。

所以SDK就是開發包,是提供給開發人員進行應用程序開發的,這樣程序員就可以快速的建立應用軟件,而省去了編寫硬件代碼和基礎代碼框架的過程。

OK!SDK我們或多或少應該有些瞭解了!

DLL(Dynamic Link Library):動態鏈接庫

那什麼是DLL呢?

舉個例子:

比如你想吃飯,嫌麻煩沒時間自己做飯吃,於是你選擇了出去吃,你看了很多快餐店:

  • 黃燜雞、
  • 大娘水餃、
  • 沙縣小吃、
  • 其他快餐店…

你可以隨便去,這些快餐店就是DLL…提供某種功能實現並且不需要你瞭解細節…你只管走進去給錢點餐吃飽抹嘴走人…

在這裏插入圖片描述
那對於我們現實開發環境來說,DLL就是動態鏈接庫。

其實在Windows環境下含有大量.dll格式文件,這是文件就是動態鏈接庫,也是一種可執行文件格式。跟.exe文件不同的是,.dll文件不能直接執行,他們通過由.exe在執行時裝入,內含有一些資源以及可執行代碼等。

那DLL的作用是什麼呢?

就好比一列火車,如果你做成的火車是從頭到尾都是不可分割的,這樣的話,如果這列火車的中間有一小部分出了問題,也許你就要把整個火車都卸了,但是用了這種動態鏈接庫的話就好比是一節一節的火車,如果中間出了問題,只要把它出問題的那節卸下來修理就行。

而每一個dll動態鏈接庫就是類似火車中的每一小節,一個比較好的程序都是由多個動態鏈接庫組成,這樣做的還有一個好處就是可以減少冗餘,如果一個程序中要重複調用一段功能就要將這部分做成動態鏈接庫,就比如windows系統中的user32.dll之類的,應用程序可以通過調用這部分而不必再去特意創建一個類似功能的程序段。

發佈了294 篇原創文章 · 獲贊 105 · 訪問量 101萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章