通过aws服务更新android设备(或东西)应用程序代码

时间:2017-06-26 19:20:57

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


我的物联网项目中有一个要求,我需要更新物联网连接设备的应用程序代码或部分应用程序代码,比如应用程序版本或应用程序日程更新等。 我该怎么做到这一点?到目前为止,我发现云前端或代码部署很有用但不直接用于此类目的。任何其他服务都可以帮助我实现aws中所需的解决方案?
感谢。

2 个答案:

答案 0 :(得分:1)

如果您使用的是Android设备,那么您可以使用AsyncTask从S3存储桶中获取最新信息并调用post下载方法来安装apk参考答案@链接

https://stackoverflow.com/a/15213350/7328096

答案 1 :(得分:1)

所有设备上的固件升级

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

{
  "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 事件,指示其影子文档发生更改,并且一旦他注意到新的固件条目,就会开始下载新固件在期望的状态中描述。

  

注意:此方法的一个优点是即使设备处于离线状态也能正常工作,当它们重新联机时,它们会与阴影同步。

选择性固件升级

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

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

如果要对部署进行细化,可以考虑这些约束,您可以使用上述方法与设备注册表中Things Attributes的使用相结合,以便在您要更新所需内容时状态,您只需选择与预定义属性匹配的设备即可。