API和SDK关系

API

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

概念比较抽象,举例来说就是
实现一个登陆的函数,然后给一个最后提供给你的就是一个该函数的使用文档。
使用文档中,将会告诉你,该函数的功能是根据帐号和密码判断是否正确,最后函数通过返回true或false来告诉你

boolean login(string account,string password){
	return true;
}

这个函数就箱单与一个API接口,你可以完全不知道函数内部是怎么实现的,但是你只要知道这个函数怎么使用就好了。

就像大部分的API文档,里面就会有一个个API接口,可以了解到有哪些API接口,以及如何使用。
在这里插入图片描述
类似的还有java的JDK API文档在这里插入图片描述

SDK

概念:软件开发工具包(外语首字母缩写:SDK、外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。

SDK就相当于很多API接口和其他文件的集合体。
比如你要完成一堆数据的运算,需要用到各种计算方法(比如加减乘数,平方,开方),你去买了一个计算器产品,这个产品包含了一台计算器,一本使用说明(比如接口文档和案例演示)和一些其他文件,你用这个计算器完成了所有数据的运算。整个计算器产品可以看做是一个SDK,它里面有API具体实现(计算器),说明文档(说明书),以及一些其他文件。这个SDK的功能就是计算,可能要算什么不确定,但是你可以通过这个SDK中的某个方法完成,实现你的目的。

两者区别

API是一个具体的函数,一个确定的功能说明,已经明确了它的作用(比如做加法)。而SDK就像是很多方法的集合体,是一个工具。比如你要做加法,你就调用计算机SDK的加法API实现,要做减法就调用减法API实现,无论你想完成什么计算,SDK里总有能实现的方法。再举个例子,比如你要开车去一个地方,车就是SDK,可以让你完成到达目的地的目的。车上的方向盘,灯,发动机,油门,刹车像一个个API实现,你在使用SDK时,就是调用一个个API功能。如果贴心一点的车,可能还带有使用说明(SDK说明文档)。

关联

二者是具有关联性的两种东西,可以把 SDK 想象成一个虚拟的程序包,在这个程序包中有一份做好的软件功能,这份程序包几乎是全封闭的,只有一个小小接口可以联通外界,这个接口就是 API 。

补充

1、SDK还有一点是除了他提供的完善的接口,他还会给你提供开发环境。继续上面的计算器和车的比喻,要想计算器和车子可以使用,要给计算器电池,和车子加油,这些都是计算机和汽车运行需要的。例如java的JDK里,除了各种API,还包括了java运行需要的JRE。

2、现在很多第三方接口运行是通过远程调用的方式,这样的好处是不需要下载对应的SDK,只需要知道API的接口地址。在某种程度上减少了调用他人接口的难度。

参考来源:形象理解Api和SDK

扫描二维码关注公众号,回复: 15103872 查看本文章

猜你喜欢

转载自blog.csdn.net/weixin_43865875/article/details/123314451