前序系列文章>>>

【涂鸦物联网足迹】物联网主流通信方式

我们系列文章,都会围绕如何完成一款智能“隔空接吻机”的开发。希望能帮到各异地恋or异国恋的情侣们!

本文我们会大概讲解API及SDK的定义介绍吧~

一、API:Application Programming Interface,应用程序编程接口

先来个国(ke)际(yi)惯(tiao)例(guo)的百科介绍:

API(Application Programming Interface,应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。

我们通过几个例子来说明一下吧:

举例A:

就Howard的“隔空接吻机”原型而言,假设我们把APP端交给供应商来做,那么供应商如果想要拿到设备里的数据,就需要我们提供一个API,让供应商能够在不需要了解设备的构造而直接访问。粉色框框部分就是API~

举例B:

举一个生活中的例子吧。你的男/女朋友给你买了一杯奶茶(这里推荐杨枝甘露,超好喝),那么你为了喝到里面的的饮料(虽然你不知道里面到底有什么),可以用过一根吸管去喝到。这根吸管就是API。

举例C:

想象一下,你在家要烧水。那么你的烧水步骤如下:

水壶装满水;

插上插头

按烧水开关

等水烧好。

在上面这个过程中,API即使你家的插口,只要你用水壶的插头插上这个插口,就可以使用发电站提供的电了(如有错误,请指教)。

OK,通过上面三个例子,我猜大家对API应该有了一定的了解了。API的应用在生活中处处可见,欢迎大家在本文下面多举几个例子。

那么在物联网中,接下来,我们来介绍一下SDK

二、SDK:Software Development Kit,软件开发工具包

 国(ke)际(yi)惯(tiao)例(guo):

软件开发工具包是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,一般而言SDK即开发 Windows 平台下的应用程序所使用的SDK。它可以简单的为某个程序设计语言提供应用程序接口API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。

我们再来举例说明一下。

举例A:

   假设我们“隔空接吻机”已经有了一个App。App里为了获取用户的位置信息,内置了某地图的应用,那么情侣们每次打开APP的时候,会有以下3个流程:

情侣A打开“隔空接吻机”App;

“隔空接吻机”App唤醒内置的地图应用;

地图应用反馈用户所在的地理位置信息;

情侣双方能够看到对方的地理位置。

在以上过程中,“隔空接吻机”App里内置的地图应用,即我们所说的SDK。

SDK 还是很好理解的,我们就不举那么多例子来说明啦。如果大家有更通俗易懂的例子,可以在下方留言~

三、API和SDK的关系

API和SDK,在一个端到端开发中,有着非常重要的地位。同样,我们来通过一个例子来说明一下他们的关系吧~

这次我们就不用我们的“接吻机”来举例了,以“乐高”为例吧:

API:乐高积木的“颗粒”(用来连接两个乐高积木);

SDK:一大包乐高积木,里面有各种小工具

通过API和SDK,就能够完成一个完整的乐高!

希望通过这篇文章,能够让大家对API和SDK有个简单粗暴地了解!

【涂鸦物联网足迹】API及SDK介绍的更多相关文章

  1. 【涂鸦物联网足迹】涂鸦云平台消息服务—顺带Pulsar简单介绍

    前序系列文章>>> [涂鸦物联网足迹]涂鸦云平台标准指令集 开放消息平台主要通过 Pulsar 主动推送各种事件数据给外部合作伙伴,以满足合作伙伴对消息实时性和消息持久化的要求. 一 ...

  2. 【涂鸦物联网足迹】用煲仔饭来说明IaaS/PaaS/SaaS的区别

    最近在准备一些科普性的知识内容,发现大家对于一些基础性的知识概念还是有点模糊.今天先来简单介绍一下IaaS/PaaS/SaaS的区别~ 其实还有一个On-Premises(本地部署)的概念,也可以一并 ...

  3. 云之讯融合通讯开放平台_提供融合语音,短信,VoIP,视频和IM等通讯API及SDK。

    云之讯融合通讯开放平台_提供融合语音,短信,VoIP,视频和IM等通讯API及SDK. undefined 全明星之极验证 - SendCloud undefined [转载]国内外几个主流的在线开发 ...

  4. 李洪强iOS开发之-环信02_iOS SDK 介绍及导入

    李洪强iOS开发之-环信02_iOS SDK 介绍及导入 iOS SDK 介绍及导入 iOS SDK 介绍 环信 SDK 为用户开发 IM 相关的应用提供的一套完善的开发框架.包括以下几个部分: SD ...

  5. 开源.Net Standard版华为物联网北向接口SDK

    最近用到了华为的物联网平台API,但是官方没有.Net版的SDK,所以就自己封装了一个,开源出来给有需要的朋友,同时也算是为.Net Core的发展做点小贡献~ 源码地址:https://github ...

  6. ASP.NET Web API 路由对象介绍

    ASP.NET Web API 路由对象介绍 前言 在ASP.NET.ASP.NET MVC和ASP.NET Web API这些框架中都会发现有路由的身影,它们的原理都差不多,只不过在不同的环境下作了 ...

  7. ASP.NET Web API 开篇示例介绍

    ASP.NET Web API 开篇示例介绍 ASP.NET Web API 对于我这个初学者来说ASP.NET Web API这个框架很陌生又熟悉着. 陌生的是ASP.NET Web API是一个全 ...

  8. ar技术序章-SDK介绍和选择

    转自: http://blog.csdn.net/kun1234567/article/details/10402535 ar技术序章-SDK介绍和选择 分类: Augmented Reality20 ...

  9. API 与 SDK

    API 和SDK是软件行业的两个缩写词. API (Application Programming Interface)=应用程序编程接口 通过一套套的要求,用来管理应用程序之间的沟通.一个API相当 ...

随机推荐

  1. GIS和视频监控的集成

    本文讨论了使用增强现实(AR)技术的三维(3D)地理信息系统(GIS)和视频监视系统的集成.进行这种集成的动机是要克服常规视频监视系统面临的问题.关于哪个摄像机当前监视此类系统中哪个区域的明确信息:因 ...

  2. 多测师讲解python练习题_100以内奇数,偶数的和_高级讲师肖sir

    (1)通过while 循环来求出1-100之和'''(2)通过while 循环来求出1-100奇数之和'''(3)通过while 循环来求出1-100偶数之和''' 奇数和 sum1=0for i i ...

  3. MeteoInfoLab脚本示例:计算涡度、散度

    用U/V分量数据计算涡度和散度,计算涡度的函数是hcurl,计算散度的函数是hdivg,参数都是U, V.脚本程序: f = addfile('D:/Temp/GrADS/model.ctl') u ...

  4. 爬虫之Selenium

    简介 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如 ...

  5. 程序员,想被别人发掘?那你有 freestyle 吗?

    程序员群体是偏内向的,整天和计算机打交道,用代码说话,接受任务,默默工作. 如果这些任务是有挑战性的还行,你的工作成果就能帮你说话,可是大部分工作都是普普通通的,甚至有点儿重复性的劳动. 这个时候表面 ...

  6. go 爬取页面保存

    package main import ( "bufio" "fmt" "io/ioutil" "net/http" & ...

  7. zookeeper的客户端常用操作

    一,查看当前zookeeper的版本: [root@localhost conf]# echo stat|nc 127.0.0.1 2181 Zookeeper version: 3.5.6-c11b ...

  8. 第二十四章 IPtables防火墙

    一.iptables防火墙基本概述 1.应用场景 1.主机安全2.端口转发/ip转发3.内部共享上网 2.iptables工作流程 1.配置防火墙规则可以添加在下面,也可以添加在前面,是有顺序的2.匹 ...

  9. PS矢量工具

    4.1PS矢量及位图 (1)位图就是像素图,由一个个像素点组成:矢量图是记录点到点的连线或者说程序算出来的图. (2)位图放大很多倍之后就会失真,可以看到像素点,类似于马赛克,所以有分辨率这一说. ( ...

  10. pybind11和numpy进行交互

    使用一个遵循buffer protocol的对象就可以和numpy交互了.   这个buffer_protocol要有哪些东西呢? 要有如下接口: struct buffer_info { void ...