目录

  • 一.API
    • 1.发展由来
    • 2.概念
    • 3.应用案例
    • 4.分类
  • 二.SDK
    • 1.概念
  • 三.API和SDK的区别与联系

一.API

1.发展由来

随着软件规模的日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要,程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分,良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。API是接口的一种,在程序交互中具有重要的作用,而SDK与API有着密不可分的关系。

2.概念

API即“应用程序编程接口”,是一些预先定义的函数,目的是作为“介面”沟通两个不同的东西,提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
其实就是别人已经写好的可以实现特定功能的函数,而你只需要根据他提供好的接口,也就是调用他的方法,传入他规定的参数,然后这个函数就会帮你实现这些功能。

从接口interface来说,在计算机领域是指两个不同事物之间交互的地方,大可以到两个完整的不同系统,小可以到两段程序。所以这个I就这么理解。在这个基础上,人和程序交互的地方,叫做UI,user interface,所有人输入的包括鼠标键盘触摸屏声音输入都算。那么程序和程序交互的就叫做API,所有非人对非人交互都通过API进行交互,所谓交互,其实就是传递数据,触发功能。

3.应用案例

示例场景:假如你是一家小企业,公司网站上有一个表格是用来给客户注册预约的。你想要凭借这些预约细节信息,让客户能够自动在谷歌日程上创建活动。
API使用:这就意味着,你的网站服务器需要直接与谷歌服务器进行对话,在掌握既定细节信息的情况下,申请创建活动。之后,你的服务器就会接收到谷歌的响应并进行处理,然后将相关信息发送回浏览器,比如说向用户发送一个确认信息。

4.分类

API又分为(Windows、Linux、Unix等系统的)系统级API,及非操作系统级的自定义API。作为一种有效的代码封装模式,微软Windows的API开发模式已经为许多商业应用开发的公司所借鉴,并开发出某些商业应用系统的API函数予以发布,方便第三方进行功能扩展。如Google、苹果电脑公司,以及诺基亚等手机开发的API等等。
API又分为开放式API和私有API。顾名思义,开放式API即是向所有人公开的接口,允许任何人调用它并获取到它背后的数据,有时公司会将 API 作为其公共开放系统,也就是说,公司制定自己的系统接口标准,当需要执行系统整合、自定义和程序应用等操作时,公司所有成员都可以通过该接口标准调用源代码,该接口标准被称之为开放式API。私有API即接口未对外开放。

二.SDK

1.概念

SDK即“软体开发工具包”,一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。通俗点是指由第三方服务商提供的实现软件产品某项功能的工具包。
通常SDK是由专业性质的公司提供专业服务的集合,比如提供安卓开发工具、或者基于硬件开发的服务等。也有针对某项软件功能的SDK,如推送技术、图像识别技术、移动支付技术、语音识别分析技术等,在互联网开放的大趋势下,一些功能性的SDK已经被当作一个产品来运营。
开发者不需要再对产品的每个功能进行开发,选择合适稳定的SDK服务并花费很少的经历就可以在产品中集成某项功能。

三.API和SDK的区别与联系

SDK相当于开发集成工具环境,API就是数据接口。在SDK环境下调用API数据。

实际上SDK包含了API的定义,API定义一种能力,一种接口的规范,而SDK可以包含这种能力、包含这种规范。但是SDK又不完完全全只包含API以及API的实现,它是一个软件工具包,它还有很多其他辅助性的功能。
SDK 包含了使用 API 的必需资料,所以人们也常把仅使用 API 来编写 Windows 应用程序的开发方式叫做“SDK编程”。
通俗语言解释,API就是前端调用后端数据的一个通道(接口),通过这个通道,可以访问到后端的数据,但是又无需调用源代码。SDK就是工程师为辅助开发某类软件的相关文档、范例和工具的集合,使用SDK可以提高开发效率,更简单的接入某个功能。举例说明:一个产品想实现某个功能,可以找到相关的SDK,工程师直接接入SDK,就不用再重新开发了。

原文:https://www.jianshu.com/p/dd2eff92e8fc

软件开发:API和SDK的区别与联系相关推荐

  1. 面向 Android 软件开发套件(SDK)的 x86 Android* 系统映像许可协议

    英特尔公司面向 Android 软件开发套件(SDK)的 x86 Android* 系统映像的内部评估许可协议 此<内部评估许可协议>(以下简称"协议") 的订立双方为 ...

  2. 英特尔公司面向 Android 软件开发套件(SDK)4.3 的 x86 Android* 系统映像的内部评估许可协议...

    此<内部评估许可协议>(以下简称"协议") 的订立双方为英特尔与贵方(作为开发人员个人或法律实体 - 下文认定为"接收方"). 英特尔应根据< ...

  3. AGV调式之软件开发—API调用

    AGV调式之软件开发-API调用 1.登陆界面 2.构建一个REST API请求 ①REST API请求是由特定的动词和名词组成的句子. 如果你能和你的机器人说话,你可能会说"给我你的电池电 ...

  4. 软件开发中产品与项目区别

    很多人都以为软件行业是一个高薪的行业,所以就稀里糊涂的进入了软件行业.然而有很多人在软件行业待了多年,却可能从头至尾都没有整明白软件开发这个行业.现在我们就来聊一聊软件开发行业的一个概况. 随着社会的 ...

  5. 什么是软件开发工具包(SDK)

    开发一个软件,需要经过编辑.编译.调试.运行几个过程. 编辑:使用编程语言编写程序代码的过程. 编译:如上一节所讲,就是将编写的程序进行翻译. 调试:程序不可能一次性编写成功,编写过程中难免会出现语法 ...

  6. API和SDK的区别

    随着软件规模的日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要,程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分,良好的接口设计可以降低系统各部分的相互依赖, ...

  7. API 和 SDK 的区别

    API:只需要传固定的地址,向地址传递参数,实现功能 可以 用 httpClient 技术可以调用api 地址 例如: SDK : sdk是对api的封装,更方便用,只需要我们导入 maven 依赖 ...

  8. switch和toggle在软件开发中的含义和区别

    switch和toggle这一对表示"切换"的单词,在计算机软件中我们能经常看到,很多时候口语中也会经常提及.但是,你想过它们之间有什么区别吗?没有区别?那你就大错特错了,区别还是 ...

  9. api和sdk有什么区别

    对于互联网行业从业者来说,总会碰到两个词--SDK 和 API,它们可是现在特别流行且好用的工具,能够帮助我们把经常需要用到的复杂的系统划分成小的组成部分,进行封装模块化,提高系统的维护性和扩展性.由 ...

最新文章

  1. 读取工作流程中的表单物件
  2. Linux部署禅道环境
  3. mysql master master_MySQL主从架构之Master-Master互为主备
  4. windows平台下:scikit-learn安装教程
  5. 软件质量保证计划_如何做好软件项目的质量管理?
  6. RAC中如何更改对外网卡和内部互联网卡的配置、IP及VIP
  7. Jmeter性能测试之如何写Java请求测试用例类
  8. 2017美国数学建模MCM C题(大数据)翻译 “合作和导航”
  9. Spring中AOP及ReflectiveMethodInvocation逻辑简析
  10. zznuoj-1003
  11. 看了这个,再也不怕流量劫持了!
  12. [2011JMAA]Remarks on the regularity criteria for generalized MHD equations
  13. 注意: 如何解决Windows Server 2008 R2 EFI启动模式安装2019年8月更新KB4512486 KB4512506  KB4512514后自动进入修复模式,无法正常启动问题!!!
  14. linux 进程的作用,ubuntu9.10这些进程有什么作用?
  15. Netty 学习之旅:ByteBuf 篇之 ByteBuf 内部结构与 API 学习
  16. l28n和开发版_*** am335x开发板的疑问以及解答
  17. 新课程改革的理论基础究竟是什么
  18. 李宏毅-机器学习-RNN-笔记
  19. 微信小程序获取网络状态
  20. 岁月蹉跎,人生几何。

热门文章

  1. c++笔记(class)练手项目:暗网杀手排名系统
  2. 谷歌2017面经题集
  3. it企业实习_it公司实习心得体会
  4. matlab收获,matlab实习心得体会 1700字
  5. Java方法工厂,接口,常用日期类Date面向对象,匿名内部类局部类
  6. JS生成浏览器唯一标识解决方案
  7. 打造黑苹果(四)安装MACOS系统
  8. APP下载量成空洞,留住用户最关键
  9. 关于程序新手入行的分析与看法
  10. 【码农学编曲】Cubase乐器轨音频轨各种轨没声音的终极解决方案