跳到主要内容

SDK快速入门

更新时间:2025-04-25 19:03:58

在对接 RTCX-SDK 前,建议您先了解整个 SDK 目录结构以及 Demo 的源码,可以帮助您快速熟悉整个开发流程。

SDK 包目录结构

此处仅针对IoTSDK和StreamSDK包内容进行介绍,低功耗代理相关的SDK包介绍请参考低功耗SDK接入章节。

IoTSDK

您收到的 IoT-SDK 包目录结构如下,主要包含下面几个目录:

  1. demo

    1. SDK 接入的 demo 示例程序,指导用户完成 SDK 的快速对接
    2. demo 包含了 IoTSDK 的接入
  2. include

    1. IoTSDK 的头文件,定义了 API 接口以及数据类型
  3. lib

    1. 编译出来的 静态库 libxsIotSdk.a
  4. xsCommon

    1. 和StreamSdk共用的一些函数,主要是系统操作,网络操作相关函数的封装
    2. 如果linux芯片系统,SDK默认会将这些源文件一并打入 libxsIotSdk.a静态库中,用户接入的时候不需要单独再链接这些文件,除非有特殊需求需要适配,SDK会编译特殊版本,将Hal层相关文件导出
    3. 如果是其他小系统芯片(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 包目录结构如下:

  1. demo

    1. 提供了 SDK 接入的示例程序(demo),旨在指导用户快速完成 StreamSDK 的集成与对接
    2. 示例代码涵盖了从初始化到功能调用的完整流程,帮助开发者快速上手
    3. 注意:demo 包含了 IoTSDK 以及 StreamSDK 的接入,因此有部分代码是IoTSDK demo的代码是重复的
  2. include

    1. StreamSdk的头文件,定义了 API 接口以及数据类型
  3. lib

    1. 编译出来的静态库 libxsStreamSdk.a
  4. depends

    1. 存放 SDK 所依赖的第三方开源库
    2. 应用层在编译和链接时,需要将这些依赖库和SDK静态库一并链接到最终的二进制程序中。
    3. 确保这些依赖库的路径被正确配置,以避免运行时出现动态库加载失败等问题

StreamSDK 的 demo 中主要演示了创建设备,以及创建视频流的流程,并且可以根据不同的指令执行相应的动作。demo 同时包含了对 IoTSDK 和 StreamSDK 的调用

demo 主流程说明:

  1. demo 中同时包含了 IoTSDK 和 StreamSDK 的接口,以及 ProxySDK 的接口
  2. demo 中单独启动一个独立线程,从本地逐帧读取视频文件(私有格式录制的),模拟 IPC 音视频采集编码的过程,将音视频数据注入 SDK
  3. demo 中实现了属性上报、报警上报、图片抓包等基本功能的流程
  4. demo 中的 lowPwr 目录下实现了低功耗设备相关的调用流程,详细流程解释见低功耗 SDK 章节描述
  5. 如果 IoTSDK 和 StreamSDK 是分离模式(运行在不同芯片),需要把 ENABLE_IOT_SDK 宏关闭即可

SDK接口调用流程

下面流程图展示了IoTSDK和StreamSDK接口的启动流程

图片无法显示