SDK快速入门
更新时间:2025-04-25 19:03:58
在对接 RTCX-SDK 前,建议您先了解整个 SDK 目录结构以及 Demo 的源码,可以帮助您快速熟悉整个开发流程。
SDK 包目录结构
此处仅针对IoTSDK和StreamSDK包内容进行介绍,低功耗代理相关的SDK包介绍请参考低功耗SDK接入章节。
IoTSDK
您收到的 IoT-SDK 包目录结构如下,主要包含下面几个目录:
-
demo
- SDK 接入的 demo 示例程序,指导用户完成 SDK 的快速对接
- demo 包含了 IoTSDK 的接入
-
include
- IoTSDK 的头文件,定义了 API 接口以及数据类型
-
lib
- 编译出来的 静态库 libxsIotSdk.a
-
xsCommon
- 和StreamSdk共用的一些函数,主要是系统操作,网络操作相关函数的封装
- 如果linux芯片系统,SDK默认会将这些源文件一并打入 libxsIotSdk.a静态库中,用户接入的时候不需要单独再链接这些文件,除非有特殊需求需要适配,SDK会编译特殊版本,将Hal层相关文件导出
- 如果是其他小系统芯片(freertos、liteos等),SDK不会将这些源文件打入静态库中,应用层集成的时候需要将这些 HAL 文件也链接进去,集成的时候根据设备自己的系统进行相应的修改
out/
├── demo
│ ├── iot_demo.c
│ ├── iot_demo_cb.c
│ ├── iot_demo_cb.h
│ ├── iot_demo_utils.c
│ ├── iot_demo_utils.h
│ ├── Makefile
│ ├── udp_channel.c
│ └── udp_channel.h
├── include
│ ├── xs_base_type.h
│ ├── xs_iot_api.h
│ ├── xs_iot_datatypes.h
│ └── xs_iot_error.h
├── lib
│ └── libxsIotSdk.a
└── xsCommon
├── hal
│ ├── xs_hal_def.h
│ ├── xs_hal_file.h
│ ├── xs_hal_file_linux.c
│ ├── xs_hal_sys.h
│ └── xs_hal_sys_linux.c
└── xs_base_type.h
StreamSDK
您收到的 StreamSDK 包目录结构如下:
-
demo
- 提供了 SDK 接入的示例程序(demo),旨在指导用户快速完成 StreamSDK 的集成与对接
- 示例代码涵盖了从初始化到功能调用的完整流程,帮助开发者快速上手
- 注意:demo 包含了 IoTSDK 以及 StreamSDK 的接入,因此有部分代码是IoTSDK demo的代码是重复的
-
include
- StreamSdk的头文件,定义了 API 接口以及数据类型
-
lib
- 编译出来的静态库 libxsStreamSdk.a
-
depends
- 存放 SDK 所依赖的第三方开源库
- 应用层在编译和链接时,需要将这些依赖库和SDK静态库一并链接到最终的二进制程序中。
- 确保这些依赖库的路径被正确配置,以避免运行时出现动态库加载失败等问题
StreamSDK 的 demo 中主要演示了创建设备,以及创建视频流的流程,并且可以根据不同的指令执行相应的动作。demo 同时包含了对 IoTSDK 和 StreamSDK 的调用
demo 主流程说明:
- demo 中同时包含了 IoTSDK 和 StreamSDK 的接口,以及 ProxySDK 的接口
- demo 中单独启动一个独立线程,从本地逐帧读取视频文件(私有格式录制的),模拟 IPC 音视频采集编码的过程,将音视频数据注入 SDK
- demo 中实现了属性上报、报警上报、图片抓包等基本功能的流程
- demo 中的 lowPwr 目录下实现了低功耗设备相关的调用流程,详细流程解释见低功耗 SDK 章节描述
- 如果 IoTSDK 和 StreamSDK 是分离模式(运行在不同芯片),需要把 ENABLE_IOT_SDK 宏关闭即可
SDK接口调用流程
下面流程图展示了IoTSDK和StreamSDK接口的启动流程