简述SDK和API的区别
SDK是什么
SDK的中文名叫“软件开发工具包”(本文中将之简称为软件包或软件开发包),它被开发出来是为了减少程序员工作量的,有公司开发出某种软件的某一功能,把它封装成SDK(比如美颜SDK就是能够实现美颜功能的SDK),出售给其他公司做开发用,其他公司如果想要给软件开发出某种功能,但又不想从头开始搞开发,可以付钱省事。
API是什么
讲个小故事:
研发人员A开发了软件A,研发人员B正在研发软件B。 有一天,研发人员B想要调用软件A的部分功能来用,但是他又不想从头看一遍软件A的源码和功能实现过程,怎么办呢? 研发人员A想了一个好主意:我把软件A里你需要的功能打包好,写成一个函数。你按照我说的流程,把这个函数放在软件B里,就能直接用我的功能了!其中,API就是研发人员A说的那个函数。
SDK和API的区别
总的来说,两者没有值得比较的区别,因为是具有关联性的两种东西。
- API是一个函数,有其特定的功能;SDK是一个很多功能函数的集合体,一个工具包
- API是数据接口,SDK相当于开发集成工具环境,要在SDK的环境下来调用
- API接口对接过程中需要的环境需要自己提供,SDK不仅提供开发环境,还提供很多API
- 简单功能调用,API调用方便快捷;复杂功能调用,SDK功能齐全
你可以把SDK想象成一个虚拟的程序包,在这个程序包中有一份做好的软件功能,这份程序包几乎是全封闭的,只有一个小小接口可以联通外界,这个接口就是API。
- SDK=放着你想要的软件功能的软件包
- API=SDK上唯一的接口
一个非常形象的解释
有一杯饮料,它的名字叫做“SDK”。饮料上插着吸管,吸管的名字叫“API”。我们把你的嘴唇叫做“短视频软件”如果你想让SDK饮料杯里的饮料进到你嘴里(让软件拥有SDK中的功能),你必须通过API这根吸管来实现(通过API连接你的软件和SDK软件开发包),否则你就喝不到饮料。