技术名词API/SDK/DLL的非技术层面理解
本文為PMCAFF專欄作者Simon.Wang出品
SDK、API、DLL是什么?
這幾個,沒有技術(shù)背景的產(chǎn)品經(jīng)理可能比較陌生,或許知道,也未必知道底層的原因。
這三個其實不是一個層面的東西。
API(Application Programming Interface):應(yīng)用程序編程接口
SDK(Software Development Kit)軟件開發(fā)包
DLL(Dynamic Link Library):動態(tài)鏈接庫?
API(Application Programming Interface)
維基百科的對API的定義:是用于構(gòu)建應(yīng)用程序軟件的一組子程序定義,協(xié)議和工具。一般來說,這是一套明確定義的各種軟件組件之間的通信方法,晦澀難懂。
那什么是API呢?
舉個例子:
比如你想開一家快餐店,你就必須要了解開快餐店要做什么,需要滿足一系列標(biāo)準才能開店,你要提供餐飲服務(wù)必須遵守:
工商管理稅法
公共衛(wèi)生標(biāo)準
食品安全標(biāo)準
環(huán)境安全標(biāo)準
這些標(biāo)準就是API...由管理部門制訂,遵守才能開店。所以API就是要遵守的標(biāo)準。
那對于我們現(xiàn)實開發(fā)環(huán)境來說,API就是接口。滿足了接口的要求,就可以請求調(diào)用。
如圖:一個醫(yī)生列表的API
左側(cè)是醫(yī)生列表,右側(cè)是該列表的API,列表之所以能顯示,就是因為調(diào)用了獲取醫(yī)生列表的接口(API),API里定義了每個UITableViewCell里面的參數(shù)、類型、是否必選等。用戶請求醫(yī)生列表時,醫(yī)生列表API被調(diào)用,數(shù)據(jù)就展示出來了,前端的界面就看到了醫(yī)生的信息。?
OK!API我們或多或少應(yīng)該有些認知了!
SDK(Software Development Kit)軟件開發(fā)包
那什么是SDK呢?
舉個例子:
你的快餐店經(jīng)過一些列的標(biāo)準都合格了,你終于可以開一家快餐店了,于是你又要開始繁忙了,你需要:
簽約加盟
選擇店址
門店裝修
培訓(xùn)員工
這一套流程就是你快餐店的SDK,就像任務(wù)清單一樣,它幫助你快速實現(xiàn)你要做的事...
那對于我們現(xiàn)實開發(fā)環(huán)境來說,SDK是干什么用的呢?
比如測膚:
測膚是一件很難事情,測出用戶面部特征,比如膚質(zhì)、膚色、膚齡、痘痘、黑圓圈、皺紋、黑頭情況,技術(shù)的投入也非常大,美圖開發(fā)了測膚功能,美圖美妝把測膚變成了商業(yè)模式,可見測膚的重要性,如果美圖的伙伴公司也想用測膚功能又不想自己單獨再次開發(fā),這就需要使用美圖提供測膚SDK了,這樣就可以快速實現(xiàn)。
所以SDK就是開發(fā)包,是提供給開發(fā)人員進行應(yīng)用程序開發(fā)的,這樣程序員就可以快速的建立應(yīng)用軟件,而省去了編寫硬件代碼和基礎(chǔ)代碼框架的過程。
OK!SDK我們或多或少應(yīng)該有些了解了!
DLL(Dynamic Link Library):動態(tài)鏈接庫
那什么是DLL呢?
舉個例子:
比如你想吃飯,嫌麻煩沒時間自己做飯吃,于是你選擇了出去吃,你看了很多快餐店:
黃燜雞
大娘水餃
沙縣小吃
其他快餐店
你可以隨便去,這些快餐店就是DLL...提供某種功能實現(xiàn)并且不需要你了解細節(jié)...你只管走進去給錢點餐吃飽抹嘴走人...
那對于我們現(xiàn)實開發(fā)環(huán)境來說,DLL就是動態(tài)鏈接庫。
其實在Windows環(huán)境下含有大量.dll格式文件,這是文件就是動態(tài)鏈接庫,也是一種可執(zhí)行文件格式。跟.exe文件不同的是,.dll文件不能直接執(zhí)行,他們通過由.exe在執(zhí)行時裝入,內(nèi)含有一些資源以及可執(zhí)行代碼等。
那DLL的作用是什么呢?
就好比一列火車,如果你做成的火車是從頭到尾都是不可分割的,這樣的話,如果這列火車的中間有一小部分出了問題,也許你就要把整個火車都卸了,但是用了這種動態(tài)鏈接庫的話就好比是一節(jié)一節(jié)的火車,如果中間出了問題,只要把它出問題的那節(jié)卸下來修理就行。
而每一個dll動態(tài)鏈接庫就是類似火車中的每一小節(jié),一個比較好的程序都是由多個動態(tài)鏈接庫組成,這樣做的還有一個好處就是可以減少冗余,如果一個程序中要重復(fù)調(diào)用一段功能就要將這部分做成動態(tài)鏈接庫,就比如windows系統(tǒng)中的user32.dll之類的,應(yīng)用程序可以通過調(diào)用這部分而不必再去特意創(chuàng)建一個類似功能的程序段。
希望能幫助你們理解分清SDK、API、DLL…
點擊“閱讀原文”看今日話題
你是怎么理解多閃這波操作?
總結(jié)
以上是生活随笔為你收集整理的技术名词API/SDK/DLL的非技术层面理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 资讯类产品的数据驱动增长方法论
- 下一篇: 中年离职的平庸产品,该如何面对人生的下半