本文為PMCAFF專欄作者Simon.Wang出品
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之類的,應用程序可以通過調用這部分而不必再去特意創建一個類似功能的程序段。
希望能幫助你們理解分清SDK、API、DLL…
點擊“閱讀原文”看今日話題
你是怎麼理解多閃這波操作?
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!