软件开发工具包(Software Development Kit,SDK)一般都是一些
软件工程师为特定的
软件包、
软件框架、
硬件平台、
操作系统等建立应用软件时的
开发工具的集合。
SpeechSDK
介绍了该系统的设计目标及功能结构,结合实际项目背景,提出了解决方案并以分模块的形式探讨了系统的功能,介绍了系统各部分的特点。经过测试基于SpeechSDK。
为了鼓励开发者使用其系统或者语言,许多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()
函数。
可以这么说,
DOSAPI是“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
相信随着
Android对应用程序的继续火爆发展,这款既节约了Android开发人员开发软件的时间的同时,又确保和提高开发人员和广告商的经济利益,并且又具有良好地可移值性的,能够适用于任何Android平台上的移动,应用的广告平台和游戏推广中心SDK的推广和发展将是十分顺利的。
广告模块业务描述
根据网上提供的资料,到2012年2月15日为止,我国用手机上网的人数已由03年的900万增加到4.5亿人,且增长速度极快。2021年我国互联网上网人数10.32亿人,其中手机上网人数10.29亿人。互联网普及率为73.0%,其中农村地区互联网普及率为57.6%。全年移动互联网用户接入流量2216亿GB,比上年增长33.9%。
移动无线广告领域大有可为,而友盟广告平台正是顺应着这一形势而成的一个为移动应用开发者提供广告推广平台,并获得广告分成收入,为广告提供商提供广告展示平台,推广自己的产品的一个综合平台。他通过为移动应用开发者提供可以在自己的应用中加入广告的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能够收集用户的短信,以及应用安装信息,一旦用户有网络交易的验证码被获取,极有可能造成严重的经济损失。
数据间谍
近年来,国家安全机关工作发现,境外一些别有用心的组织和人员,正在通过SDK搜集我用户数据和个人信息,给我国家安全造成了一定风险隐患。SDK以其多样化、易用性和灵活性等优势成为移动供应产业链中最重要的一项服务,与此同时也带来诸多数据安全问题。
——过度收集用户数据。有些SDK会收集与提供服务无关的个人信息,或强制申请非必要的使用权限,比如获取地理位置、通话记录、相册照片等信息以及拍照、录音等功能。当SDK的用户覆盖量达到一定规模时,可以通过搜集的大量数据,对不同用户群体进行画像侧写,从而分析出潜在的有用信息,比如同事关系、单位位置、行为习惯等。一些境外SDK服务商,通过向开发者提供免费服务,甚至向开发者付费等方式来获取数据。据相关网站披露,一款在美国拥有5万日活跃用户的应用程序,其开发者通过使用某SDK,每月可以获得1500美元的收入。作为回报,该SDK服务商可以从这款应用程序中收集用户的位置数据。
——境外情报机构将SDK作为搜集数据的重要渠道。据报道,美国特种作战司令部曾向美国SDK服务商Anomaly Six购置了“商业遥测数据源”的访问服务,而该服务商曾自称将SDK软件植入全球超过500款应用中,可以监控全球大约30亿部手机的位置信息。2022年4月,有关媒体曝光巴拿马一家公司通过向世界各地的应用程序开发人员付费的方式,将其SDK代码整合到应用程序中,秘密地从数百万台移动设备上收集数据,而该公司与为美国情报机构提供网络情报搜集等服务的国防承包商关系密切。
消除数据风险
消除SDK背后的数据风险应该怎么做?
据国内权威机构掌握,截至2022年12月,中国10万个头部应用中,共检测出2.3万余例样本使用境外SDK,使用境外SDK应用的境内终端约有3.8亿台。
——应用程序开发企业:应尽量选择接入经过备案认证的SDK,引入境外SDK前应做好安全检测和风险评估,深入了解SDK的隐私政策,并利用SDK demo以及APP测试环境对SDK声明内容进行一致性比对,并持续监测SDK是否有异常行为。
——个人用户:个人用户在使用手机应用程序时,要增强个人信息保护意识及安全使用技能,要选择安全可靠的渠道下载使用应用程序,不安装来路不明的应用,不盲目通过敏感权限的申请。特别是发现SDK申请与应用功能无关的权限时,需要保持高度警惕。