什么是SDK?
SDK是软件开发工具包的缩写。它是一个包含代码库、工具和文档的软件包,允许开发人员向其应用程序添加指定的服务或技术,而无需从头开始构建。
在移动游戏中, SDK通常是工作室将其游戏连接到外部平台的方式。例如,集成Unity Ads SDK可以将游戏连接到 Unity 的广告网络及其广告聚合工具,使开发者能够控制广告何时、何地以及如何显示,而无需自己编写这些基础架构。
平台特定的 SDK,例如安卓 SDK和iOS SDK,在其各自的生态系统中以相同的方式工作。
SDK是如何工作的?
大多数SDK都包含相同的核心组件:
- 一个预先编写好的代码库,用于处理底层功能。
- 定义开发者自己的代码如何与该库进行通信的API 。
- 使用说明文档。
- 测试或调试工具。
开发人员将SDK导入到他们的项目中,并调用其函数,而不是从头开始构建该功能。SDK会处理与它连接的任何服务的底层通信,无论是广告网络、支付处理商还是分析平台,因此开发人员不必自己编译版本和维护该连接。
SDK在游戏开发中的应用场景有哪些?
在游戏开发中,SDK 是工作室添加自己不想自行编译版本的功能的一种方式。
Unity Ads SDK 的工作原理是,通过一次集成将游戏连接到 Unity 的广告网络和聚合工具,而 Unity 的SDK集成指南则逐步引导用户完成Unity项目的设置。
Uken Games描述了他们如何应对之前广告合作伙伴带来的“SDK跑步机”式的困境,即每个新的SDK都需要进行定制集成工作。切换到Unity Ads后,只需勾选一个复选框和几行代码即可完成设置。
移动游戏中Other常见的SDK类别包括分析、归因和支付处理,每一种都允许工作室添加某种功能,而无需在内部构建和维护。
SDK与API
SDK和API经常被混用,但它们并不是同一回事。
大多数 SDK 都包含一个或多个 API,但API本身并不是SDK。
使用SDK有哪些好处?
- 更快地Build:预构建的代码和工具意味着开发人员不必从头开始编写和测试相同的集成。
- 获取支持和文档:大多数 SDK 都附带参考文档、样本代码和维护更新路径,而不仅仅是原始代码。
- 与平台保持一致: SDK由其连接的平台构建和维护,因此与完全自定义的集成相比,它更有可能随着平台的变化而继续工作。
使用SDK会面临哪些挑战?
- 添加依赖关系:依赖SDK的项目取决于该提供商能否保持其维护、安全并与未来的更新兼容。
- 可能会增加应用体积和加载时间:捆绑多个 SDK 会增加游戏的整体文件大小,如果管理不当,还会降低性能。
- 版本和兼容性风险:SDK更新或未针对其设计的OS更新可能会导致功能中断,直到集成本身已更新为止。
常见问题解答 (FAQ)
所有SDK都可以免费使用吗?
不。有些 SDK 是免费开源的,这意味着代码是公开的,可以进行修改。Others是闭源软件,需要从提供商处获得许可证或帐户。开发者使用哪一个通常取决于SDK背后的平台提供的功能,而不是一般的规则。
如何将SDK集成到Unity项目中?
具体步骤取决于SDK,但集成通常意味着将 SDK 的包导入到项目中,使用项目特定的 ID 或密钥对其进行初始化,并在需要该功能的地方调用其函数。有关一般流程,请参阅SDK集成;有关Unity Ads 的具体步骤,请参阅 Unity 自己的SDK集成指南。