API 和 SDK
一直以来,对 API 和 SDK 都有着模模糊糊的认识。突然有一天,这个问题摆在你的面前,你如何去解释呢?
一、API 定义
API (Application Programming Interface)应用程式接口:通常由一组函式库所组成,提供用户编程时的接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
例如:我要在 自己的网页 上加入 google map网页的功能,就使用 “google map API”。
二、SDK 定义
SDK (Software Development Kit)软件开发工具集:是用来帮一个产品或平台开发应用程式的工具组,由产品的厂商提供给开发者使用的。
通常是某一家厂商针对某一平台或系统或硬件所发布出来用以开发应用程式的工具组,在这个工具包里面,可能包含了各式各样的开发工具,模拟器等。
例如:给Android
平台使用的 Android SDK
就是用来开发 Android
系统上面的应用程式。
这里只说明定义,具体细节请参考。
三、通俗易懂的解释
看到知乎上面一个有意思的回答,可以拿来逗乐:
- 你是个男的
- 你要开发一个 BABY
- SDK 就是房间、床、你老婆等一系列相关的工具、文档
- API 就是你老婆开放的接口
这个答案不是很准确,但是足够你理解 API 和 SDK 在大方向上的不同。
四、API 与 SDK 的差异
SDK
是用来开发某一个平台的程式的工具包,API
是让同一平台下的程式取用它的功能的函式库。
实际上 SDK
包含了 API
的定义,API
定义一种能力,一种接口的规范,而 SDK
可以包含这种能力、包含这种规范。但是 SDK
又不完完全全只包含 API
以及 API
的实现,它是一个软件工具包,它还有很多其他辅助性的功能。为了使用 API
函数,我们就要有跟 API
所对应的 .H
和 .LIB
文件,而 SDK
正是提供了一整套开发 Windows
应用程序所需的相关文件、范例和工具的“工具包”。
更多差异,请移步。