什么是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:机器人端接收命令并执行。

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

相关推荐
5G微创业2 小时前
去水印API如何实现技术变现
python·sdk·短视频
weixin_461769405 天前
机械臂SDK运行日志
conda·sdk
艾莉丝努力练剑5 天前
【AI大模型接入SDK】ChatSDK 集成测试概述
jvm·c++·人工智能·学习·面试·集成测试·sdk
艾莉丝努力练剑5 天前
【AI大模型接入SDK】ChatSDK:CMake构建静态库完整实现
java·开发语言·网络·c++·人工智能·学习·sdk
less_121387 天前
HarmonyOS WPS Open SDK 二开实践:统一接口如何收敛多套打开链路
sdk·harmonyos·wps·鸿蒙开发
ShineWinsu16 天前
对于Coze—AI:SDK的解析
人工智能·python·ai·sdk·项目·coze·字节跳动
SoStraw19 天前
从零接入 webrpc:按这份最小清单跑通双端,再写业务
sdk·p2p·入门·token·webrpc·opensession·senddata
less_121381 个月前
HarmonyOS WPS Open SDK:enableEdit 只读与可编辑打开模式
华为·sdk·harmonyos·wps·鸿蒙开发·文档编辑
less_121381 个月前
HarmonyOS WPS Open SDK:OpenFileRequest 构造参数与 sendRequest 打开链路
华为·sdk·harmonyos·wps·鸿蒙开发·文档编辑
羑悻的小杀马特1 个月前
百度ASR+BRPC+ETCD高并发高可用架构搭建,C++客户端API封装+语音识别子服务注册发现+全链路测试调优终极指南!
架构·sdk·etcd·cmake·百度智能云·brpc·语音识别子服务