• 正在加载中...
  • SDK

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

    编辑摘要

    基本信息 编辑信息模块

    中文名: 软件开发工具包 英文名: Software Development Kit
    简写: sdk 用途: 软件开发

    目录

    基本概念/SDK 编辑

    SDKSDK
    SDK,Software Development Kit 的缩写,中文即“软件开发工具包”。广义上指辅助开发某一类软件的相关文档、范例和工具的集合。

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

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

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

    相关背景/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 函数 。

    相对关系/SDK 编辑

    sdk与mod的关系
    游戏中就有很多sdk工具包,可以开发mod和资料片。

    产品脉络/SDK 编辑

    从国内代表性的软件开发平台中,我们可以看出这一类产品的大致脉络:
    1、用友的UAP平台:1997年开始研发,是我国第一个基于B/S、SOA架构的管理软件平台,在J2EE、.NET平台最早实现,号称拥有最多客户装机基础,拥有最多伙伴支持、拥有最多成功应用案例。作为交付和部署工具,UAP可以提高应用软件的可定制性和可集成性,在帮助用友ERP普及应用的过程中发挥了巨大作用。UAP也是做得越来越庞大和复杂。
    2、金蝶的BOS平台:BOS平台最大的竞争优势在于,它不仅以金蝶APUSIC这一国内唯一的系统级中间件J2EE应用服务器为核心,还包括基于APUSIC之上的一整套模型化业务组件,号称是中国首创、世界一流的互联网基础件平台。BOS平台同样支持J2EE与.net两大技术平台,基于Internet开放技术标准而建立。
    3、亚思捷的TNT平台:TNT平台的核心优势在于低成本的个性化,他可以同时向客户提供T——业务系统模板,即OA、CRM、文档管理、信息门户、在线考试等标准化的应用系统;N——开源组件包,即上述应用系统的源代码;T——开发工具,即基于微软Jupiter平台的快速开发工具,开发者可以通过界面属性设定的方法来完成对业务系统的快速开发,自动化生成C#和JAVA的二种语言的系统。显然,TNT中的两个“T”是业务的重点,而杀手锏则是低价。
    其他厂家的软件开发平台与上述三种均大同小异,都是提供“标准化+行业化+个性化”的应用模式。
    从中我们看出,这些软件开发平台确实都非常具有我们在上文中提到的技术共性,另外我们还都具有一个共同点,那就是他们既提供软件开发平台,又提供基于该平台生成的各种应用系统,两种产品相辅相成。这种模式也是软件开发平台销售的主流模式。

    工具定义/SDK 编辑

    软件开发工具,指的是很方便地把一种编程语言代码化并编译执行的工具。其中主要的语言开发工具有几大类:java开发工具、net开发工具、delphi开发工具等。

    开发工具/SDK 编辑

    1.软件需求工具,包括需求建模工具和需求追踪工具。

    2.软件设计工具,用于创建和检查软件设计,因为软件设计方法的多样性,这类工具的种类很多。

    3.软件构造工具,包括程序编辑器、编译器和代码生成器、解释器和调试器等。

    4.软件测试工具,包括测试生成器、测试执行框架、测试评价工具、测试管理工具和性能分析工具。

    5.软件维护工具,包括理解工具(如可视化工具)和再造工具(如重构工具)。

    6.软件配置管理工具,包括追踪工具、版本管理工具和发布工具。

    7.软件工程管理工具,包括项目计划与追踪工具、风险管理工具和度量工具。

    8.软件工程过程工具,包括建模工具、管理工具和软件开发环境。

    9.软件质量工具,包括检查工具和分析工具。

    工具分类/SDK 编辑

    (1)基于工作阶段的工具

    基于各个阶段对信息的需求不同,软件开发工具可分为三类:设计工具、分析工具、计划工具。

    ①设计工具是最具体的,它是指在实现阶段对人们提供帮助的工具。例如各种代码生成器、一般所说的第四代语言和帮助人们进行测试的工具(包括提供测试环境或测试数据)等,都属于设计工具之列。它是最直接的帮助人们编写与调试软件的工具。

    ②分析工具主要是指用于支持需求分析的工具,例如,帮助人们编写数据字典的、专用的数据字典管理系统帮助人们绘制数据流程图的专用工具,帮助人们画系统结构图或ER图的工具等。他们不是直接帮助开发人员编写程序,而是帮助人们认识与表述信息需求与信息流程,从逻辑上明确软件的功能与要求。

    ③计划工具则是从更宏观的角度去看待软件开发。它不仅从项目管理的角度帮助人们组织与实施项目,把有关进度、资源、质量、验收情况等信息有条不紊地管理起来,而且考虑到了项目的反复循环、版本更新、实现了跨生命周期的信息管理与共享,为信息以及软件的复用创造了条件。

    (2)基于集成程度划分的工具

    集成化程度是用户接口一致性和信息共享的程度,是一个新的发展阶段。集成化的软件开发工具要求人们对于软件开发过程有更深入的认识和了解。开发与应用集成化的软件开发工具是应当努力研究与探索的课题,集成化的软件开发工具也常称为软件工作环境。

    (3)基于硬件、软件的关系划分的工具

    按与硬件和软件的关系,软件开发工具可以分为两类:依赖于特定计算机或特定软件(如某种数据库管理系统)和独立于硬件与其它软件的软件开发工具。一般来说,设计工具多是依赖于特定软件的,因为它生成的代码或测试数据不是抽象的,而是具体的某一种语言的代码或该语言所要求的格式的数据。而分析工具与计划工具则往往是独立于机器与软件的,集成化的软件开发工具常常是依赖于机器与软件的。

    (4)基于应用领域划分的工具

    照应用领域的不同,应用软件可以分为事务处理、实时应用、嵌入式应用等。随着个人计算机与人工智能的发展,与这两个方面相联系的应用软件,也取得较大的进展。

    添加视频 | 添加图册相关影像

    互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。未经许可,禁止商业网站等复制、抓取本站内容;合理使用者,请注明来源于www.baike.com。

    登录后使用互动百科的服务,将会得到个性化的提示和帮助,还有机会和专业认证智愿者沟通。

    互动百科用户登录注册
    此词条还可添加  信息模块

    WIKI热度

    1. 编辑次数:10次 历史版本
    2. 参与编辑人数:8
    3. 最近更新时间:2015-02-09 09:38:20
    立即申请荣誉共建机构 申请可获得以下专属权利:

    精准流量

    独家入口

    品牌增值

    广告