SDK 与 API

什么是API?

应用程序接口(Application Programming Interface,简称:API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。由于近年来软件的规模日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。
API之主要目的是提供应用程序与开发人员以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。提供API所定义的功能的软件称作此API的实现。API是一种接口,故而是一种抽象。–百度百科

其实日常生活中,我们有很多类似API的场景,比如:电脑需要调用手机里面的信息,这时候你会拿一根数据线将电脑手机连接起来,电脑和手机上连接数据线的接口就是传说中的API接口。
在这里插入图片描述

再举个例子:

研发人员A开发了软件A,研发人员B正在研发软件B。有一天,研发人员B想要调用软件A的部分功能来用,但是他又不想从头看一遍软件A的源码和功能实现过程,怎么办呢?研发人员A想了一个好主意:我把软件A里你需要的功能打包好,写成一个函数;你按照我说的流程,把这个函数放在软件B里,就能直接用我的功能了!其中,API就是研发人员A说的那个函数。
在这里插入图片描述

这里还有一个来自设计人员的解读,更注重强调API包含计算和逻辑判断:假设物流中“货物”是数据,存放货物的“总仓库”是数据库,“店铺”是我们的网站、App。页面上显示的内容、数字,以及用户的操作请求和结果都是需要不停搬运的“货物”——数据,则负责调配分配打包的中转站就是API,店铺小哥直接从中转站取货就好。

由上,API的作用也就很清楚:

  • 对于软件提供商来说,留出API,让别的应用程序来调用,形成生态,软件才能发挥最大的价值,才能更有生命力。(同时别人也看不见代码,不伤害商业机密。)

  • 对于应用开发者来说,有了开放的API,就可以直接调用多家公司做好的功能来做自己的应用,不需要所有的事情都自己操刀,节省精力。云计算、共享经济时代,API就是技术服务商为客户提供服务的方法。

什么是SDK?

SDK(Software Development Kit)是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合。它可以简单的为某个程序设计语言提供应用程序接口API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。最开始的时候,API的集合我们就称之为SDK,例如mac提供的API集合,就称之为mac SDK。随着时间的演化,现在的SDK指的是以一组Api作为输入,以另外一组Api作为输出的中间件。
例如,新浪微博提供了一组Http请求形式的Api。由于现如今构造Http请求也算是一件麻烦事,所以逐渐就有了“新浪微博iOS SDK”。这个SDK封装新浪微博的Http接口,提供了一组Objective C或者Swift形式接口。
简单来说,就是如果你要围绕某个现有的东西开发自己的软件,那么可以用SDK加速开发。尽管对于部分软件来说,SDK并非开发中必要的一环,但是它能够提供的类库、文档、预编译库、接口乃至辅助工具,对于加速开发,减少BUG,和提升易维护性都有巨大的帮助。同时SDK也往往会提供针对语言/平台的封装(一般由随附的库完成),避免了(兼容性上的)重复劳动,并有助于规范化开发流程,避免用户因为实现细节变动而重复修改软件。(鉴于SDK提供的内容往往对外具有稳定性)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值