什么是SDK?

SDK(Software Development Kit,软件开发工具包)本质上是一套帮助开发者快速开发某个软件、平台或设备应用的工具集合

可以把 SDK 理解成一个已经封装好的"工具箱",开发者不用自己从零开始造轮子,只需要调用 SDK 提供的接口即可。

一、SDK 里面通常有什么?

一个完整的 SDK 一般包含下面这些内容:

组成 作用
API(接口) 给开发者调用的函数或类
库文件(.lib、.a、.dll、.so) 已经编译好的功能实现
头文件(.h、.hpp) 声明接口,供程序编译
文档 告诉开发者如何使用
Demo 示例 演示 SDK 的使用方法
配置文件 参数配置
工具程序 调试、测试、生成代码等工具

例如一个机器人 SDK:

RobotSDK/

├── include/

│ Robot.h

│ Navigation.h

│ Battery.h

│ Voice.h

├── lib/

libRobotSDK.so

├── examples/

│ demo.cpp

├── docs/

API.md

└── config/

robot.json

二、SDK 的作用

把复杂的底层实现封装起来,让别人通过简单的接口就能完成开发。

例如控制机器人移动。

没有 SDK:

APP

TCP Socket

JSON协议

发送数据

机器人解析

驱动电机

开发者需要:

建立 TCP

设计协议

拼 JSON

发包

收包

超时处理

重连

状态同步

工作量非常大。

有 SDK 后:

cpp 复制代码
Robot robot;

robot.connect();

robot.moveForward(0.5);

SDK 内部已经完成了:

moveForward()

生成JSON

TCP发送

等待ACK

错误处理

日志

返回结果

开发者根本不用关心底层。

三、SDK 和 API 的区别

很多人容易混淆这两个概念。

API 是接口

例如:

cpp 复制代码
robot.connect();

robot.move();

robot.stop();

这些函数就是 API。

API 是"怎么调用"

SDK 是整个工具包

SDK 包含:

API

动态库

文档

Demo

工具

可以理解成:

SDK

├── API

├── 库

├── 文档

├── 示例

└── 工具

所以:

API 是 SDK 的一部分。

**四、**为什么公司要开发 SDK?

假设一家机器人公司生产机器人。

如果没有 SDK:

每个客户都要:

研究通信协议

自己写TCP

自己写JSON

自己解析状态

自己做重连

不同客户都会重复做同样的事情。

如果公司提供 SDK:

客户直接:

cpp 复制代码
Robot robot;

robot.connect();

robot.gotoPoint(...);

几分钟就能开始开发。

因此 SDK 能:

降低开发门槛

缩短开发周期

隐藏底层实现

保持接口统一

减少使用错误

提高兼容性

五、SDK 的内部一般是怎样实现的?

以机器人 SDK 为例,可以分为几层:

用户程序

Robot(公开接口)

┌──────────┴──────────┐

▼ ▼

Navigation Motion

Voice Battery

CommandService

Protocol(JSON)

TcpClient

Robot

各层职责如下:

Robot:对外统一入口。

Navigation / Motion / Voice:按功能划分模块,提供易用的 API。

CommandService:将业务请求转换成具体命令。

Protocol:负责协议封装与解析(如 JSON、Protobuf)。

TcpClient:负责网络通信、重连、收发数据。

Robot:机器人端接收命令并执行。

用户只需要调用最上层接口,而不用了解下面几层的实现细节。

相关推荐
艾莉丝努力练剑2 天前
【AI大模型接入SDK】项目的数据结构设计
数据结构·人工智能·大模型·sdk·文件系统·岗位
艾莉丝努力练剑4 天前
【AI接入大模型SDK】ChatSDK示例验证
人工智能·学习·面试·大模型·sdk
美狐美颜SDK开放平台11 天前
第三方美颜SDK接入教程:直播APP实现实时美颜、滤镜与美型效果的方法
人工智能·深度学习·音视频·sdk·美颜sdk·视频美颜sdk·直播app开发
AmyLin_200114 天前
PDF 脱敏技术【1】:PDF 脱敏不是盖黑框:为什么敏感信息仍能被复制,正确的保护方式是什么?
安全·pdf·sdk·脱敏·文档安全·pdf 脱敏·智能脱敏
AmyLin_200116 天前
PDF 色彩保真工程实践【6】怎么证明“真的无损“?——SHA-256 校验与三个真实踩坑
c++·pdf·内存·sdk·调试·印刷
AmyLin_200119 天前
PDF 色彩保真工程实践【5】核心实现(下):拼装 Image XObject、页面资源与内容流
c++·pdf·sdk·颜色空间·印刷·icc·cmyk
5G微创业1 个月前
Python / Node.js 调用短视频去水印 API 完整示例(含 SDK)
python·node.js·音视频·api·sdk·短视频
Dlrb12111 个月前
ARM--IMX6ULL的SDK学习,BSP开发工程管理,以及链接脚本与Makefile的编写
单片机·嵌入式硬件·arm·sdk·链接脚本·i.mx6ull·cortex-a7
wWYy.1 个月前
外观模式(Facade Pattern)
sdk·外观模式