SDK 和 API 的区别是什么?(转)
作者:简道云
链接:https://www.zhihu.com/question/21691705/answer/770586138
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2022.3.4更新】,最近又找到了一些新的资料,更新一下~
不知道区别的人,大概率是你还没搞懂API、SDK是什么。
讲个小故事:
研发人员A开发了软件A,研发人员B正在研发软件B。
有一天,研发人员B想要调用软件A的部分功能来用,但是他又不想从头看一遍软件A的源码和功能实现过程,怎么办呢?
研发人员A想了一个好主意:我把软件A里你需要的功能打包好,写成一个函数。你按照我说的流程,把这个函数放在软件B里,就能直接用我的功能了!
其中,API就是研发人员A说的那个函数。
这就是API的诞生。
日常生活中,我们有很多类似API的场景,比如:
电脑需要调用手机里面的信息,这时候你会拿一根数据线将电脑手机连接起来,电脑和手机上连接数据线的接口就相当于“API接口”。如图所示:
那SDK又是什么?
SDK 就是 Software Development Kit 的缩写,翻译过来——软件开发工具包。这是一个覆盖面相当广泛的名词,可以这么说:辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做SDK。
SDK被开发出来是为了减少程序员工作量的。
比如——
有公司开发出某种软件的某一功能,把它封装成SDK(比如数据分析SDK就是能够实现数据分析功能的SDK),出售给其他公司做开发用,其他公司如果想要给软件开发出某种功能,但又不想从头
现在可以谈谈API和SDK的区别了。
总的来说,两者没有值得比较的区别,因为是具有关联性的两种东西。
你可以把SDK想象成一个虚拟的程序包,在这个程序包中有一份做好的软件功能,这份程序包几乎是全封闭的,只有一个小小接口可以联通外界,这个接口就是API。
比如——
我们现在要在企业ERP系统中增加某个功能(比如自动备份、数据分析、云存储等),但又不想耗费大量时间、也没那么多研发亲自去做这个功能。这时我们可以选择使用这个“SDK”软件包,把ERP系统连接上API接口,就可以使用SDK软件包里的功能。
举个实例辅助理解:
【中铁大桥科研院】有一个自研的信息平台,用于管理业务数据。
但他们曾面临一个问题——尽管有信息平台,却因为系统的独立性,数据的上传和备份,需要依靠人工在excel里来回操作,效率很低。
由于系统的开发周期长、成本高,桥科院将目光聚焦到现成的功能软件上。
后来通过API将简道云直接插入公司数据库,数据可自动上传至信息平台上并统一展示;再通过webhook把数据推送到服务器,实现自动备份。
API将信息平台与简道云相连
在这一过程中,简道云扮演的角色就是SDK,而简道云配备API接口,可以对接外部系统,让桥科院不用开发直接实现了数据自动上传、备份的功能。
最后,贴近生活讲讲两者的关系:
有一杯密封饮料,它的名字叫做“SDK”。
饮料上插着吸管,吸管的名字叫“API”。
把你叫做“XX系统”。
如果你想喝到SDK里的饮料(让系统拥有SDK中的功能),你必须通过API这根吸管来实现(通过API连接你的系统和SDK工具包),否则你就喝不到饮料。
所以:
SDK=放着你想要的软件功能的软件包
API=SDK上唯一的接口
不知道你这次真的懂了没?
这个问题好像又热起来了,既然如此,给大家推荐一个新“玩具”:前端事件。
理论上解释:
前端事件是一种全新的数据获取的方式,可以在数据提交或者表单填报时,主动调用外部接口,从而可以实现接口取数、数据验证、数据分析、触发事件等一系列的操作,用户可以基于现成的商业接口进行配置(无需编程),也可以根据自身需求封装接口,灵活地满足自身业务需求(需编程)
说人话解释:
用户填写快递单号,返回具体物流信息;
上传发票图片,返回发票金额;
上传身份证照片,获取身份证姓名、身份证号;
……等。例如,在发票报销场景中,根据前端事件配置,可在提交发票图片后自动获取发票中的开票金额、开票日期等基础信息。
开发,直接付钱省事。
SDK 和 API 的区别是什么?(转)相关推荐
- SDK和API的区别是什么?
SDK和API的区别是什么? 目录 [引言] [API] [SDK] [API和SDK的区别是什么?] [小结] [引言] 有朋友问到SDK和API的区别的问题.我们就通过这篇文章来了解一下. [AP ...
- SDK 和 API 的区别是什么
来源:https://www.zhihu.com/question/21691705/answer/770586138 不知道区别的人,大概率是你还没搞懂 API.SDK 是什么. 讲个小故事: 研发 ...
- SDK 和 API 的区别是什么?
不知道区别的人,大概率是你还没搞懂API.SDK是什么. 讲个小故事: 研发人员A开发了软件A,研发人员B正在研发软件B. 有一天,研发人员B想要调用软件A的部分功能来用,但是他又不想从头看一遍软件A ...
- SDK和API 区别
SDK就是Kit,工具箱嘛,IOS平台上就是XCode,一系列的工具组合在一起,比如你在编辑器里敲代码的时候它会自动补全代码,自动错误检查,你点一下Run,它会调用编译器来自动编译,编译完它会调用iP ...
- python sdk是什么意思_SDK 和 API 的区别是什么?
我觉得上面的高赞答案不怎么行,至少我看完是觉得有点云里雾里,跟我遇到的实际情况不太符合. Application Programming Interface,Software Development ...
- 灵派海思SDK的API参考手册
本手册镜像地址:https://gitee.com/LinkPi/LinkLib/wikis/pages 灵派海思SDK的API参考手册 1. 概述 基本接口详解 LinkObject Link Js ...
- SDK与API的联系与区别
在手机App的世界里,法规条文里所谓的"第三方应用或服务"是个看得见摸不着的存在.但事实上,不管是你每天收到的新闻推送,还是促销活动广告,甚至短信验证码,都有可能出自第三方之手. ...
- sdk和api有什么区别
----原答案---- 举个例子: 在这里,一个简单的功能链条我将它分为三个组成部分: 1.客户端组装数据 2.客户端使用组装的数据来请求服务端(或者操作系统)的 api 3.服务端(或者操作系统)的 ...
- 聚播群控微信二次开发sdk完整API
聚播群控微信二次开发sdk完整API功能: 微信加好友功能API 1.导入手机通讯录 2.手机通讯录加好友 3.加指定微信群好友 4.自动通过微信好友请求 5.手机模拟定位 6.附近人加好友 7.各种 ...
最新文章
- eclipse开发android的好处,从Eclipse切换到IntelliJ IDEA for Android开发的好处
- 【人脸识别终结者】多伦多大学反人脸识别,身份欺骗成功率达99.5%
- java线程和操作系统线程_操作系统中的线程
- python类的属性打印_python 打印类的属性、方法
- fastjson jsonobject 转bean失败_FastJson是如何导致App Crash的
- React Echarts 点击事件
- cesium 文本标注被遮挡_Cesium-知识点(Viewer)
- springBoot 注入@Slf4j,框架中的方法无法调用。。。
- 黑盒测试用例设计方法实践---(判定表驱动法)
- vim配置:高亮所在的行和列
- 圆内接等边三角形的画法_几何画板应用教学,教你绘制圆的内接正三角形
- 2019Windows7 虚拟机安装系统图文教程
- 什么是群发单显和分别发送,有什么区别,发客户邮件忘记群发单显
- CCNA学习笔记7--动态路由协议概念和RIP
- 在哪个平台可以自助打印文件资料
- 苹果手机人脸识别不了是什么原因_iPhone和安卓手机的人脸识别有什么区别?
- 设计模式中的行为类模式
- 冬青看世界:“银河战舰“它叕来了,鲤鱼又将跃龙门?
- 光盘映像文件的安装方法
- 忙忙碌碌缓慢进度 项目经理管理的4大误区
热门文章
- Python的序列数据和变量
- python且的表示_五种Python 的转义表示法
- GOM SCAN TRITOP Professional ATOS Professional GOM Inspect Professional 2016/2018/2020/2021
- 微软环境智能大数据平台掘金1.6万亿数据红利
- Swift:我的第三个Demo
- Java学习-类的隐藏机制(封装性)
- 解决Pr在win10系统上安装不上问题 Pr2021版-Premiere Pro 2021中文正式版安装教程
- 计算机二级access查询条件,计算机二级Access:如何使用查询向导
- Outlook添加网易企业邮箱总是无法验证您连接到的服务器使用的安全证书
- ctfshow php特性(89——150plus)