sdk与api
什么是sdk
中文名: 软件开发工具包
外文名 :Software Development Kit 软件 开发 成套工具
别 名: SDK
用 途:软件开发
应 用:软件包、软件框架、硬件平台、操作系统 应用平台Windows
简单解释:
软件开发工具包一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。
软件开发工具广义上指辅助开发某一类软件的相关文档、范例和工具的集合
什么是api
中文名 :应用程序接口
外文名 :Application Programming Interface 应用 编程 接口
简 写: API
定 义: 一组定义、程序及协议的集合
目 的 :提供系统服务
简单解释:
API(Application Programming Interface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。 用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节
为什么会有sdk与api
随着软件规模的日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要,程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分,良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。API是接口的一种,在程序交互中具有重要的作用,而SDK与API有着密不可分的关系。
sdk与api有什么用
sdk做什么?
开发者不需要再对产品的每个功能进行开发,选择合适稳定的SDK服务并 花费很少的精力 就可以在产品中集成某项功能。
通常SDK是由专业性质的公司提供专业服务的集合,比如提供安卓开发工具、或者基于硬件开发的服务等。也有针对某项软件功能的SDK,如推送技术、图像识别技术、移动支付技术、语音识别分析技术等,在互联网开放的大趋势下,一些功能性的SDK已经被当作一个产品来运营。
通俗点是指由第三方服务商提供的实现软件产品某项功能的工具包。
api做什么?
其实就是别人已经写好的可以实现特定功能的函数,而你只需要根据他提供好的接口,也就是调用他的方法,传入他规定的参数,然后这个函数就会帮你实现这些功能。
sdk与api之间有什么关系?有什么区别?
- API是一个函数,有其特定的功能;而SDK是一个很多功能函数的集合体,一个工具包。
- API是数据接口,SDK相当于开发集成工具环境,要在SDK的环境下来调用API。
- API接口对接过程中需要的环境需要自己提供,SDK不仅提供开发环境,还提供很多API。
- 简单功能调用,API调用方便快捷;复杂功能调用,SDK功能齐全。
实际上SDK包含了API的定义,API定义一种能力,一种接口的规范,而SDK可以包含这种能力、包含这种规范。但是SDK又不完完全全只包含API以及API的实现,它是一个软件工具包,它还有很多其他辅助性的功能,SDK 包含了使用 API 的必需资料。
开发过程中sdk与api使用对比
API和SDK对接,适合最重要。没有哪种最好,只有最适合。
API和SDK最终实现的功能都是一样的,至于采用哪一种,需要结合对接平台的需求(保密程度,特殊需求、开发成本等等)。
选择API
优势:API开发成本低,对接比较简单,可以快速验证商业模式和用户体验。
劣势:API会经过对接平台,厂商可以获取对接平台相关数据信息。
选择SDK
优势:SDK对接后的功能比较稳定,响应速度快,而且对接平台相关数据不会被获取。
劣势:需要开发的环节较多,开发工作量大,对接周期略长。
所以,大家在实际开发过程中,如果只是简单功能调用,还是使用API更快速便捷一些;如果是繁琐复杂的功能,多数情况下还是使用SDK更稳妥一些。
举例
比如我们想实现请某人吃顿饭
1.需要有吃饭的地方,工具,(软件开发的环境)
2.需要饭和菜(软件需要的功能)
3.客人才能吃上饭(功能实现)
使用sdk
如果我们我们为了快速的并且比较好的去实现可以直接买个饭店(sdk)(包含了所有功能(api)还有一些环境,服务,直接能实现)
使用api
买个房子(场所环境),分别去准备桌子,凳子,需要的饭和菜(去买别人做好的饭和菜)
自己实现
自己盖个房子,分别自己做桌子,凳子,菜,饭。