android - 通过 aws 服务更新 android 设备(或事物)应用程序代码

标签 android amazon-web-services iot aws-iot


我在我的 aws IoT 项目中有一个要求,我需要更新 aws IoT 连接设备的应用程序代码或其中的一部分,比方说,应用程序版本或应用程序计划更新等。
我应该如何实现这一目标?到目前为止,我发现云前端或代码部署很有用,但没有直接用于此类目的。还有其他服务可以帮助我实现 aws 中可用的所需解决方案吗?
谢谢。

最佳答案

所有设备固件升级

一个合理的模式是使用 Device Shadow在 AWS IoT 中以报告状态存储您设备的当前固件信息。

{
  "reported": {
    "firmware": {
      "version": "1.0.0",
      "name": "linux-3.8.0-armeabi"
    }
  }
}

当您想要在您的设备上触发固件升级时,您可以在所需状态中引用新版本和指向它的指针(例如指向 S3 存储桶)。

{
  "reported": {
    "firmware": {
      "version": "1.0.0",
      "name": "linux-3.8.0-armeabi"
    }
  },
  "desired": {
    "firmware": {
      "version": "1.1.0",
      "name": "linux-4.0.0-armeabi",
      "url": "https://s3-<region>.amazonaws.com/<bucket>/<file>"
    }
  }
}

当这个变化发生时,设备会收到一个delta事件,表明它的影子文档发生了变化,一旦他注意到有新的固件条目,就会开始下载新固件在所需状态中描述。

Note: One advantage of this method is that it will work even if the devices are offline, when they'll get back online, they will sync with the shadow.

选择性固件升级

有时,制造商希望控制固件在其设备群上的部署方式,例如,他们可能希望:

  • 为世界不同地区部署不同的固件。
  • 为硬件略有不同的设备部署不同的固件。
  • 为他们出售给不同制造商 (B2B2C) 的设备部署不同的固件。
  • 在不同地区逐步部署固件,而不是同时部署。

如果您想细化部署,要考虑到这些限制,可以使用上述方法结合使用 Things Attributes在设备注册表中,这样当您要更新所需状态时,您只需选择与预定义属性匹配的设备即可。

关于android - 通过 aws 服务更新 android 设备(或事物)应用程序代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44767178/

相关文章:

node.js - 在 NodeJS 中获取来自 AWS SQS 的所有消息

amazon-web-services - 在 CDK 中配置 lambda 并发

perl - AWS SES 证书验证失败

javascript - 为什么使用 MQTT Node.JS 库?

android - 以编程方式连接到没有互联网的wifi

amazon-web-services - AWS IoT Core 主题过滤器通配符

java - android自动完成在纵向模式下呈现为空白列表

android - 超过 5 帧的帧动画失败 - 240dpi

java - 将两个字符串从一个 Activity 传递到另一个 Activity

Android 复选框文本合并到复选框