什么是 SDK?
通俗而言:
1、其实很简单,SDK 就是 Software Development Kit 的缩写,中问意思是: 软件开发工具包。
2、这是一个覆盖面相当广泛的名词,可以这么说:
辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做“SDK”。
PS:(这里插一段关于抽象的理解的话:
抽象就是从众多的事物中提取出共同的、本质的特征,而舍弃非本质的特征。
例如苹果、香蕉、香梨、葡萄、桃子等,他们的共同特征就是水果。得出水果概念的过程,就是一个抽象的过程。
那么要抽象,就必须进行比较,没有比较就无法找到在本质上共同的部分。共同特征是指哪些能把一事物与其他事物区分开来的特征,这些具有区分作用的特征又称本质特征。
因此抽取事物的共同特征就是抽取事物的本质特征,舍弃非本质的特征,所以抽象的过程也是一个裁剪的过程。
在抽象时,同于不同,决定于什么角度上来抽象。抽像的角度取决于分析问题的目的)
3、为了解释 “SDK” 不得不引入 API、动态连接库、导入库等概念
(1)API (Application Programming Interface):
是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去执行应用程序的命令。
(2)DLL(Dynamic Link Libary)动态连接库:
我们经常看到一些 .dll 格式的文件,这些文件就是动态连接库文件,其实也是一种可执行文件格式。跟 exe 文件不同的是,dll 文件不能直接执行,他们通常由 .exe 在执行时装入
内含有一些资源以及可执行的代码等。其实 windows 的三大模块就是以 DLL 的形式提供的(Kernel32.dll User32.dll GDI32.dll),里面就含有了 API 的函数执行代码,为了使用 DLL
中的 API 函数,我们必须要有 API 函数的声明(H)和其 导入库(LIB),函数的原型不难理解,那么导入库又是做什么的呢?
(3)导入库:
导入库是为了在DLL 中找到 API 的入口点而使用的,所以,为了使用 API 函数。我们要又跟 API 所对应的.H 和 .LIB 文件,而 SDK 正式提供了一整套开发 Windows 应用程序所需的
相关文件、范例和工具的“工具包”
到此为止,我们才真正的理解 SDK 的含义,由于 SDK 包含了使用 API 的必须资料,所以人们也常把仅使用 API 来编写 Windows应用程序的开发方式叫做“ SDK 编程”。
而 API 和 SDK 时开发 Windows 应用程序所必须的东西,所以其他编程框架和类库都是建立在他们之上的,比如 VCL 和 MFC,虽然比起"SDK 编程"来有着更高的抽象度,但这丝毫不妨碍他们 在需要的时候随时直接调用 API 函数。
参考
[什么是 SDK? - 海纳百川_有容乃大 - 博客园](https://www.cnblogs.com/jcjc/p/11562530.html )]