首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SDK、API和OPEN API有啥区别,这是最为形象的比喻

SDK、API和OPEN API有啥区别,这是最为形象的比喻

作者头像
IT大咖说
发布于 2019-12-17 06:58:18
发布于 2019-12-17 06:58:18
6.5K1
举报
文章被收录于专栏:IT大咖说IT大咖说
先说一下SDK和API的区别

SDK是什么

SDK 就是 Software Development Kit 的缩写,中文意思就是“软件开发工具包”。

这是一个覆盖面相当广泛的名词,可以这么说:辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做“SDK”。具体到我们这个系列教程,我们后面只讨论广义 SDK 的一个子集——即开发 Windows 平台下的应用程序所使用的 SDK。

软件开发工具包,只是简单的为某个程序设计语言提供应用程序接口的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。

SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。软件工程师通常从目标系统开发者那里获得软件开发包。

为了鼓励开发者使用其系统或者语言,许多 SDK 是免费提供的。软件工程师通常从目标系统开发者那里获得软件开发包,也可以直接从互联网下载,有时也被作为营销手段。例如,营销公司会免费提供构建SDK 以鼓励人们使用它,从而会吸引更多人由于能免费为其编程而购买其构件。

sdk和api的区别

SDK和API都是类似于公共服务的东西,都代表的是一种封装,只是封装的形式不一样:

SDK的封装是在客户端层面的一个library(也叫做“包”或者“库”),这个library提供一些客户端API接口,类似于已经写好了的函数,你只需要调用它就好了。SDK暴露出来的接口都是和语言相关的,如果SDK是用Java写的,就需要用Java去调用那个函数;如果是SDK是用Objective-C写的,就需要用Objective-C去调用那个函数。

API是封装在服务端层面的library,从网络服务的层面暴露出一些API接口,提供给使用这些服务的人去调用。因为封装在服务的层面,传输数据用的是网络协议(常用HTTP/TCP),就不需要管他是用什么语言实现的。

栗子来了!

有两套炒菜的机器,都能做酸辣土豆丝,一个叫API,一个叫SDK。

API给了你一个说明书(接口文档),上面说:炒酸辣土豆丝,需要土豆、辣椒、醋、盐。

API上边有几个洞(接口),

第一个洞,扔进去一个土豆(入参),吐出来一个削了皮的土豆(返回值);

第二个洞,扔进去一个削了皮的土豆,吐出一堆土豆丝;

第三个洞,扔进去一个辣椒,吐出来一堆辣椒丝;

第四个洞,扔进去一些醋和盐,吐出来一份配比好的调料;

说明书上还说了:拿着那些东西,找一口锅,你就能炒出土豆丝了!

SDK呢,只有一个洞。也有个说明书,列出了需要的材料。并且告诉你,只要把这些材料往里一扔,我就能给你一盘酸辣土豆丝!

用户用了之后,反馈给厂家:

SDK确实方便,但是他是咋做的酸辣土豆丝呢?我们看不着啊!

API真麻烦,还得自己去炒!但是我发现,卧槽!用API还能做出炝炒土豆丝!

不open的API只是放在你自己家的厨房里,只有你自己能用;

open的API呢,放到了大街上,谁都能用!只要每个人在用之前先输入个账号密码,炒菜机的生厂厂家核对一下,对了就能用!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT大咖说 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
清晰明了,一下子就理解了
清晰明了,一下子就理解了
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
SDK和API是什么?SDK和API的区别与联系
SDK的概念:软件开发工具包(全称:Software Development Kit)。指一些被软件工程师用于为特定的软件包、软件架构、硬件平台、操作系统等建立应用软件的开发工具的集合。简单来说就是一系列程序接口,文档,开发工具的集合。
孙小亘
2024/09/11
1.1K0
SDK和API是什么?SDK和API的区别与联系
API 与 SDK:有什么区别?
既然点进来了,相信你或多或少都听说过这两个名词了,因此,在为你解答之前,让我们先从一个例子出发。假如你想开发一个 OCR 应用(通俗的说就是文字识别应用),他的功能是识别用户上传的一张图片,然后将图片中的文字识别出来返回给用户。如下图所示:
出其东门
2020/12/31
2.1K0
1.君正SDK概述
ISVP SDK,即软件开发工具包,包括 API 库、开源源码、文档、Samples 等。开发
春江花月夜
2023/03/12
2.5K3
1.君正SDK概述
Open Measurement SDK 的能力和限制
开放测量软件开发工具包(OMSDK)使第三方广告测量服务能够收集有关广告印象和性能的信号。 这些信号由开放测量接口定义(OMID)API发送。
前Thoughtworks-杨焱
2021/12/07
1.4K0
SDK 和 API 的区别是什么
来源:https://www.zhihu.com/question/21691705/answer/770586138 不知道区别的人,大概率是你还没搞懂 API、SDK 是什么。 讲个小故事: 研发人员A开发了软件A,研发人员B正在研发软件B。 有一天,研发人员B想要调用软件A的部分功能来用,但是他又不想从头看一遍软件A的源码和功能实现过程,怎么办呢? 研发人员A想了一个好主意:我把软件A里你需要的功能打包好,写成一个函数。你按照我说的流程,把这个函数放在软件B里,就能直接用我的功能了! 其中,API就是
程序猿DD
2022/03/04
1.3K0
SDK设计与封装:从基础概念入门到架构设计落地笔记
SDK 全称 Software Development Kit,广义上的 SDK 是为特定的软件包、软件框架、硬件平台、操作系统等建立应用程序时所使用的开发工具的集合(在 iOS 项目中,SDK 也被称为库)。
周陆军博客
2023/03/18
3.5K1
小心你手机里的每一款APP,第三方SDK可能正在收集你的隐私
你大概知道自己的手机里装了多少个APP,你也知道APP在收集你的个人隐私数据。但你或许不知道,除此之外,你的数据还可能同时被隐藏在APP里的第三方SDK收集。 SDK是SoftwareDevelopm
BestSDK
2018/03/02
3.5K0
小心你手机里的每一款APP,第三方SDK可能正在收集你的隐私
浅析API和SDK
最近有小伙伴咨询胡哥关于API和SDK的概念以及区别,今天给大家来阐述下我的理解,手动微笑.gif。
胡哥有话说
2019/12/19
8120
API和SDK的区别
模组固件的二次开发、App或者面板的二次开发都会用到涂鸦平台提供的API和SDK,那么API和SDK到底是什么呢?又有什么区别呢?
涂小航说智能
2021/10/27
1.6K0
同是接口,SDK和API哪个最适合你?
比如我们常用的支付宝,接入支付宝 SDK,就可以实现支付功能,在线交易;比如现在直播视频比较火,接入直播的SDK,就可以实现在线直播的功能。 但是,据说这两个词总会让程序猿悲喜交加。因为,不论是销售还
BestSDK
2018/03/01
4.7K0
同是接口,SDK和API哪个最适合你?
大厂的 SDK 写法,偷学到了!
最近因为工作需要,自己动手写了一些项目的通用 SDK。在编写的过程中,我阅读和参考了不少公司中其他大佬写的 SDK,也总结了一些开发 SDK 的经验和技巧,给大家分享下~
程序员鱼皮
2021/09/06
1.1K0
SDK 与 API 之间的区别
前 言 / 2022.8.15 经常有朋友在软件开发中经常会分不清 SDK 与 API ,今天大雄就来浅谈一下两者之间的区别,以便大家根据不同的场景需求来选择 SDK 或者 API 。 01 什么
老九君
2022/08/26
8.3K0
SDK 与 API 之间的区别
JDBC编程安装———通过代码操控数据库
阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能帮到你!
三三是该溜子
2024/12/30
1410
JDBC编程安装———通过代码操控数据库
API及SDK介绍
一、API:Application Programming Interface,应用程序编程接口
涂小航说智能
2021/05/28
8510
SDK,NDK,AVD,AMD简单理解
did not contain a valid NDK and and couldn't be used
zhangjiqun
2024/12/16
2490
SDK,NDK,AVD,AMD简单理解
大疆(Dji)SDK思路前的准备(上)
SDK(Software Development Kit),即软件开发工具包,用来开发适用于某个产品(比如 DJI Phantom 4)或某个平台(比如 Windows)的软件,通常由产品或平台的厂商提供给开发者使用。在这个工具包里通常包括各种各样的调试工具、API 文档、开发指南和模拟器。
云深无际
2020/11/19
2.6K0
大疆(Dji)SDK思路前的准备(上)
PDF SDK(支持Web、Windows、Android、iOS、Server、API、跨平台)
SDK是软件开发工具包的缩写,指的是一组用于开发软件应用的工具、库和文档。SDK包含一系列的函数、类和方法,开发人员可以使用这些工具和资源来开发、测试和部署应用程序。SDK可以提供各种功能和技术支持,如图形界面、网络通信、数据库操作等,帮助开发人员更高效地开发软件应用。在使用SDK时,开发人员可以节省大量的时间和精力,因为SDK提供了一系列已经封装好的功能和接口,可以直接调用使用。
ComPDFKit
2023/07/27
1K0
PDF SDK(支持Web、Windows、Android、iOS、Server、API、跨平台)
JVM怎样使Native Method,为什么要使用Native Method,Java语言如何与本地代码(C/C++)交互,JNI与NDK与sdk
我们知道,当一个类第一次被使用到时,这个类的字节码会被加载到内存,并且只会回载一次。在这个被加载的字节码的入口维持着一个该类所有方法描述符的list,这些方法描述符包含这样一些信息:方法代码存于何处,它有哪些参数,方法的描述符(public之类)等等。 如果一个方法描述符内有native,这个描述符块将有一个指向该方法的实现的指针。这些实现在一些DLL文件内,但是它们会被操作系统加载到java程序的地址空间。当一个带有本地方法的类被加载时,其相关的DLL并未被加载,因此指向方法实现的指针并不会被设置。当本地方法被调用之前,这些DLL才会被加载,这是通过调用java.system.loadLibrary()实现的。 最后需要提示的是,使用本地方法是有开销的,它丧失了java的很多好处。
zhangjiqun
2024/12/16
2210
如何快速将你的应用封装成js-sdk?
本文将介绍前端如何封装一款 js-sdk 以及如何快速将你的应用变成 js-sdk , 我们将总结一些封装 js-sdk 的原则和案例, 来帮大家更快的上手 sdk 开发. 其中笔者还会以H5-Dooring 为例子, 介绍如何将 H5 页面编辑器封装成一个 js-sdk 供他人使用.
徐小夕
2020/12/08
1.7K0
如何快速将你的应用封装成js-sdk?
如何设计编写一个 SDK
App 的开发更偏向于用户层面,从 UI 展示到业务逻辑处理,全程处理用户的行为。而 SDK 面向的是开发者,开发更偏向于功能方面,注重功能的开发实现。不妨来看看 FinClip 移动端工程师整理的如何编写一个 SDK,还是很有参考价值。
Onegun
2021/12/15
1.5K0
如何设计编写一个 SDK
相关推荐
SDK和API是什么?SDK和API的区别与联系
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档