<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SDK 和 API 的區(qū)別是什么?

          共 1636字,需瀏覽 4分鐘

           ·

          2022-03-10 20:30

          來自:知乎,作者:簡道云

          鏈接:https://www.zhihu.com/question/21691705/answer/770586138

          不知道區(qū)別的人,大概率是你還沒搞懂 API、SDK 是什么。

          講個小故事:

          研發(fā)人員A開發(fā)了軟件A,研發(fā)人員B正在研發(fā)軟件B。

          有一天,研發(fā)人員B想要調(diào)用軟件A的部分功能來用,但是他又不想從頭看一遍軟件A的源碼和功能實現(xiàn)過程,怎么辦呢?

          研發(fā)人員A想了一個好主意:我把軟件A里你需要的功能打包好,寫成一個函數(shù)。你按照我說的流程,把這個函數(shù)放在軟件B里,就能直接用我的功能了!

          其中,API就是研發(fā)人員A說的那個函數(shù)。

          這就是API的誕生。

          日常生活中,我們有很多類似API的場景,比如:

          電腦需要調(diào)用手機里面的信息,這時候你會拿一根數(shù)據(jù)線將電腦手機連接起來,電腦和手機上連接數(shù)據(jù)線的接口就相當于“API接口”。如圖所示:

          那SDK又是什么?

          SDK 就是 Software Development Kit 的縮寫,翻譯過來——軟件開發(fā)工具包。這是一個覆蓋面相當廣泛的名詞,可以這么說:輔助開發(fā)某一類軟件的相關(guān)文檔、范例和工具的集合都可以叫做SDK。

          SDK被開發(fā)出來是為了減少程序員工作量的。

          比如——

          有公司開發(fā)出某種軟件的某一功能,把它封裝成 SDK(比如數(shù)據(jù)分析 SDK 就是能夠?qū)崿F(xiàn)數(shù)據(jù)分析功能的SDK),出售給其他公司做開發(fā)用,其他公司如果想要給軟件開發(fā)出某種功能,但又不想從頭開始搞開發(fā),直接付錢省事。

          現(xiàn)在可以談?wù)?API 和 SDK 的區(qū)別了

          總的來說,兩者沒有值得比較的區(qū)別,因為是具有關(guān)聯(lián)性的兩種東西。

          你可以把SDK想象成一個虛擬的程序包,在這個程序包中有一份做好的軟件功能,這份程序包幾乎是全封閉的,只有一個小小接口可以聯(lián)通外界,這個接口就是API。

          比如——

          我們現(xiàn)在要在企業(yè) ERP 系統(tǒng)中增加某個功能(比如自動備份、數(shù)據(jù)分析、云存儲等),但又不想耗費大量時間、也沒那么多研發(fā)親自去做這個功能。這時我們可以選擇使用這個“SDK”軟件包,把 ERP 系統(tǒng)連接上 API 接口,就可以使用 SDK 軟件包里的功能。

          • 舉個實例輔助理解:

          【中鐵大橋科研院】有一個自研的信息平臺,用于管理業(yè)務(wù)數(shù)據(jù)。

          但他們曾面臨一個問題——盡管有信息平臺,卻因為系統(tǒng)的獨立性,數(shù)據(jù)的上傳和備份,需要依靠人工在 excel 里來回操作,效率很低。

          由于系統(tǒng)的開發(fā)周期長、成本高,橋科院將目光聚焦到現(xiàn)成的功能軟件上。

          后來通過 API 將簡道云直接插入公司數(shù)據(jù)庫,數(shù)據(jù)可自動上傳至信息平臺上并統(tǒng)一展示;再通過 webhook 把數(shù)據(jù)推送到服務(wù)器,實現(xiàn)自動備份。

          API將信息平臺與簡道云相連

          在這一過程中,簡道云扮演的角色就是 SDK,而簡道云配備 API 接口,可以對接外部系統(tǒng),讓橋科院不用開發(fā)直接實現(xiàn)了數(shù)據(jù)自動上傳、備份的功能。

          最后,貼近生活講講兩者的關(guān)系:

          有一杯密封飲料,它的名字叫做“SDK”。

          飲料上插著吸管,吸管的名字叫“API”。

          把你叫做“XX系統(tǒng)”。

          如果你想喝到 SDK 里的飲料(讓系統(tǒng)擁有 SDK 中的功能),你必須通過 API 這根吸管來實現(xiàn)(通過 API 連接你的系統(tǒng)和 SDK 工具包),否則你就喝不到飲料。

          所以:

          SDK=放著你想要的軟件功能的軟件包

          API=SDK上唯一的接口

          不知道你這次真的懂了沒?


          最近熬夜給大家準備了非常全的一套Java一線大廠面試題。全面覆蓋BATJ等一線互聯(lián)網(wǎng)公司的面試題及解答,由BAT一線互聯(lián)網(wǎng)公司大牛帶你深度剖析面試題背后的原理,不僅授你以魚,更授你以漁,為你面試掃除一切障礙。



          資源,怎么領(lǐng)取?


          掃二維碼,加我微信,備注:面試題


          一定要備注:面試題,不要急哦,工作忙完后就會通過!



          瀏覽 26
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  77777色婷婷 | 中文免费视频 | 国产在线资源 | 最黄色视频久久 | 国产成人无码AV一区二区网站 |