`
Breese
  • 浏览: 62908 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

什么是SDK

 
阅读更多

sdk

SDK(Software Development Kit, 即软件开发工具包 )一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。

 

基本信息

SDK,Software Development Kit 的缩写,中文即“软件开发工具包”。广义上指辅助开发某一类软件的相关文档、范例和工具的集合。  SDK是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,一般而言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() 函数。  可以这么说,DOS API 是“Thinking in 汇编语言”的,而 Windows API 则是“Thinking in 高级语言”的。
  DOS API 是系统程序的一部分,他们与系统一同被载入内存并且可以通过中断矢量表找到他们的入口,那么 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 函数 。

分享到:
评论

相关推荐

    什么是SDK?.htm

    什么是SDK?.htm

    微信支付最新SDK wxpay-sdk-0.0.3

    首先,我们要理解什么是SDK(Software Development Kit)。SDK是一组工具、库文件、文档和技术支持,旨在帮助软件开发人员构建、测试和部署特定平台或应用的软件。在这个案例中,微信支付SDK包含了一系列Java类库,...

    HBuilderX 离线SDK Android-SDK@2.6.16.80137_20200426

    首先,我们来理解什么是SDK。SDK,全称为软件开发工具包,是一组用于开发特定平台或框架的工具、库、API文档和示例代码的集合。在Android开发中,SDK包含了Java开发工具、Android运行时环境、模拟器、调试工具等,...

    淘宝SDK(java)

    首先,我们需要理解什么是SDK(Software Development Kit)。SDK是一系列工具、库、文档和示例代码的集合,帮助开发者构建特定平台或应用的软件。在这个案例中,淘宝SDK(Java)包含了必要的类库和接口,使开发者...

    mstr sdk 二次开发

    首先,让我们理解什么是SDK。SDK是一组工具、库、文档和示例代码,旨在帮助软件开发人员创建、测试和维护特定平台或应用程序的软件。MicroStrategy SDK提供了一整套API和接口,使得开发者能够构建自定义报表、仪表板...

    海康SDK delphi demo

    首先,我们需要理解什么是SDK(Software Development Kit)。SDK是一组工具、库文件、文档和示例代码,旨在帮助程序员构建特定平台或应用领域的软件。在这个案例中,海康SDK是为了帮助开发者利用Delphi编程语言来...

    Brew SDK 3.1.5

    在介绍 Brew SDK 3.1.5 的具体知识点之前,我们首先需要理解什么是 SDK(Software Development Kit)。SDK 是一组工具、文档、库和示例代码,旨在帮助开发者构建特定平台或技术的应用程序。Brew SDK 作为 Homebrew ...

    C#调用BarTender源码,包含SDK,可直接使用

    首先,我们需要理解什么是SDK。SDK是一组开发工具和文档,它帮助开发者更好地理解和利用特定平台或技术的功能。BarTender的SDK提供了C#接口,使得开发者可以使用C#语言直接控制BarTender的各个功能,如设计标签、...

    全套淘宝SDK高级模板源代码【适合高手】

    然后,你需要理解什么是SDK,它是如何帮助开发者与淘宝API进行交互的。SDK通常包括了封装好的方法,用于请求和解析淘宝接口返回的数据,简化了开发过程。 淘宝SDK的核心功能包括但不限于: 1. **商品管理**:如...

    Windows SDK Windows SDKWindows SDKWindows SDK

    Windows SDKWindows SDKWindows SDKWindows SDKWindows SDKWindows SDKWindows SDKWindows SDKWindows SDKWindows SDKWindows SDKWindows SDKWindows SDK

    山景SDK最新sdk软件

    山景SDK最新sdk软件是专为开发者设计的一款高效、易用的开发工具,它针对此前可能出现的各种问题进行了全面的优化和解决。SDK,全称Software Development Kit,是一组用于构建应用程序的工具,通常包括库、API接口、...

    awesomium SDK

    Awesomium SDK 是一个强大的Web渲染引擎,它允许开发者在他们的桌面应用程序中嵌入完整的Web浏览器功能。这个SDK主要用于创建具有高级Web交互性的桌面应用,例如Markdown编辑器中的预览功能。在Markdown Pad这款软件...

    SDK教程_SDK教程_SDK教程

    SDK,全称Software Development Kit,即软件开发工具包,是一系列程序接口、工具、文档的集合,用于帮助软件开发者创建、调试和优化特定平台或应用的软件。SDK通常包括编程库、开发环境、示例代码、文档和调试工具等...

    安卓6.0 sdk-23版本Android sdk

    《安卓6.0 SDK-23版本:深入理解Android SDK平台》 Android SDK(Software Development Kit)是开发Android应用程序的基础工具集,它包含了构建、测试和调试应用所需的各种组件。在Android的历史版本中,Android ...

    SDK入门教程 SDK入门教程SDK入门教程

    SDK入门教程SDK入门教程SDK入门教程SDK入门教程SDK入门教程SDK入门教程SDK入门教程SDK入门教程SDK入门教程SDK入门教程SDK入门教程SDK入门教程SDK入门教程SDK入门教程SDK入门教程SDK入门教程SDK入门教程SDK入门教程...

    海康NVR开发SDK,sdk开发文档

    海康NVR(Network Video Recorder)开发SDK是一个用于与海康威视的网络视频录像机进行交互的软件开发工具包,它为开发者提供了丰富的接口和功能,以便在Python等编程语言中实现对NVR设备的控制、视频流处理、录像...

    abbyysdk-ocrsdk

    **ABBYY OCR SDK** 是一款备受推崇的光学字符识别(OCR)开发工具包,由ABBYY公司提供。这款SDK主要用于帮助软件开发者实现高效且精确的文字识别功能,将扫描文档、图像或PDF中的文本转换为可编辑和可搜索的数据。...

    Android SDK (SDK Platforms)-android-28.zip

    首先,我们要了解SDK Platforms是什么。这部分SDK主要包括了不同Android版本的API(应用程序编程接口)层,这里是Android系统的核心。在本例中,"android-28"代表的是Android 9.0(Pie)的API级别。API级别定义了...

    qimen_sdk.zip

    奇门SDK,全称为Qimen SDK,是一款专为开发者设计的工具包,旨在简化与淘宝平台接口的交互过程。在IT行业中,SDK(Software Development Kit)通常包含了一系列库、工具、文档和示例代码,帮助开发者高效地开发应用...

    联咏96660sdk介绍

    联咏96660sdk介绍 联咏96660SDK是一款由Novatek Microelectronics Corp.开发的软件开发包,主要用于嵌入式系统的开发。该SDK提供了一个综合的解决方案,包括软件架构、多核DRAM分区、多核IPC解决方案、固件更新、µ...

Global site tag (gtag.js) - Google Analytics