

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS IoT 设备 SDK、移动 SDK 和 AWS IoT Device Client
<a name="iot-sdks"></a>

本页总结了 AWS IoT 设备软件开发工具包、开源库、开发人员指南、示例应用程序和移植指南，以帮助您使用 AWS IoT 和选择的硬件平台构建创新的物联网解决方案。

这些 SDK 供您在物联网设备上使用。如果您正在开发用于移动设备的物联网应用，请参阅 [AWS 移动 SDK](#iot-mobile-sdks)。如果您正在开发物联网应用程序或服务器端程序，请参阅 [AWS 软件开发工具包](iot-connect-service.md#iot-service-sdks)。

## AWS IoT 设备 SDK
<a name="iot-device-sdks"></a>

 AWS IoT 设备软件开发工具包包括开源库、带有示例的开发人员指南和移植指南，因此您可以在自己选择的硬件平台上构建创新的物联网产品或解决方案。

**注意**  
 AWS IoT 设备软件开发工具包已经发布了 MQTT 5 客户端。 AWS IoT 设备 SDK 不支持在 macOS 上使用 TLS 1.3。

这些 SDK 可帮助您使用 MQTT 和 WSS 协议将 IoT 设备连接到 AWS IoT 。

------
#### [ C\+\+ ]

**AWS IoT C\+\+ 设备 SDK **

 AWS IoT C\+\+ 设备 SDK 允许开发人员使用 AWS 和 AWS IoT API 构建互联应用程序。特别是，此 SDK 面向没有资源限制且需要高级特征（例如，消息队列、多线程支持和最新的语言特征）的设备而设计。有关更多信息，请参阅下列内容：
+ [AWS IoT 开启设备 SDK C\+\+ v2 GitHub ](https://github.com/aws/aws-iot-device-sdk-cpp-v2)
+ [AWS IoT 设备 SDK C\+\+ v2 自述文件 ](https://github.com/aws/aws-iot-device-sdk-cpp-v2#aws-iot-device-sdk-for-c-v2)
+ [AWS IoT 设备 SDK C\+\+ v2 示例 ](https://github.com/aws/aws-iot-device-sdk-cpp-v2/tree/main/samples#sample-apps-for-the-aws-iot-device-sdk-for-c-v2)
+ [AWS IoT 设备 SDK C\+\+ v2 API 文档 ](https://aws.github.io/aws-iot-device-sdk-cpp-v2/)

------
#### [ Python ]

**AWS IoT Python 设备软件开发工具包 **

适用于 Python 的 AWS IoT 设备软件开发工具包使开发人员能够编写 Python 脚本，使用他们的设备通过协议通过 MQTT 或 MQTT 访问 AWS IoT 平台。 WebSocket 通过将设备连接到 AWS IoT，用户可以安全地使用消息代理、规则和影子以及其他 AWS 服务（如 AWS Lambda Kinesis AWS IoT 和 Amazon S3 等）提供的规则和影子。
+ [AWS IoT 开启适用于 Python 的设备 SDK GitHub ](https://github.com/aws/aws-iot-device-sdk-python-v2)
+ [AWS IoT 适用于 Python 的设备 SDK v2 自述 ](https://github.com/aws/aws-iot-device-sdk-python-v2#aws-iot-device-sdk-v2-for-python)
+ [AWS IoT Python 设备软件开发工具包 v2 示例 ](https://github.com/aws/aws-iot-device-sdk-python-v2/tree/main/samples#sample-apps-for-the-aws-iot-device-sdk-v2-for-python)
+ [AWS IoT 适用于 Python 的设备 SDK v2 API 文档 ](https://aws.github.io/aws-iot-device-sdk-python-v2/)

------
#### [ JavaScript ]

**AWS IoT 的设备 SDK JavaScript **

aws-iot-device-sdk.js 包使开发人员可以编写 AWS IoT 通过协议使用 MQTT 或 MQTT 进行访问的 JavaScript WebSocket 应用程序。它可以在 Node.js 环境和浏览器应用程序中使用。有关更多信息，请参阅下列内容：
+ [AWS IoT 开启适用于 JavaScript v2 的设备 SDK GitHub ](https://github.com/aws/aws-iot-device-sdk-js-v2)
+ [AWS IoT 适用于 JavaScript v2 的设备 SDK 自述文件 ](https://github.com/aws/aws-iot-device-sdk-js-v2#aws-iot-device-sdk-for-javascript-v2)
+ [AWS IoT 适用于 JavaScript v2 的设备 SDK 示例 ](https://github.com/aws/aws-iot-device-sdk-js-v2/tree/main/samples#sample-apps-for-the-aws-iot-device-sdk-for-javascript-v2)
+ [AWS IoT 适用于 JavaScript v2 的设备 SDK API 文档 ](https://aws.github.io/aws-iot-device-sdk-js-v2/index.html)

------
#### [ Java ]

**AWS IoT Java 设备软件开发工具包 **

适用于 Java 的 AWS IoT 设备软件开发工具包使 Java 开发人员可以通过协议通过 MQTT 或 MQTT 访问 AWS IoT 平台。 WebSocket 该 SDK 内置有影子支持。您可以使用 HTTP 方法 (包括 GET、UPDATE 和 DELETE) 访问影子。该 SDK 还支持简化的影子访问模型，开发人员只需要使用 getter 和 setter 方法即可与影子交换数据，而不必对任何 JSON 文档进行序列化或反序列化。

**注意**  
适用于 Java v2 的 AWS IoT 设备 SDK 现在支持 Android 开发。有关详细信息，请参阅 [AWS IoT Device SDK for Android](https://github.com/aws/aws-iot-device-sdk-java-v2/blob/main/documents/ANDROID.md)。

有关更多信息，请参阅下列内容：
+ [AWS IoT 启用适用于 Java v2 的设备 SDK GitHub ](https://github.com/aws/aws-iot-device-sdk-java-v2)
+ [AWS IoT 适用于 Java 的设备 SDK v2 自述文件 ](https://github.com/aws/aws-iot-device-sdk-java-v2#aws-iot-device-sdk-for-java-v2)
+ [AWS IoT 适用于 Java 的 SDK v2 示例 ](https://github.com/aws/aws-iot-device-sdk-java-v2/tree/main/samples#sample-apps-for-the-aws-iot-device-sdk-for-java-v2)
+ [AWS IoT 适用于 Java 的设备 SDK v2 API 文档 ](https://aws.github.io/aws-iot-device-sdk-java-v2/)

------
#### [ Swift ]

**AWS IoT Swift 设备软件开发工具包 **

Swift AWS IoT 设备软件开发工具包使 Swift 开发人员能够使用 MQTT 5 协议为 Linux 和苹果 macOS、iOS 和 tvOS 平台创建 AWS IoT 应用程序。

有关更多信息，请参阅下列内容：
+ [AWS IoT 开启了适用于 Swift 的设备 GitHub ](https://github.com/aws/aws-iot-device-sdk-swift)
+ [AWS IoT 适用于 Swift 自述文件的设备 SDK ](https://github.com/aws/aws-iot-device-sdk-swift/blob/main/README.md)
+ [AWS IoT 适用于 Swift 的设备 SDK ](https://github.com/aws/aws-iot-device-sdk-swift/tree/main/Samples)

------

### AWS IoT Device SDK for Embedded C
<a name="iot-constrained-device-sdk"></a>

**注意**  
该 SDK 供经验丰富的嵌入式软件开发人员使用。

 AWS IoT Device SDK for Embedded C (C-SDK) 是麻省理工学院开源许可证下的 C 源文件集合，可用于嵌入式应用程序，以安全地将物联网设备连接到 AWS IoT Core。它包括 MQTT 客户端、JSON 解析器、 AWS IoT 设备影子、 AWS IoT 作业、 AWS IoT 队列配置和 AWS IoT Device Defender 库。该开发工具包以源码形式分发，可构建到客户固件和应用程序代码、其他库以及您选择的操作系统（OS）中。

 AWS IoT Device SDK for Embedded C 通常针对需要优化 C 语言运行时的资源受限设备。您可以在任何操作系统上使用此 SDK，并将其托管在任何类型的处理器（例如 MCU 和 MPU）上。

有关更多信息，请参阅下列内容：
+ [AWS IoT 开启嵌入式 C 的设备 SDK GitHub ](https://github.com/aws/aws-iot-device-sdk-embedded-C)
+ [AWS IoT 嵌入式 C 自述文件的设备 SDK ](https://github.com/aws/aws-iot-device-sdk-embedded-C#aws-iot-device-sdk-for-embedded-c)
+ [AWS IoT 嵌入式 C 示例的设备 SDK ](https://docs.aws.amazon.com/embedded-csdk/latest/lib-ref/docs/doxygen/output/html/demos_main.html)

## AWS 移动 SDK
<a name="iot-mobile-sdks"></a>

 AWS 移动 SDK 为移动应用程序开发人员提供服务的 API、使用 MQTT 进行物联网设备通信以及其他 AWS IoT Core 服务的 API 的特定平台支持。 AWS 

------
#### [ Android ]

**适用于 Android 的 AWS Mobile SDK**

 适用于 Android 的 AWS Mobile SDK 包含库、示例和文档，供开发人员使用构建联网移动应用程序 AWS。该软件开发工具包还包括对 MQTT 设备通信和调用 AWS IoT Core 服务 API 的支持。有关更多信息，请参阅下列内容：
+ [适用于 Android 的 AWS Mobile SDK 上 GitHub ](https://github.com/aws/aws-sdk-android)
+ [适用于 Android 的 AWS Mobile SDK Readme (自述文件)](https://github.com/aws-amplify/aws-sdk-android/blob/main/README.md#aws-sdk-for-android)
+ [适用于 Android 的 AWS Mobile SDK 示例](https://github.com/awslabs/aws-sdk-android-samples#aws-sdk-for-android-samples)
+ [适用于 Android 的 AWS Mobile SDK API 参考](https://aws-amplify.github.io/aws-sdk-android/docs/reference/)
+ [AWSIoTClient 类参考文档 ](https://aws-amplify.github.io/aws-sdk-android/docs/reference/com/amazonaws/services/iot/AWSIotClient.html)

------
#### [ iOS ]

**AWS Mobile SDK for iOS**

 AWS Mobile SDK for iOS 是一个开源软件开发套件，根据 Apache 开源许可证分发。 AWS Mobile SDK for iOS 提供了库、代码示例和文档，以帮助开发人员使用构建联网移动应用程序 AWS。此 SDK 还包括对 MQTT 设备通信和调用 AWS IoT Core 服务 API 的支持。有关更多信息，请参阅下列内容：
+ [AWS Mobile SDK for iOS 上 GitHub ](https://github.com/aws/aws-sdk-ios)
+ [AWS Mobile SDK for iOS Readme (自述文件)](https://github.com/aws-amplify/aws-sdk-ios/blob/main/README.md#aws-sdk-for-ios)
+ [AWS Mobile SDK for iOS 示例](https://github.com/awslabs/aws-sdk-ios-samples#the-aws-sdk-for-ios-samples)
+ [中的 AWSIoT 类参考文档 AWS Mobile SDK for iOS](https://aws-amplify.github.io/aws-sdk-ios/docs/reference/AWSIoT/index.html)

------

## AWS IoT Device Client
<a name="iot-sdk-device-client"></a>

 AWS IoT 设备客户端提供的代码可帮助您的设备连接 AWS IoT、执行队列配置任务、支持设备安全策略、使用安全隧道进行连接以及在设备上处理作业。您可以在设备上安装此软件来处理这些常规设备任务，以便专注于特定的解决方案。

**注意**  
 AWS IoT 设备客户端适用于带有 x86\_64 或 ARM 处理器和常见 Linux 操作系统的基于微处理器的物联网设备。

------
#### [ C\+\+ ]

**AWS IoT 设备客户端 **

有关 C\+\+ 中的 AWS IoT 设备客户端的更多信息，请参阅以下内容：
+ [AWS IoT C\+\+ 源代码中的设备客户端 GitHub ](https://github.com/awslabs/aws-iot-device-client)
+ [AWS IoT C\+\+ 自述文件中的设备客户端 ](https://github.com/awslabs/aws-iot-device-client#aws-iot-device-client)

------

## 早些时候 AWS IoT 设备 SDK 版本
<a name="earlier-sdks"></a>

这些是 AWS IoT 设备软件开发工具包的早期版本，已被上面列出的较新版本所取代。这些 SDK 仅接收维护和安全更新。它们不会更新以获取新特征，也不应用于新项目。
+ [AWS IoT 开启 C\+\+ 设备 SDK GitHub ](https://github.com/aws/aws-iot-device-sdk-cpp/tree/master)
+ [AWS IoT C\+\+ 设备 SDK 自述文件 ](https://github.com/aws/aws-iot-device-sdk-cpp/tree/master#new-version-available)
+ [AWS IoT 开启适用于 Python 的设备 SDK v1 GitHub ](https://github.com/aws/aws-iot-device-sdk-python)
+ [AWS IoT 适用于 Python 的设备 SDK v1 自述文件 ](https://github.com/aws/aws-iot-device-sdk-python#new-version-available)
+ [AWS IoT 启用适用于 Java 的设备 SDK GitHub ](https://github.com/aws/aws-iot-device-sdk-java)
+ [AWS IoT 适用于 Java 的设备 SDK 自述文件 ](https://github.com/aws/aws-iot-device-sdk-java#new-version-available)
+ [AWS IoT 开启的设备 S JavaScript DK GitHub ](https://github.com/aws/aws-iot-device-sdk-js)
+ [AWS IoT JavaScript 自述文件设备软件开发工具包 ](https://github.com/aws/aws-iot-device-sdk-js#new-version-available)