如何在没有人工交互的情况下强制执行远程更新或远程热插拔代码



我目前正在开发一款应用程序,该应用程序可以处理延时图像并自动将其保存到Google Drive,该部分运行良好。然而,这些手机可能会部署在物理访问可能受到限制的地方,所以我们可以远程做的任何事情都应该远程完成。

该应用程序仅用于内部目的,不会看到公共用户,因此可以接受扎根和黑客解决方案。目前,它是通过游戏商店作为测试版应用程序部署的。

那么,我如何远程更新应用程序?

我目前最好的方法是发送一个强制升级推送通知,告诉应用程序playstore有更新。关闭应用程序,等待播放商店自动更新,然后使用PACKAGE_RELACED广播接收器重新启动应用程序。

但有了这个,我只能任由游戏商店摆布,我不知道它是否会在几分钟、几小时甚至几天内自动更新。虽然我不认为更新是关键的,它们可以等待,但它们最终应该发生,并将停机时间降至最低。

我知道像mixtpanel这样的A/B测试框架可以热交换一些代码,至少是字符串资源之类的,但我想知道是否有一种方法可以让我自己热交换代码,甚至是整个片段。如果应用程序必须重新启动,也没关系。

那么,最好的方法是什么呢?也可以随意提出其他方法。

当我和一些同事争论如何解决这个问题时,公司首席执行官很快找到了最佳解决方案。他只是提醒我们,可以通过电脑上的playstore在手机上远程安装应用程序和更新。

如果运行的应用程序关闭了应用程序,但使用了PACKAGE_RELACED广播接收器,则应用程序可以重新启动。

虽然有一些人与人之间的互动,但手机本身不需要互动。

唯一的问题是,对大量手机来说这样做很乏味,但如果我们发现有必要这样做,我相信我们也可以以某种方式实现自动化。

最新更新