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

2019-12-17 14:58:18 浏览数 (1)

先说一下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呢,放到了大街上,谁都能用!只要每个人在用之前先输入个账号密码,炒菜机的生厂厂家核对一下,对了就能用!

0 人点赞