网站地图
软件开发工具包

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

软件开发工具包,只是简单的为某个程序设计语言提供应用程序接口的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。

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

SDK可能附带了使其不能在不兼容的许可证下开发软件的许可证。例如一个专有的SDK可能与自由软件开发抵触。而GPL能使SDK与专有软件开发近乎不兼容。LGPL下的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可以采用一种或多种应用程序编程接口(API)的简单实现形式,以设备库的形式与特定的编程语言接口,或者它可能与硬件专用工具一样复杂可以与特定的嵌入式系统通信。常用工具包括调试工具和其他实用程序,通常在集成开发环境(IDE)中提供。SDK还可能包含示例代码和技术说明或其他支持文档,如教程,以帮助澄清主要参考资料所提出的要点。

SDK通常包含许可证,这些许可证使它们不适合构建旨在根据不兼容许可证开发的软件。例如,专有SDK通常与自由软件开发不兼容,而GPL许可的SDK可能与专有软件开发不兼容,所有这些都特别是出于法律原因。但是,根据GNU宽通用公共许可证(LGPL)构建的SDK通常对于专有开发是安全的。

平均Android移动应用程序实现了15.6个独立的SDK,游戏应用程序平均实现了17.5种不同的SDK。Android移动应用最受欢迎的SDK类别是分析和广告 [1]

SDK可能不安全(因为它们在应用程序中实现,但运行单独的代码)。恶意SDK(无论是否有诚意)可能会侵犯用户的数据隐私,损害应用性能,甚至导致应用被禁止使用Google Play或iTunes。新技术允许应用程序开发人员实时控制和监控客户端SDK。

特定系统或子系统的SDK提供商有时会用更具体的术语代替软件。例如,Microsoft 和Citrix 都提供了用于开发设备驱动程序的驱动程序开发工具包(DDK)。


相关文章推荐:
SDK | 软件工程师 | 程序设计语言 | 应用程序接口 | 嵌入式系统 | 软件工程师 |
相关词汇词典