首页 文章

API和SDK之间的区别

提问于
浏览
174

我试图向非开发人员解释API和SDK之间的区别 . 我需要解释为什么商业指纹软件供应商可能不会提供SDK,尽管他们肯定会使用它 .

设备供应商和软件供应商都可以而且应该公开定义良好的API . 该API允许其他软件程序(被编写)与供应商自己的软件组件或硬件设备互操作 .

如果有人有更多的想法来清楚地解释这一点,我将非常感谢这些建议 . 我想强调 the goal is to explain the concepts to a non-programmer who does not know developer lingo .

具体来说,在指纹传感器与软件进行注册/验证的环境中,以下是我尝试解释它的方法:

如果我是指纹设备/传感器制造商而不是编写软件的业务,我可以更好地推广我的产品的方法是:确保我的设备驱动程序可以安装在各种操作系统上定义并提供软件API开发人员编写程序(例如,用于注册,验证)以“交谈”或使用我的设备开发并提供SDK(超出API的一步),使软件开发人员更容易,更快地编写与我的设备一起使用的程序 . SDK可以提供帮助程序代码库,参考应用程序,文档等 .

10 回答

  • 0

    我不确定这两个术语有任何官方定义 . 我理解一个API是一组文档化的可编程库和支持源,如头文件或IDL文件 . SDK通常包含API,但通常经常添加编译器,工具和示例 .

  • 2

    假设公司C以某种方式提供产品P和P涉及软件 . 然后,C可以为驱动P软件系统的软件开发人员提供一个库/库集 .

    那个库/库是 SDK . 它是P系统的一部分 . 它是软件开发人员使用的工具包,用于修改,配置,修复,改进等P的软件 .

    如果C想要向其他公司/系统提供P的功能,那么它就是 API .

    这是P.的接口 . 外部系统与P交互的一种方式 .

    如果从实施的角度考虑,它们看起来非常相似 . 特别是现在互联网已经变得像一个大型的分布式操作系统 .

    但就目的而言,它们实际上是截然不同的 .

    您使用SDK构建某些内容,并使用API来使用或使用某些内容 .

  • 0

    小菜一碟:

    • API是 interface . 这就像电话系统的规格或你家里的电线 . 任何*都可以使用它,只要它知道如何接口 . 您甚至可以购买现成的软件来使用特定的API,就像您可以购买现成的电话设备或插入家中交流电线的设备一样 .

    • SDK是 implementation tooling . 它就像一个套件,可以让你 Build 一些定制的东西来连接电话系统或电线 .

    *任何东西都可以使用API . 某些API具有安全规定,需要许可证密钥,身份验证等,这可能会禁止在特定实例中完全使用API,但这仅仅是因为特定的身份验证/授权步骤失败 . 任何提供正确凭据的软件(如果需要)都可以使用API .

    **从技术上讲,如果API有详细记录,您不需要SDK来构建自己的软件来使用API . 但是拥有SDK通常会使这个过程变得更加容易 .

  • 49

    API =应用程序编程接口SDK =软件开发工具包

    SDK 似乎是一整套 API ,它允许您执行创建应用程序所需的大部分操作 . 此外, SDK 可能包含用于开发平台/项目的其他工具 .

    另一方面, API 只是一系列可能有益于特定目的的相关方法 .

    例如,JDK(Java Development Kit)包含API以及编译器,运行时和其他各种工具 . Java API就是构成核心语言的所有库,您可以使用它们开箱即用 .

    API的示例:Java API,Google Maps API,Flash Player API .

    SDK的示例:JDK,GWT,Flex SDK .

  • 9

    API 就像一个令人费解的游戏的构建块,孩子们玩这个游戏来加入不同形状的积木并构建他们能想到的东西 .

    另一方面, SDK 是一个适当的工作室,所有的开发工具都可用,而不是预先形成的构建块 . 在研讨会中,您拥有实际工具,并且您不仅限于块,因此可以创建自己的块,或者可以创建没有任何块的东西 .

    coding without an SDK or API 就像是在没有工作坊的情况下从零开始制作一切 - 你甚至可以制作自己的工具

  • 25

    Application Programming Interface 是一组例程/数据结构/类,它指定了与OS X,Android,项目管理应用程序,虚拟化软件等目标平台/软件交互的方式 .

    虽然 Software Development Kit 是API / s的包装,但开发人员可以轻松完成工作 .

    例如,Android SDK便于开发人员与Android平台进行交互作为一个整体,平台本身是由通过API进行通信的复合软件组件构建的 .

    此外,有时SDK是为了便于在特定编程语言中进行开发而构建的 . 例如,Selenium web driver(内置于Java)提供了API来本地驱动任何浏览器,而capybara可以被认为是一个SDK,可以帮助Ruby开发人员使用Selenium Web驱动程序 . 但是,Selenium Web驱动程序本身也是一个SDK,它将与各种本机浏览器驱动程序的交互组合到一个程序包中 .

  • 211

    API =可用单词及其含义的词典(以及组合它们所需的语法)

    SDK =一个Word处理系统......适用于2岁婴儿......从想法开始写作

    虽然您可以在几年后上学并成为您的语言的主人,但使用SDK将帮助您立即编写完整有意义的句子(原谅这样一个事实,在这个例子中,作为一个婴儿,你甚至没有得到学习任何其他语言至少学习使用SDK . )

  • 6

    怎么样......就像你想在家里安装家庭影院系统一样 . 使用API就像获取所有电线,螺钉,钻头和碎片一样 . 可能性是无穷无尽的(只受你收到的碎片约束),但有时候压倒一切 . SDK就像获取套件一样 . 你仍然需要把它放在一起,但它更像是为一块宜家书架提供预切片和说明而不是一盒螺丝 .

  • 3

    API是关于如何做某事的规范,一个界面,例如“铁轨相距四英尺,金属条宽1英寸”现在您已经拥有了API,现在可以建造适合这些铁路的火车跟踪,如果你想去任何地方 . API只是关于如何构建代码的信息,它没有做任何事情 .

    SDK是一些已经担心规范的实际工具包 . “这是一列火车,一些煤炭,一个维修人员 . 用它来到一个地方”使用SDK你不用担心具体细节 . SDK是实际代码,它可以单独用来做某事,但当然,火车不会自动启动,你仍然需要指挥来控制火车 .

    SDK也有自己的API . “如果你想给火车上电,把煤放进去”,“拉动蓝色的杠杆移动火车 . ”,“如果火车开始表现得好笑,请打电话给维修人员”等 .

  • 8

    您使用SDK来访问库的功能,并使用API来控制它 .

相关问题