能形象的解释下SDK与API的联系与差异么?

关于这两者的概念有些混淆,有大神能形象的解释下SDK与API的联系与差异么?

阅读 12.7k
3 个回答

API和SDK的区别主要在一个是抽象的,一个是具体的。
SDK是software development kit,软件开发工具包,一个SDK是一个具体的东西,例如Java的JDK,它一定以某种形式存在,比如说是一个jar包,一个可以依赖的lib,一分可以直接引用的js代码。

SDK与API的联系在于,实际上SDK包含了API的定义,API定义一种能力,一种接口的规范。
而SDK可以包含这种能力,包含这种规范。我们常常说,这个SDK具有某某些API可以用。

但SDK又不完完全全只包含API以及API的实现,它是一个软件工具包,它还有其他辅助性的功能。例如JDK定义了JDBC API的规范,定义xml解析api的规范,但它也提供了很多工具包,例如常用数据结构Map,list等的封装,目的是方便使用者开发程序。

以更形象的方式解释一下:
你想提取公积金,于是你公司的HR告诉你,你需要去找一个能办理公积金业务的银行。
这里的能办理公积金业务代表一种能力,一种API。如果一个银行具有办理公积金业务的能力,那么就说这个银行具有这种API。
而这个银行呢,它就是一个SDK,它提供办理公积金的能力,所有细节,并且,它还可能给你提供额外的功能,例如免费复印身份证复印件的功能。

继续更新:
SDK其实和API是两回事
API可以说是 "软件",是一个规范,或者说一个功能的调用/使用方式.
SDK的话可以说是 "硬件",包含但不限于: API说明文档,示例代码,API的封装库(c,nodejs,c#各种版本),Android的SDK还包含打包apk的可执行程序呢...
以上


SDK叫做 "软件开发工具包"

API叫做 "应用程序编程接口"

这还不明确吗?

API是接口

SDK是封装好的调用接口的方法,可能还有示例。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏