软件开发工具包
(Software Development Kit,SDK
[5]
)一般都是一些
软件工程师
为特定的
软件包
、
软件框架
、
硬件
平台、
操作系统
等建立应用软件时的
开发工具
的集合。
软件开发工具广义上指
辅助
开发某一类软件的相关文档、范例和工具的
集合
。
软件开发工具包是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,一般而言SDK即开发Windows平台下的应用程序所使用的SDK。它通过编译器、调试器、软件框架等来促进应用程序的创建。它可以简单的为某个
程序设计语言
提供
应用程序接口
API
的一些文件,但也可能包括能与某种
嵌入式系统
通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。
为了鼓励开发者使用其系统或者语言,许多SDK是
免费
提供的。
软件工程师
通常从目标系统开发者那里获得软件开发包,也可以直接从互联网下载,有时也被作为
营销手段
。例如,营销公司会免费提供构建SDK以鼓励人们使用它,从而会吸引更多人由于能免费为其编程而购买其构件。
SDK可能附带了使其不能在不兼容的许可证下开发软件的许可证。例如产品供应商提供一个专有的SDK可能与自由软件开发抵触。
GPL
能使SDK与专有软件开发近乎不兼容。
LGPL
下的SDK则没有这个问题。
API
(Application Programming Interface,应用编程
接口
)其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的
API
而使操作系统去执行应用程序的
命令
(动作)。其实早在
DOS
时代就有API的概念,只不过那个时候的API是以中断调用的形式(INT 21h)提供的,在
DOS
下跑的应用程序都直接或间接的通过中断调用来使用操作系统功能,比如将
AH
置为30h后调用
INT
21h就可以得到DOS 操作系统的版本号。而在Windows中,系统API是以
函数调用
的方式提供的。同样是取得操作系统的版本号,在Windows中你所要做的就是调用GetVersionEx()
函数
。
可以这么说,
DOS
API是“Thinking in
汇编语言
”的,而Windows API则是“Thinking in 高级语言”的。
DOS
API
是系统程序的一部分,他们与系统一同被载入内存并且可以通过
中断矢量
表找到他们的入口,那么什么是Windows API呢?要说明白这个问题就不得不引入下面要介绍得这个概念——
DLL
。
[1]
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的
入口点
而使用的。
[1] 张志超 , 刘光富 , 单绍龙.基于Speech SDK的Windows语音助手设计与研究.计算机光盘软件与应用,2012
[2] 杨鹏.基于Android的广告与游戏推荐平台SDK的设计与实现.北京邮电大学,2012-05-01
[3]
315晚会|酷音铃声、手机铃声等知名app被曝收集用户隐私
.新浪财经.2020-07-16
[引用日期2020-07-16]
[4]
2021年我国手机上网人数为10.29亿人
.央广网
[引用日期2022-03-19]
[5]
警惕!一些境外SDK背后的“数据间谍”窃密
.国家安全部
[引用日期2023-10-27]