前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SDK、API和OPEN API有啥区别,这是最为形象的比喻

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

作者头像
IT大咖说
发布2019-12-17 14:58:18
6K1
发布2019-12-17 14:58:18
举报
文章被收录于专栏: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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档