SDK和HDK

为了让开发人员充分发挥MT7681的特性,这个全新开发平台提供适用于Microsoft Windows 及Ubuntu Linux的软件开发工具包(Software Development Kit;SDK)、与Seeed Studio合作的硬件开发工具包(Hardware Development Kit;HDK),以及相关的技术说明文件。

SDK为开发人员提供编译及上载所需的固件,从而控制物联网产品响应以无线方式传送的指令。

HDK则提供了LinkIt Connect 7681开发电路板,其中包括LinkIt Connect 7681模块、micro-USB端口以及为MT7681芯片组每个输入/输出接口而设的引脚。

制造商可订购此联发科技与AcSiP共同设计的LinkIt Connect 7681模块,并可轻易安装在PCB电路板上,使之成为其物联网设备投产版本的一部分。

http://www.zhihu.com/question/21691705

一堆api就像一本字典,在实际开发中用起来很费劲,sdk就不同了,是从应用api的角度对api做进一步封装。sdk(software development kit)按照字面理解是软件开发工具,而API就是应用程序编程接口。一个是工具,一个是接口。

api是编程接口,可以简单的理解为是一个或一组实现特定功能的函数或函数调用步骤(函数之间可以相互层层调用,虽然正规的商业开发不允许这么干,但有时候迫不得已也可以这么用),api主要有操作系统提供。而sdk是开发工具包,主要提供的是库,是包含某一类功能函数的文件,如计算数学是用到的数学库(math.h也算),有时候也会包含一些辅助IDE的特定功能,如自动补全,关键字着色等,有特定支持开发商提供。结构上讲,sdk和api是前者调用后者的关系,但这两者之间没有绝对的包含关系,sdk也可以不用api,api也可以由变成人员自行调用。类似sdk功能的还有jdk(java开发工具包)。

你是个男的,你要开发一个,BABY,SDK,就是房间、床、你老婆等一系列相关的工具、文档,API,就是你老婆开放的接口。

专业回答:
SDK (Software Development Kit )翻译成中文就是"软体开发工具组"
是用来帮一个 产品 或 平台 开发应用程式的工具组,由产品的厂商提供给开发者使用的。
通常是 某一家厂商 针对某一 平台 或 系统 或 硬体 所发佈出来用以开发应用程式的工具组,
在这个工具包裡面,可能包含了各式各样的开发工具,模拟器等。
例如:给 Android平台 使用的 Android SDK 就是用来开发 Android系统上面的应用程式。

API (Application Programming Interface)
翻译成中文就是"应用程式介面",其实这样翻译不好,应该说是"程式沟通介面"。
翻译为介面,顾名思义就要沟通两个不同的东西用的,通常由一组函式库所组成。
在一个 同一个平台 下的 两个不同东西(程式 or 系统),为了能取用对方的功能等等,
所以一个 X程式 写了一组函式,让 同一平台的其他程式 取用 X程式 的功能,
那组函式就可以说是那个 X程式 对外开放的 API。
例如:我要在 自己的网页 上加入 google map网页的功能,就使用 "google map API"


有时候 SDK(开发者工具包) 裡也会带有些许 API 用来调用一些系统平台程式提供的功能
例如说:视窗显示,图形特效等等。
以下举一个实际例子来说明,调用系统程式功能的API 是怎麽一回事
开发Windows应用程式的SDK(开发者工具包) 裡就包含 Win32 API
说明: Win32 API 是一个函式库,可以给Windows应用程式 调用 Windows系统的功能

SDK是用来开发某一个平台的程式的工具包,API 是让同一平台下的程式取用它的功能的函式库。

1.API 通常大家都不会弄错,的确就是以功能为导向的"方法"或"函式"清单,
看程式语言或平台而定( Methods, Functions... ),
而每个 API 主要都是为了达成某特定功能所设计的。
开发商可以为了不同平台,设计相同的 API 让开发者使用,
也可能会因应不同平台,製作不同的 API 让开发者使用。

2.当 API 数量够多功能够繁複并且可交互为用的时候,
( 例如为了达成某些功能,常需要同时引用某些 APIs 来完成)
开发商就会为了开发便利,而预先撰写好一些组合好 APIs 的 API
供开发者使用,来统一有特定需求的开发者能有一致的开发与使用体验,
( 例如让使用"网路连线"的开发者不需自己处理网路的基础沟通信息,
与错误处理方式,使 API 在应用的时候有一定程度的便利性等 )

然后,也陆续发展出测试、除错工具,甚至是设计不同平台开发环境所需的套件,
尤其针对不同平台,更是设计了对应的工具来协助开发、除错;

SDK 名词之所以出现,俨然是为了汇整上述这些资源而诞生的,
我想也可以说成是 API 的包含者(直接使用)与应用者(以便加速开发),
也因此可以说这两个是属于不同层级的东西...

以 Android 来说:
a. 我们要拥有 Android SDK 才能开发 Android 应用程式
( 针对不同开发系统而不同 Linux, Windows )
b. Android SDK 裡的 APIs 统统都可以单独使用,只不过你会
发现他们都还有许多其他的应用,而且可能还比自己写来得更有效率
c. Android SDK 跟开发环境整合后,除了提供程式码语法错误检查外,
还提供模拟器平台让我们不需要硬体就可以模拟测试
d. Android SDK 内有测试用的 APIs,来协助我们检查记忆体用量、
程式效能以及状态显现等功能 ( 当然它建议仅在测试除错时才使用 )

以 Facebook 来说:
a. 我们要下载 Facebook SDK 才能开发应用程式
( 针对不同开发语言或平台而不同,PHP, JavaScript, Android, iOS )
b. Facebook 官网提供 SDK 详细的 APIs 解说与使用方法、范例说明等
c. Facebook 官网提供 线上测试工具,测试某些API的指令与语法

以 Google Map API 来说:
网页开发,只需使用 Google Map API 即可在网页上开发、使用其功能
( 但是在 Android, iOS 上开发则另外需要 Google Map SDK 才行 )

由此可知,我们可以清楚知道 API 与 SDK 的定义差别了!


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值