快好知 kuaihz订阅看过栏目

 

软件开发工具包(缩写:SDK、外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包、软件框架硬件平台、操作系统等建立应用软件时的开发工具的集合。

软件开发工具包括广义上指辅助开发某一类软件的相关文档、范例和工具的集合

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

为了鼓励开发者使用其系统或者语言,许多 SDK 是免费提供的。软件工程师通常从目标系统开发者那里获得软件开发包,也可以直接从互联网下载,有时也被作为营销手段。例如,营销公司会免费提供构建SDK 以鼓励人们使用它,从而会吸引更多人由于能免费为其编程而购买其构件。

SDK 可能附带了使其不能在不兼容的许可证下开发软件的许可证。例如产品供应商提供一个专有的 SDK 可能与自由软件开发抵触。GPL 能使 SDK 与专有软件开发近乎不兼容。LGPL 下的 SDK 则没有这个问题。

相关背景

API

API(Application Programming Interface,应用编程接口)其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API而使操作系统去执行应用程序的命令(动作)。其实早在DOS时代就有 API 的概念,只不过那个时候的 API 是以中断调用的形式(INT 21h)提供的,在 DOS下跑的应用程序都直接或间接的通过中断调用来使用操作系统功能,比如将 AH置为 30h后调用INT 21h就可以得到DOS 操作系统的版本号。而在 Windows 中,系统 API 是以函数调用的方式提供的。同样是取得操作系统的版本号,在 Windows 中你所要做的就是调用 GetVersionEx() 函数。

可以这么说,DOSAPI 是 “Thinking in汇编语言” 的,而 Windows API 则是 “Thinking in 高级语言” 的。

DOSAPI是系统程序的一部分,他们与系统一同被载入内存并且可以通过中断矢量表找到他们的入口,那么 什么是Windows API 呢?要说明白这个问题就不得不引入我们下面要介绍得这个概念——DLL。

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 的入口点而使用的。

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

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

与MOD的关系

游戏中就有很多SDK工具包,可以开发MOD和资料片。

2017年-Vungle 推出 SDK V5,增加10 个新的交互式应用内视频模板进一步增强消费者的广告体验 -新的模版将会植入Vungle最新的广告埋点技术。

投稿
非常不爽,删了吧! 相关词条:其他 软件框架 硬件 开发工具 辅助 集合 程序设计语言 免费 营销手段