什么是 SDK?

复制 URL

软件开发套件(SDK)是通常由硬件平台、操作系统(OS)或编程语言的制造商提供的一套工具。

查看此开源 SDK

SDK 可协助软件开发人员面向特定的平台、系统或编程语言创建应用。它就像是您购买梳妆台时随板材一同提供的工具包,让您能够自行组装,只是对象是应用开发而已。您所需的构建块或开发工具它都有,而具体所含的内容则因制造商而异。 

一个基本的 SDK 通常由编译器、调试器和应用编程接口(API)组成,但也可能包含以下任意内容:

  • 文档
  • 编辑器
  • 运行时/开发环境
  • 测试/分析工具
  • 驱动程序
  • 网络协议

优秀的 SDK 将为开发人员提供在为特定产品及其生态系统创建新应用时需要的组件。一些 SDK 还会包含示例或基本测试项目,帮助开发人员尽快上手。

软件开发套件的示例包括 Java 开发套件(JDK)、Windows 7 SDK、MacOs X SDK 和 iPhone SDK。例如,Kubernetes Operator SDK 可以协助您开发自己的 Kubernetes Operator。它包含高级 API、用于创建框架和生成代码的工具,以及涵盖常见 Operator 用例的扩展。 

进一步了解 Kubernetes Operator 的运作原理和构建方式

红帽资源

大部分 SDK 都包含 API,用于通过命令行在源代码层面上连接新型移动应用或项目。通常也随附示例代码,让开发人员可借助示例程序和库来学习如何构建基本的程序。然后,他们可以更加轻松地继续优化和开发复杂的应用,并根据需要进行调试和添加新功能。

一些 SDK 包含阐述 API 用法的文档,以及教程、常见问题和示例图解,因为开发人员有时需要一些时间才能学会使用新的 SDK。因此,直观易用的编程或用户接口(或详尽的说明文档)有助于鼓励开发人员选用某一家公司的特定程序,而非竞争对手提供的方案。

同样,SDK 也是帮助提供商向开发人员介绍自己的产品的利器,并能鼓励他们利用其平台或 OS 来创建应用,而这可以在一个集成开发环境中实时进行。所以,大多数 SDK 是免费使用的,开发人员只需下载就能立即开始编程。 

一些 SDK 可能附有相关的规则或协议,必须同意并提交后才能使用,尤其是处于 Alpha 或 Beta 阶段的新产品,或者包含不对外公开(非开源)的算法的软件。SDK 也可能受许可协议约束,因此创建的软件有可能无法在不兼容的许可证下发布。

开发人员在挑选使用哪些 SDK 进行开发时应仔细考虑上述问题。例如:

  • 使用专有许可证的 SDK 不适合用于开发开源软件。
  • 具有通用公共许可证(GPL) 的 SDK 不能用于专有应用。
  • 利用较宽松公共许可证书(LGPL) 处理含有专有代码元素的项目时,应遵循相关的警告。 

开源应用不断成为业余和专业人士青睐的开发首选,因为它们的 SDK 能够用于编写新颖的设计和功能扩展,同时也便于与社区的其余成员共享。 

红帽汇聚了应用开发中出色的工具、解决方案和服务,而且采用开源方式。不论您是在寻找构建应用所需要的平台(红帽 OpenShift)或运行时环境(红帽运行时),还是开发、调试、测试和部署应用所需的各种工具,红帽都能满足您的一切需求。

 
中心

红帽官方博客

获取有关我们的客户、合作伙伴和社区生态系统的最新信息。

所有红帽产品试用

我们的免费试用可让您亲身体验红帽的产品功能,为获得认证做好准备,或评估某个产品是否适合您的企业。

扩展阅读

什么是应用迁移?

应用迁移是指通过将应用从一个环境迁移到另一个环境来改善工作负载的过程。

什么是无服务器?

无服务器是一种云原生开发模型,可使开发人员专注构建和运行应用,而无需管理服务器。

有状态应用 VS 无状态应用

有状态应用和无状态应用的区别在于,有状态应用会保存过去和现在的信息,而无状态应用不会保存。

应用开发和交付 相关资源