sdk

软件开发工具包

sdk

SDK(英文:Software Development Kit,中文:软件开发工具包),是通常由硬件平台、操作系统(OS)或编程语言的制造商提供的一套工具。用VC编写Windows程序有两种方式:Windows C方式(SDK)和C++方式(对SDK函数进行包装,如VC中的MFC、BCB中的VCL)。SDK编程是直接调用Windows API进行编程。API由上千个API函数组成(Win95中有两千多个),而MFC是API的封装,结合面向对象的继承、多态组成一个个类,共有一百多个类组成。[2][0]SDK通常用于移动应用程序开发、Web开发、云计算、物联网、游戏开发等。SDK具有开发高效、加快部署、模块/组件/程序包/工具的集成、节约成本等特点。[1]

SDK(英文:Software Development Kit,中文:软件开发工具包),是通常由硬件平台、操作系统(OS)或编程语言的制造商提供的一套工具。用VC编写Windows程序有两种方式:Windows C方式(SDK)和C++方式(对SDK函数进行包装,如VC中的MFC、BCB中的VCL)。SDK编程是直接调用Windows API进行编程。API由上千个API函数组成(Win95中有两千多个),而MFC是API的封装,结合面向对象的继承、多态组成一个个类,共有一百多个类组成。[3][1]

SDK通常用于移动应用程序开发、Web开发、云计算、物联网、游戏开发等。SDK具有开发高效、加快部署、模块/组件/程序包/工具的集成、节约成本等特点。[2]

知名SDK有:Java开发套件(JDK)、Windows 7 SDK、MacOs X SDK 和 iPhone SDK、[3]腾讯地图SDK、百度地图SDK、微信支付SDK、支付宝SDK、微博开放平台、百度AI开放平台等。[4]

简介

SDK(Software Development Kit的缩写,中文称为软件开发工具包,是通常由硬件平台、操作系统(OS)或编程语言的制造商提供的一套工具。[3][1]一个基本的SDK通常由编译器、调试器和应用编程接口(API)组成,也可包含文档、库、编辑器、运行时/开发环境、测试/分析工具、驱动程序及网络协议等。[3]

用途

移动应用程序开发SDK为开发人员提供用于开发移动应用程序的工具、库和其他资源。这些资源包括用于调试、监控和优化移动应用程序性能的组件。开发人员可以构建UI元素、访问数据以及与第三方服务集成。借助SDK,开发人员还可更加轻松地在不同平台(例如iOS或Android)上部署应用程序。 Web开发SDK为开发人员提供构建Web应用程序前端所需的工具,例如HTML、CSS和JavaScript;同时提供各种后端资源,例如数据库、服务器端编程语言、框架和API。SDK还提供用于托管和扩展的部署工具云计算SDK提供各种API库,用于连接云存储服务,或者用于访问数据库、分析或机器学习等云计算服务。开发人员使用这些API和库,采用其首选的语言与云环境集成物联网(IoT)开发人员使用SDK创建与传感器交互的IoT应用程序,这样就能创建可以监控、收集和分析环境数据的应用程序游戏开发游戏SDK通常附带示例代码、教程和其他资源,以协助开发人员打造精彩游戏。3D图形库、音频库、物理引擎人工智能库、联网库和开发工具都是标准的游戏组件

参考资料:[2]

使用

使用SDK通常遵循以下步骤:在VC6的IDE中启动后,选择File菜单的New...选项,在Projects标签内选择Win32 Application,指定项目名称和路径后按OK按钮。根据需要选择项目类型,例如An empty project、A simple Win32 application或A typical 'Hello World!' application,最后按Finish完成。

参考资料:[2]

开发高效

SDK通过提供可整合到应用程序中的预构建组件和库来提高开发效率。这些组件为开发人员节省以前从头开始编码和调试所花费的大量时间。 

加快部署

SDK通过提供可让开发人员快速构建和集成应用程序的工具来加快部署。它们通常支持多个平台,可让开发人员在多个设备或操作系统上快速部署。

集成

SDK提供预构建的模块、组件、程序包和工具,供开发人员构建、测试和部署软件应用程序。它们简化开发和测试,以及与其他系统和服务、代码示例和教程、调试工具和代码库的集成。 

节省成本

SDK减少开发应用程序所需的时间和资源。通过提供预构建的组件和工具库,SDK 可让开发人员快速构建特性和功能。SDK 减少创建新应用程序所需的时间和成本。它们还降低与部署和维护应用程序相关的成本,同时提供简化的安装过程和更新。

参考资料:[2]

知名SDK

软件开发套件的示例包括Java开发套件(JDK)、Windows 7 SDK、MacOs X SDK 和 iPhone SDK。[3]

国内常见SDK及典型供应商

SDK分类功能描述典型供应商广告类提供广告展示和广告相关数据分析等功能,通过使用广告SDK,App提供者可以在App中展示广告商投放的广告,进而根据最终用户的点击赚取收益广点通、力美、友盟、TalkingData、有米、多盟等推送类向用户推送各类消息、通知等极光推送,个推推送,Mobpush,友盟推送,百度推送,云巴推送等数据统计分析类提供收集最终用户与App之间的交互行为的功能。根据用户使用App的情况,开发者可以有针对性地改进AppAppsee、Mixpanel、Google Analytics等地图类提供定位、优化路线、轨迹纠偏、图层绘制、AR、全景等功能腾讯地图SDK、百度地图SDK、凯立德SDK、googlemap SDK等第三方登录类提供通过其他账号体系(如微博、微信、QQ)等第三方账号登录App的功能QQ互联、微信开放平台、微博开放平台社交类提供社交功能,如消息、分享、排行等功能QQ互联、微信开放平台、微博开放平台支付类提供付款、财务管理、分销等功能微信支付、支付宝、百度钱包、银联、ApplePay、Bmob支付SDK、万普支付SDK、Ping++支付SDK、Beecloud支付等Crash监控类提供App崩溃、App无响应、卡顿的数据收集与分析Bugly、Umeng、firebase等人工智能应用类人脸识别、人体识别、人像处理、文字识别、视频技术、AR与VR技术、语音或拍照翻译等等海量的功能腾讯AI开放平台SDK、Face++旗下多款SDK产品、百度AI开放平台旗下多款SDK产品等

参考资料:[4]

监管

2020年7月,中央网信办、工业和信息化部、公安部、国家市场监管总局四部门启动2020年App违法违规收集使用个人信息治理工作,年度治理重点专门提到了对第三方SDK的治理。2021年3月12日,国家互联网信息办公室、工业和信息化部、公安部、国家市场监督管理总局联合制定《常见类型移动互联网应用程序必要个人信息范围规定》,按照基本功能服务分类明确了移动互联网应用程序所需的必要信息。规定对App集成的SDK收集个人信息同样具有约束作用。[4]

2021年4月,在国家互联网信息办公室的统筹指导下,工业和信息化部会同公安部、市场监管总局起草的《移动互联网应用程序个人信息保护管理暂行规定》公开征求意见。其中,对APP第三方服务提供者应当履行的个人信息保护义务提出了要求。[4]

2021年11月1日,工业和信息化部发布《工业和信息化部关于开展信息通信服务感知提升行动的通知》,通知规定:已收集个人信息清单应简洁、清晰列出APP(包括内嵌第三方软件工具开发包SDK)已经收集到的用户个人信息基本情况,包括信息种类、使用目的、使用场景等。鼓励应用商店为本平台APP提供检测服务,及时向APP开发者反馈相关问题并督促改正,防止违规APP上架。内嵌SDK在非服务所必须或无合理应用场景下,不得自启动或关联启动;APP开发者、内嵌SDK应提供相应功能,由用户自主选择是否开启关联启动。[5]

SDK标准

2020年11月全国信息安全标准化委员会发布了《网络安全标准实践指南—移动互联网应用程序(App)使用软件开发工具包(SDK)安全指引》,同期每日互动起草国家标准《信息安全技术移动互联网应用程序(App)软件开发工具包(SDK)安全要求》。腾讯牵头起草行业标准《移动应用软件开发工具包(SDK)安全使用要求》。[4]

调查研究

2021年12月21日,中国信息通信研究院(以下简称“中国信通院”)主办的“2022ICT深度观察——数据安全产业分论坛”顺利召开。会上,中国信通院安全所数据部陈tián主任发布了与腾讯联合编制的《软件开发包(SDK)安全研究报告(2021)》,从场景分析、数据统计、政策标准方面分享了SDK行业发展现状,对SDK行业面临的合规风险、安全风险进行了分析,面向SDK及App开发者提出了安全措施建议,并从实践角度分享案例和经验,为促进SDK行业生态的健康发展提供参考。[6]

隐私风险

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

2023年10月27日,央视网发文称:近年来,国家安全机关工作发现,境外一些别有用心的组织和人员,正在通过SDK搜集用户数据和个人信息,给国家安全造成了一定风险隐患。[1]

参考资料 7

  1. 警惕!有境外组织正通过这个渠道搜集我用户数据和个人信息 — 央广网新闻
  2. 什么是 SDK? — Amazon Web Services
  3. 一文看懂 SDK 是什么意思?SDK 和 API 的区别是什么? — RED HAT
  4. 软件开发包(SDK)安全研究报告(2021 年) — 中国信息通信研究院安全研究所
  5. 工业和信息化部关于开展信息通信服务感知提升行动的通知 — 中国政府网
  6. 中国信息通信研究院联合腾讯发布《软件开发包(SDK)安全研究报告(2021)》 — tom
  7. 315晚会|酷音铃声、手机铃声等知名app被曝收集用户隐私_新浪财经 — 新浪网
广告位:底部(ad-bottom)—— 请到中台「公共区块」编辑此内容