软件开发工具包一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。

软件开发工具广义上指辅助开发某一类软件的相关文档、范例和工具的集合。

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

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

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

中文名

软件开发工具包

外文名

Software Development Kit

别名

SDK

用途

软件开发

应用

软件包、软件框架、硬件平台、操作系统

应用平台

Windows操作系统

内容简介

SDK -simple- develop-key 简单的开发钥匙,一个好的sdk会让开发者用起来更简单。sdk就像一个钥匙库,开发者需要找到自己想用的那一个钥匙就行。钥匙可以理解成功能。

SpeechSDK

介绍了该系统的设计目标及功能结构,结合实际项目背景,提出了解决方案并以分模块的形式探讨了系统的功能,介绍了系统各部分的特点。经过测试基于SpeechSDK。 

相关背景

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

相信随着Android对应用程序的继续火爆发展,这款既节约了Android开发人员开发软件的时间的同时,又确保和提高开发人员和广告商的经济利益,并且又具有良好的可移值性的,能够适用于任何Android平台上的移动,应用的广告平台和游戏推广中心SDK的推广和发展将是十分顺利的。 

广告模块业务描述

根据网上提供的资料,到2012年2月15日为止,我国用手机上网的人数已由03年的900万增加到4.5亿人,且增长速度极快。

移动无线广告领域大有可为,而友盟广告平台正是顺应着这一形势而成的一个为移动应用开发者提供广告推广平台,并获得广告分成收入,为广告提供商提供广告展示平台,推广自己的产品的一个综合平台。他通过为移动应用开发者提供可以在自己的应用中加入广告的SDK及详细说明文档来保障移动应用开发者正确,顺利的使用广告平台,并通过SDK中的数据上传接口来记录移动终端用户看到,及点击广告的动作,从而为移动应用开发者获‘得广告提成提供数据基础。因此,SDK的开发是广告平台能否顺利应用并发展的重中之重,他的易用性,正确性,稳定性直接决定了移动应用开发者是否选择友盟广告平台,是使得友盟广告平台能否在竞争激烈的移动无线广告市场中脱颖而出的核心竞争力。 

游戏模块业务描述

众所周知,移动互联网的发展速度十分迅猛,在世界各地,不管是移动运营商,还是设备制造商,甚至是软件生产商都投入了大量的人力物力布局移动互联网,移动互联网大有超越基于个人电脑的传统互联网成为最前沿的改变人们生活方式的下一代革命性技术。

由于Android市场的审核机制不是十分的严格,大量的粗制滥造的游戏充斥于游戏市场中,使用户叫苦不迭,这一现象甚至已经影响了整个Android平台的发展。因此,用户和Android市场都需要一个平台来评价,推荐一些好的游戏,来净化一下这个市场。而项目中的SDK就是顺应这一形势产生的一个定期向用户提供推荐游戏的一个平台,其业务模式与广告平台类似,都是开发一个SDK来允许移动应用开发者将此游戏平台集成到其所开发的应用中,然后将他的应用发布到Android市场中,当用户下载此应用并使用的过程中,会看到此游戏平台的提示,点击进去就可看到游戏中心所提供的数据,了解到近期Android市场中一些评价很高的游戏,在这个过程中,SDK中会有专门模块记录用户的行为,为以后移动应用开发者获得游戏推荐提成提供数据基础。 

与MOD(游戏模组)的关系

游戏中就有很多SDK工具包,可以开发MOD和资料片。

2017年,Vungle推出SDKV5,增加10个新的交互式应用内视频模板进一步增强消费者的广告体验----新的模版将会植入Vungle最新的广告埋点技术。

隐私风险

2019年11月,上海市消费者权益保护委员会委托第三方公司对一些手机软件中的SDK插件进行了专门的测试,却发现一些SDK暗藏玄机。它们会读取设备的IMEI、IMSI、运营商信息、电话号码、短信记录、通讯录、应用安装列表和传感器信息。这些APP里的SDK来读取用户的隐私信息只是第一步,读取完成后,还会悄悄地将数据传送到指定的服务器存储起来。北京招彩旺旺信息技术有限公司的SDK,甚至涉嫌通过菜谱、家长帮、动态壁纸等多款软件,窃取用户更加隐私的信息。因为SDK能够收集用户的短信,以及应用安装信息,一旦用户在网络交易的验证码被获取,极有可能造成严重的经济损失。[1]