转载:https://www.zhihu.com/question/21691705/answer/149935191

SDK(software development kit),中文可译为“软件开发工具包”。

一般都是一些被软件工程师用于为特定的软件包、软件架构、硬件平台、操作系统等建立应用软件的开发工具的集合。通俗点是指由第三方服务商提供的实现软件产品某项功能的工具包。在编辑器里敲代码的时候它会自动补全代码、自动检查错误。

通常SDK是由专业性质的公司提供专业服务的集合,比如提供安卓开发工具、或者基于硬件开发的服务等。也有针对某项软件功能的SDK,如推送技术、图像识别技术、移动支付技术、语音识别分析技术等,在互联网开放的大趋势下,一些功能性的SDK已经被当作一个产品来运营。

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

API(application programming interface),中文可译为“应用程序编程接口”。提供用户编程时的接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。DOSAPI 是“Thinking in汇编语言”的,而 Windows API 则是“Thinking in 高级语言”的,我们通常指的是Windows API ,DOSAPI是系统程序的一部分,他们与系统一同被载入内存并且可以通过中断矢量表找到他们的入口,那么关于 Windows API又是 呢?要说明白这个问题就不得不引入这个概念——DLL

DLL( Dynamic Link Library),中文译为“动态链接库”。在windows环境下含有大量 .dll格式的文件,这些文件就是动态链接库文件,其实也是一种可执行文件格式。跟 .exe 文件不同的是,.dll文件不能直接执行,他们通常由 .exe 在执行时装入,内含有一些资源以及可执行代码等。其实 Windows 的三大模块就是以DLL的形式提供的(Kernel32.dll,User32.dll,GDI32.dll),里面就含有了 API函数的执行代码。为了使用 DLL 中的 API 函数, 必须要有 API 函数的声明(.H)和其导入库(.LIB),导入库可以先这样理解:导入库是为了在 DLL 中找到 API 的入口点而使用的。

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

为了使用 API 函数,我们就要有跟 API 所对应的 .H 和 .LIB 文件,而 SDK 正是提供了一整套开发 Windows 应用程序所需的相关文件、范例和工具的“工具包”。

SDK 包含了使用 API 的必需资料,所以人们也常把仅使用 API 来编写 Windows 应用程序的开发方式叫做“SDK编程”。而API和 SDK 是开发Windows应用程序所必需的东西,所以其它编程框架和类库都是建立在它们之上的,比如VCL 和MFC,虽然他们比起“SDK 编程”来有着更高的抽象度,但这丝毫不妨碍它们在需要的时候随时直接调用 API 函数 。

举例:

假设你要做一款WiFi可视门铃,APP功能有:
1. 视频对讲
2. APP开锁
3. 访客截图
4. 移动侦测
5. 触发警报
6. 人脸识别
首先,要做1-6的API, 组成了SDK, 然后根据SDK开发Project File项目文件,制作APP, 门铃上写入Firmware固件(Firmware是门铃的软件,是SDK和门铃沟通的桥梁)。
如下图:

后来,你想升级门铃,加入新功能 7. 虹膜识别,做API-7, 组成新的SDK, 生成新的Firmware, 更新到门铃,搞定。

---------------------
作者:feng98ren
来源:CSDN
原文:https://blog.csdn.net/feng98ren/article/details/80047450
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件

[转]SDK与API区别相关推荐

  1. SDK和API 区别

    SDK就是Kit,工具箱嘛,IOS平台上就是XCode,一系列的工具组合在一起,比如你在编辑器里敲代码的时候它会自动补全代码,自动错误检查,你点一下Run,它会调用编译器来自动编译,编译完它会调用iP ...

  2. SDK与API的联系与区别

    在手机App的世界里,法规条文里所谓的"第三方应用或服务"是个看得见摸不着的存在.但事实上,不管是你每天收到的新闻推送,还是促销活动广告,甚至短信验证码,都有可能出自第三方之手. ...

  3. API,SDK和API之间的关系和区别

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

  4. SDK和API的区别

    SDK和API的区别 一.API的概念 二.SDK的概念 三.SDK和API的区别 在正式了解它们的区别之前,我们得先知道 SDK 和 API 分别是什么? 一.API的概念 我们先来看这样一张图: ...

  5. 支付对接的API是什么?和SDK有什么区别

    随着移动支付的发展速度越来越快,各第三方支付和第四方支付成为移动支付的中流砥柱,而面向市场需求,需要不断的提高自己的技术水平,特别是现在商户对于支付安全.支付便捷的需求越来越大,作为支付技术方,需要把 ...

  6. API 与 SDK 之间的区别

    很多人在软件开发中经常会分不清 SDK 与 API ,今天就来浅谈一下两者之间的区别. 直白地说,SDK 包含了 API ,是一套完整的,能完成更多功能的工具包,无论你想获取什么样的信息,SDK 里总 ...

  7. SDK 和 API 的区别,你都知道吗?

    API 概念 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而 ...

  8. SDK 和 API 的区别

    SDK SDK一般指软件开发工具包 软件开发工具包一般都是一些软件工程师为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件时的开发工具的集合. 软件开发工具广义上指辅助开发某一类软件的相关文档 ...

  9. api和sdk有什么区别

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

最新文章

  1. 2021年自然语言处理学习路线!
  2. 迪普科技:G20峰会背后的网络安全守护者
  3. 开源播放器 支持视频广告
  4. linux u盘分区 mdev 卸载问题,嵌入式linux 实现mdev SD卡和U盘自动挂载和卸载的方法 mdev.conf...
  5. 《Python Cookbook 3rd》笔记(1.7):字典排序
  6. SpringCloud整合nacos服务时无法发现服务
  7. Java编译的运行机制初步讲解
  8. 内核并发控制---读写自旋锁 (来自网易)
  9. java 做猜数字小游戏_Java Properties类:利用Properties类制作猜数字小游戏
  10. 2.15_graph_图
  11. js 判断字符是否以汉字开头
  12. django uWSGI nginx搭建一个web服务器 确定可用
  13. 飞机模拟flightgear
  14. 关于雷霄骅博士的博客FFMPEG+SDL的音频播放器播放有杂音的问题
  15. 软件工程师具体的工作内容是什么?
  16. 最小系统板 STM32入门,呼吸灯实现(STM32F103C6T6)
  17. JSPL中用fn:contains()判断list中是否包含某个值
  18. 第一周挑战2:税后工资计算器
  19. halo_Halo 3评论
  20. “圆周率的计算”实例详解

热门文章

  1. 【谷歌】Google Chrome 浏览器中 font-size 12px 没有效果
  2. 简单的作好服务器安全的几个步骤
  3. Disable anchor tag的javascript代码(兼容IE和Firefox)
  4. .NET 产品组问卷调查|和我们分享你的 .NET 使用情况
  5. 解读WPF中的Xaml
  6. .NET 6新特性试用 | 热重载
  7. 【litrpa专题】首个rpa程序,使用litrpa采集百度地图地铁数据
  8. 动手实现一个适用于.NET Core 的诊断工具
  9. .NET 5 部署在docker上运行
  10. 你没有看错,爬网页数据,C# 也可以像 Jquery 那样