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

API

(1)API的概念

API即“应用程序编程接口”,是一些预先定义的函数,目的是作为“介面”沟通两个不同的东西,提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

其实就是别人已经写好的可以实现特定功能的函数,而你只需要根据他提供好的接口,也就是调用他的方法,传入他规定的参数,然后这个函数就会帮你实现这些功能。

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

(2)API应用案例

示例场景:假如你是一家小企业,公司网站上有一个表格是用来给客户注册预约的。你想要凭借这些预约细节信息,让客户能够自动在谷歌日程上创建活动。

API使用:这就意味着,你的网站服务器需要直接与谷歌服务器进行对话,在掌握既定细节信息的情况下,申请创建活动。之后,你的服务器就会接收到谷歌的响应并进行处理,然后将相关信息发送回浏览器,比如说向用户发送一个确

认信息。

(3)API产品——现在也有公司将API包装成产品

案例:Weather Underground出售其天气数据API的访问权限给其他人。

(4)API的分类

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已经被当作一个产品来运营。

开发者不需要再对产品的每个功能进行开发,选择合适稳定的SDK服务并花费很少的经历就可以在产品中集成某项功能。

(2)SDK和API的区别

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

实际上SDK包含了API的定义,API定义一种能力,一种接口的规范,而SDK可以包含这种能力、包含这种规范。但是SDK又不完完全全只包含API以及API的实现,它是一个软件工具包,它还有很多其他辅助性的功能。

SDK 包含了使用 API 的必需资料,所以人们也常把仅使用 API 来编写 Windows 应用程序的开发方式叫做“SDK编程”。

通俗语言解释

API

前端调用后端数据的一个通道,就是我们俗说的接口,通过这个通道,可以访问到后端的数据,但是又无需调用源代码。

SDK

工程师为辅助开发某类软件的相关文档、范例和工具的集合,使用SDK可以提高开发效率,更简单的接入某个功能。

举例说明:一个产品想实现某个功能,可以找到相关的SDK,工程师直接接入SDK,就不用再重新开发了。

什么是API,SDK 两者有什么关系?相关推荐

  1. Linux 编程中的API函数和系统调用的关系【转】

    转自:http://blog.chinaunix.net/uid-25968088-id-3426027.html 原文地址:Linux 编程中的API函数和系统调用的关系 作者:up哥小号 API: ...

  2. 特大动作:OLAMI 在线语音识别 API SDK 上线!

    原标题:特大动作:OLAMI 在线语音识别 API & SDK 上线! 最新消息,欧拉蜜人工智能开放平台更新了两项重要功能:在线语音识别 API及SDK(软件开发工具包)下载. 此举意味着,欧 ...

  3. 安卓开发——在应用中简单调用Android百度地图API SDK

    目录 需求展示 效果展示: 申请百度地图API密钥 配置ANDROID STUDIO 编写项目代码 运行项目 需求展示 利用百度地图API定位到当前所在位置,并显示所在的经纬度和地址信息. 效果展示: ...

  4. [SW]SolidWorks API SDK二次开发学习心得01--开发方式

    SolidWorks二次开发之前,我们先来了解下SolidWorks二次开发有哪些方式 1.宏:在SolidWorks中录制宏,方便制图 2.API SDK: ATL Addin:直接嵌入SolidW ...

  5. 视频会议 sdk 选择_企业业务的十大热门视频通话和视频会议API / SDK提供程序

    视频会议 sdk 选择 Statista.com Statista.com Video conferencing App / Country Hangouts Meet Houseparty Ms T ...

  6. SAP Marketing Cloud Restful API SDK 使用案例分享

    本文介绍笔者在 SAP Marketing Cloud 工作项目中使用 Restful API SDK 过程中积累的一些使用经验. 成功登录 SAP Marketing Cloud 系统之后,可以在菜 ...

  7. 百度地图android wear,Android SDK | 百度地图API SDK

    个性化地图 自v3.7.0起,支持使用个性化地图模板,改变底图颜色和样式. 支持设置8大类地图元素的颜色和可见性,包含大地.水系.草地.高速.普通道路.铁路.地铁,poi. 效果示例: 个性化地图元素 ...

  8. 百度地图android自定义文字,Android SDK | 百度地图API SDK

    什么是百度地图Android SDK? 百度地图 Android SDK是一套基于Android 2.1及以上版本设备的应用程序接口, 您可以通过该接口实现丰富的LBS功能: 地图:提供地图(2D.3 ...

  9. android poi搜索提示搜索对象已销毁,Android SDK | 百度地图API SDK

    使用须知 在使用百度地图SDK(Android版)之前,请仔细阅读使用条款,一旦您使用了百度地图SDK(Android版),即表明您已阅读并接受使用条款中的全部内容.百度地图SDK(Android版) ...

最新文章

  1. window linux上传文件命令,windows通过cmd命令行使用sftp上传文件至linux
  2. 分布式存储系统的关键技术
  3. 分布式系统的事务处理(推荐)
  4. openwrt 系统日志配置_Openwrt 之 Samba配置
  5. 【杂谈】一招,同时可视化18个开源框架的网络模型结构和权重
  6. ftp工具之本地操作命令
  7. Linux的openssl的安装
  8. 高行健---江西赣州人
  9. 为什么开源的代码没有注释_代码注释那些事儿
  10. NABCD model(test)
  11. 在 Delphi 6 中使用 Hashtable
  12. leecode第二百九十二题(Nim游戏)
  13. 初窥JQuery(二)-事件机制(1)
  14. CANoe下载地址以及CAN Demo 16的下载与激活,并附录所有CANoe软件版本
  15. 学习笔记(04):2020软考软件设计师--基础知识实战培训视频-数据结构基础--树和二叉树...
  16. linux网络电视软件sopcast的安装
  17. LDA变分法和采样法
  18. [数据分析] [保姆级教程] 数据差异分析方法
  19. 【计算机网络】数据链路层 : 以太网 ( 无连接、不可靠服务 | 以太网发展 | 10BASE-T 以太网 | MAC 地址 | 以太网 MAC 帧 | 高速以太网 )
  20. 新浪微博网页版打开异常解决方案

热门文章

  1. 哥德巴赫猜想(升级版)
  2. ActiveMQ的作用,原理是啥?
  3. 华为P20无敌拍摄能力开放 如何即刻获得?
  4. matlab收获,matlab实习心得体会 1700字
  5. Markdown (CSDN) MD编辑器(一)- 实现页内跳转
  6. c语言中1 lt lt 10什么意思,卡西欧lt1和lt3是什么意思
  7. PMP计算题笔记(净现值、投资回收期、PERT、总价加激励、成本加激励)
  8. 51单片机倒计时计时器(计时结束闹钟)
  9. MediaPlayer的消息机制分析
  10. Sqlmap是什么以及使用方法