SDK:
概念:软件开发工具包(SDK,全称:Software Development Kit)
通常都是一些软件工程师为特定的软件包、软件框架、硬件平台、操做系统等创建应用软件时的开发工具的集合。前端
就至关于不少API和其余文件的集合体,你能够用这个完成某一个事情。编程
举例子:
整个计算器产品能够看作是一个SDK,它里面有API集合(计算器),说明文档(说明书),以及一些其余文件。
这个SDK的功能就是计算,可能要算什么不肯定,可是你能够经过这个SDK中的某个方法完成,实现你的目的。后端
API:
概念:API(Application Programming Interface,应用程序编程接口)
通常是指一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工做机制的细节。
框架
举例子:函数
好比别人写好了一个数字求和的方法sum(int a, int b)。
提供给你一个API接口——你只须要调用它这个sum()函数,而后传入这个a,b的值,而后就能够获得计算的结果,你不须要知道这个方法是怎么实现的,知道该怎么调用便可。工具
若是别人又写了一个两数相乘的方法Mul(int a, int b),那这又称为另外一个API。开发工具
好比百度Ai平台的图像识别API:操作系统
1.API是一个具体的函数,一个肯定的功能,已经明确了它的做用(好比作加法)。 2.SDK就像是不少方法的集合体,是一个工具包。
好比你要作加法,你就调用计算机SDK的加法API,要作减法就调用减法API,不管你想完成什么计算,SDK里总有能实现的方法。
3d
3.SDK除了他提供的完善的接口,他还会给你提供相关的开发环境,而API须要的环境你得本身提供(好比传参)
4.SDK至关于开发集成工具环境,API就是数据接口。在SDK环境下调用API数据。(而这个SDK你能够本身配置或者下载第三方提供的)
APIcdn
前端调用后端数据的一个通道,就是咱们俗说的接口,经过这个通道,能够访问到后端的数据,可是又无需调用源代码。
SDK
工程师为辅助开发某类软件的相关文档、范例和工具的集合,使用SDK能够提升开发效率,更简单的接入某个功能。
举例说明:一个产品想实现某个功能,能够找到相关的SDK,工程师直接接入SDK,就不用再从新开发了。
可是,问题又来了。API和SDK这两种产品对接方式,选择哪一种比较好呢?
API和SDK对接,适合最重要。没有哪一种最好,只有最适合。
API和SDK最终实现的功能都是同样的,至于采用哪种,须要结合对接平台的需求(保密程度,特殊需求、开发成本等等)。
选择API
优点:API开发成本低,对接比较简单,能够快速验证商业模式和用户体验。
劣势:API会通过对接平台,厂商能够获取对接平台相关数据信息。
选择SDK
优点:SDK对接后的功能比较稳定,响应速度快,并且对接平台相关数据不会被获取。
劣势:须要开发的环节较多,开发工做量大,对接周期略长。
因此,你们在实际开发过程当中,若是只是简单功能调用,仍是使用API更快速便捷一些;若是是繁琐复杂的功能,多数状况下仍是使用SDK更稳妥一些。