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, 更新到门铃,搞定。

DLL,SDK,API专业技术术语相关推荐

  1. api如何使用_记录API:技术作家和工程师指南

    在这门有关编写REST API文档的课程中,我不只是在谈论抽象概念,而是通过直接的动手方法将REST API关联起来.首先,您将通过使用简单的天气API在站点上放置天气预报来了解API文档. 使用AP ...

  2. 全国计算机技术与软件专业技术考试----(中级资格/工程师)各资格证详细介绍

    软件设计师 能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档:组织和指导程序员编写.调试程序,并对软件进行优化和集成测试,开发出符合系 ...

  3. 常用电脑硬件技术术语集锦

    主板篇 芯片组:芯片组是主板的灵魂,它决定了主板所能够支持的功能.目前市面上常见的芯片组有Intel.VIA.SiS.Ali.AMD等几家公司的产品.其中,Intel公司的主流产品有440BX.i82 ...

  4. 第三章 信息系统集成专业技术知识

    第三章 信息系统集成专业技术知识 知识点 1.信息系统的生命周期有哪几个过程 2.信息系统开发的方法有几种:各种用于什么情况的项目. 3.软件需求的定义及分类: 4.软件设计的基本原则是什么: 5.软 ...

  5. Expo大作战(三十六)--expo sdk api之 ImagePicker,ImageManipulator,Camera

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  6. Expo大作战(三十)--expo sdk api之Permissions(权限管理模块),Pedometer(计步器api)

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  7. (转)软件开发人员如何提高自己的软件专业技术方面的具体建议

    哲学就是用简单的说话来体现出隐含深层意义的道理,让人们去思考和体会.哲学本身就是用来完善自己的精神修养和帮助他人完善思想的. 哲学的特征在于追问本质,不断反思.内容上,哲学的反思对象无所不包:深度上, ...

  8. 中国移动将向广大开发者开放了SDK/API等开发工具

    7月30日14时消息,中国移动自有操作系统OPhone OS正式开放开发者社区注册,将向广大开发者开放了SDK/API等开发工具. OPhone OS (Open Mobile Phone Opera ...

  9. 【软考-中级】系统集成项目管理工程师-【3信息系统集成专业技术知识】

    持续更新............... [第三章]信息系统集成专业技术知识-13 分 3.1 信息系统-建设-1分 3.1.1 生命周期(掌握) 3.1.2 开发方法(掌握) 3.2 信息系统-设计 ...

最新文章

  1. c语言实现结构体变量private,C语言中结构体变量私有化详解
  2. 计算机组成原理之磁盘
  3. Windows10 任务栏图标如何居中
  4. caffe将图像数据转换成lmdb文件
  5. 【Python实例第33讲】单变量特征选择
  6. 奔驰北京工厂两年内将再投产三款电动车;希尔顿中国市场第300家酒店开业 | 美通企业日报...
  7. android暗水印技术,基于Android的隐藏数字水印技术的研究与实现
  8. Meta-Learning:MAML
  9. spilt的用法小结
  10. DevOps-2:持续集成工具Jenkins构建.Net项目
  11. E-Competitive Seagulls
  12. Android-跳转开启个人热点页面
  13. css表格文字不换行怎么设置?
  14. 对于我们大冒险游戏的评论回复
  15. 达内python培训好不好
  16. ALM(application lifecycle management)介绍
  17. python序列化模块struct_Python进阶-XII serialize(序列化)、序列化模块
  18. Qt自定义控件之仪表盘的完整实现
  19. 我收集的粤语同音词(160+组,不定期更新)
  20. vue3 composition(组合式)API 是什么?我为什么要使用它?

热门文章

  1. Linux配置Python3详细步骤
  2. ESPCN论文阅读笔记
  3. Python:文件管理器访问文件
  4. Burpsuite 抓取微信小程序数据包
  5. 有哪些「看似复杂,实则简单」的 PS 技巧?
  6. (专升本)PowerPnt(新建、删除、移动或复制、隐藏、编辑幻灯片、设置幻灯片格式)
  7. Steam 取消徽章展示
  8. 用C++实现停车场管理系统
  9. [2022AAAI]Knowledge Distillation for Object Detection via Rank Mimicking and ... 论文笔记
  10. java不确定人数扑克牌发牌技巧_汪峰被曝系德州扑克高手 善于计算发牌概率(图)...