如何在没有人工交互的情况下强制执行远程更新或远程热插拔代码?
How can I force remote updates or remote hotswap code without human interaction?
我目前正在开发一个应用程序,它可以拍摄延时拍摄的图像并将它们自动保存到 Google Drive,这部分工作正常。然而,这些电话可能部署在物理访问可能受到限制的地方,所以我们可以远程做的任何事情都应该远程完成。
此应用仅供内部使用,不会看到 public 用户,因此可以接受 root 和 hacky 解决方案。
目前,它作为测试版应用程序通过 Play 商店进行部署。
那么如何远程更新应用程序呢?
我目前最好的方法是发送一个强制升级推送通知,告诉应用程序 playstore 有更新。关闭应用程序,等待 Playstore 自动更新,然后使用 PACKAGE_REPLACED 广播接收器再次启动应用程序。
但有了这个,我就只能听任 Play 商店的摆布了,我不知道它是否会在几分钟、几小时甚至几天内自动更新。虽然我不希望更新很重要并且可以等待,但它们最终应该会发生并且停机时间最短。
我知道 A/B 像 mixpanel 这样的测试框架可以热交换一些代码,至少是字符串资源之类的,但我想知道是否有一种方法可以让我自己热交换代码,甚至可以热交换整个片段.应用需要重启也没关系。
那么最好的方法是什么?也请随意提出其他方法。
当我和一些同事争论如何解决这个问题时,公司CEO很快想出了最好的解决方案。他只是提醒我们,可以通过 PC 上的游戏商店在 phone 上远程安装应用程序和更新。
如果应用 运行 关闭应用,但使用 PACKAGE_REPLACED 广播接收器,应用可以再次自行启动。
虽然有一些人际互动,但不需要与 phone 本身进行互动。
唯一的问题是,为大量 phone 执行此操作很乏味,但如果我们发现有必要这样做,我相信我们也可以以某种方式实现自动化。
我目前正在开发一个应用程序,它可以拍摄延时拍摄的图像并将它们自动保存到 Google Drive,这部分工作正常。然而,这些电话可能部署在物理访问可能受到限制的地方,所以我们可以远程做的任何事情都应该远程完成。
此应用仅供内部使用,不会看到 public 用户,因此可以接受 root 和 hacky 解决方案。 目前,它作为测试版应用程序通过 Play 商店进行部署。
那么如何远程更新应用程序呢?
我目前最好的方法是发送一个强制升级推送通知,告诉应用程序 playstore 有更新。关闭应用程序,等待 Playstore 自动更新,然后使用 PACKAGE_REPLACED 广播接收器再次启动应用程序。
但有了这个,我就只能听任 Play 商店的摆布了,我不知道它是否会在几分钟、几小时甚至几天内自动更新。虽然我不希望更新很重要并且可以等待,但它们最终应该会发生并且停机时间最短。
我知道 A/B 像 mixpanel 这样的测试框架可以热交换一些代码,至少是字符串资源之类的,但我想知道是否有一种方法可以让我自己热交换代码,甚至可以热交换整个片段.应用需要重启也没关系。
那么最好的方法是什么?也请随意提出其他方法。
当我和一些同事争论如何解决这个问题时,公司CEO很快想出了最好的解决方案。他只是提醒我们,可以通过 PC 上的游戏商店在 phone 上远程安装应用程序和更新。
如果应用 运行 关闭应用,但使用 PACKAGE_REPLACED 广播接收器,应用可以再次自行启动。
虽然有一些人际互动,但不需要与 phone 本身进行互动。
唯一的问题是,为大量 phone 执行此操作很乏味,但如果我们发现有必要这样做,我相信我们也可以以某种方式实现自动化。