

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

# AWS IoT Device SDK、Mobile SDK 和 AWS IoT Device Client
<a name="iot-sdks"></a>

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

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

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

AWS IoT 设备 SDK 包括开源库、开发人员指南（含示例）和移植指南，便于您在自己选择的硬件平台上构建富有创新精神的物联网产品或解决方案。

**注意**  
AWS IoT Device SDK 已发布了 MQTT 5 客户端。AWS IoT Device SDK 不支持在 macOS 上使用 TLS 1.3。

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

------
#### [ C\$1\$1 ]

**AWS IoT C\$1\$1 设备 SDK**

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

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

**适用于 Python 的 AWS IoT 设备 SDK**

借助 AWS IoT Device SDK for Python，开发人员可以编写 Python 脚本，以使用其设备通过 MQTT 或基于 WebSocket 的 MQTT 协议来访问 AWS IoT 平台。通过将设备连接到 AWS IoT，用户可以安全地使用由 AWS IoT 提供的消息代理、规则和影子，以及 AWS Lambda、Kinesis 和 Amazon S3 等其它 AWS 服务。
+ [GitHub 上适用于 Python v2 的 AWS IoT 设备 SDK](https://github.com/aws/aws-iot-device-sdk-python-v2)
+ [适用于 Python v2 的 AWS IoT 设备 SDK 自述文件](https://github.com/aws/aws-iot-device-sdk-python-v2#aws-iot-device-sdk-v2-for-python)
+ [适用于 Python v2 的 AWS IoT 设备 SDK 示例](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 v2 设备 SDK API 文档](https://aws.github.io/aws-iot-device-sdk-python-v2/)

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

**适用于 JavaScript 的 AWS IoT 设备 SDK**

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

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

**适用于 Java 的 AWS IoT 设备 SDK**

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

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

有关更多信息，请参阅下列内容：
+ [GitHub 上适用于 Java v2 的 AWS IoT 设备 SDK](https://github.com/aws/aws-iot-device-sdk-java-v2)
+ [适用于 Java 的 AWS IoT 设备 SDK v2 自述文件](https://github.com/aws/aws-iot-device-sdk-java-v2#aws-iot-device-sdk-for-java-v2)
+ [适用于 Java 的 AWS IoT 设备 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 v2 设备 SDK API 文档](https://aws.github.io/aws-iot-device-sdk-java-v2/)

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

**适用于 Swift 的 AWS IoT 设备 SDK**

适用于 Swift 的 AWS IoT 设备 SDK 使 Swift 开发人员能够使用 MQTT 5 协议为 Linux 和 Apple macOS、iOS 和 tvOS 平台创建 AWS IoT 应用程序。

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

------

### AWS IoT适用于嵌入式 C 的 设备 SDK
<a name="iot-constrained-device-sdk"></a>

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

AWS IoT Device SDK for Embedded C（C-SDK）是 MIT 开源许可证下多个 C 源文件的集合，可在嵌入式应用程序中使用，以安全地将物联网设备连接到 AWS IoT Core。其中包括 MQTT 客户端、JSON Parser、AWS IoT Device Shadow、AWS IoT Jobs、AWS IoT Fleet Provisioning 和 AWS IoT Device Defender 库。该开发工具包以源码形式分发，可构建到客户固件和应用程序代码、其他库以及您选择的操作系统（OS）中。

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

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

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

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

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

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

适用于 Android 的 AWS Mobile SDK 包含为开发人员提供的库、示例和文档，以便于他们使用 AWS 构建联网的移动应用程序。此 SDK 还包括对 MQTT 设备通信和调用 AWS IoT Core 服务 API 的支持。有关更多信息，请参阅下列内容：
+ [GitHub 上的 适用于 Android 的 AWS Mobile SDK](https://github.com/aws/aws-sdk-android)
+ [适用于 Android 的 AWS Mobile SDK 自述文件](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 的支持。有关更多信息，请参阅下列内容：
+ [GitHub 上的 AWS Mobile SDK for iOS](https://github.com/aws/aws-sdk-ios)
+ [AWS Mobile SDK for iOS 自述文件](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 设备客户端
<a name="iot-sdk-device-client"></a>

AWS IoT Device Client 提供代码以帮助您的设备连接到 AWS IoT、执行实例集预调配任务、支持设备安全策略、使用安全隧道进行连接以及处理设备上的任务。您可以在设备上安装此软件来处理这些常规设备任务，以便专注于特定的解决方案。

**注意**  
AWS IoT Device Client 与基于微处理器且搭载 x86\$164 或 ARM 处理器和常见 Linux 操作系统的物联网设备配合使用。

------
#### [ C\$1\$1 ]

**AWS IoT 设备客户端**

有关以 C\$1\$1 编写的 AWS IoT Device Client 的更多信息，请参阅以下内容：
+ [GitHub 上以 C\$1\$1 源码编写的 AWS IoT Device Client](https://github.com/awslabs/aws-iot-device-client)
+ [AWS IoT 以 C\$1\$1 编写的 Device Client 自述文件](https://github.com/awslabs/aws-iot-device-client#aws-iot-device-client)

------

## 早期 AWS IoT Device SDK 版本
<a name="earlier-sdks"></a>

这些早期版本的 AWS IoT Device SDK 已被上面列出的较新版本替换。这些 SDK 仅接收维护和安全更新。它们不会更新以获取新特征，也不应用于新项目。
+ [GitHub 上的 AWS IoT C\$1\$1 设备开发工具包](https://github.com/aws/aws-iot-device-sdk-cpp/tree/release)
+ [AWS IoT C\$1\$1 设备软件开发工具包自述文件](https://github.com/aws/aws-iot-device-sdk-python/blob/master/README.rst#new-version-available)
+ [GitHub 上适用于 Python v1 的 AWS IoT 设备开发工具包](https://github.com/aws/aws-iot-device-sdk-python)
+ [适用于 Python v1 的 AWS IoT 设备开发工具包自述文件](https://github.com/aws/aws-iot-device-sdk-python#new-version-available)
+ [GitHub 上适用于 Java 的 AWS IoT 设备软件开发工具包](https://github.com/aws/aws-iot-device-sdk-java)
+ [适用于 Java 的 AWS IoT 设备软件开发工具包自述文件](https://github.com/aws/aws-iot-device-sdk-java#new-version-available)
+ [GitHub 上适用于 JavaScript 的 AWS IoT 设备软件开发工具包](https://github.com/aws/aws-iot-device-sdk-js)
+ [适用于 JavaScript 的 AWS IoT 设备软件开发工具包自述文件](https://github.com/aws/aws-iot-device-sdk-js#new-version-available)
+ [GitHub 上的 Arduino Yún SDK](https://github.com/aws/aws-iot-device-sdk-arduino-yun)
+ [Arduino Yún SDK 自述文件](https://github.com/aws/aws-iot-device-sdk-arduino-yun#aws-iot-arduino-y%C3%BAn-sdk)