我意识到这是一个广泛而且模糊的问题,但我正在寻找一些在Android中自我更新应用程序的常用策略(不是通过Google Play,而是直接来自应用程序本身)。也许我可以将实际应用程序的APK嵌入另一个进行更新的APK中,但是(1)更新程序甚至可以在运行时自行修改,(2)更一般地说,如何防止另一个(据称是恶意的)应用程序修改更新?任何关于此事的提示,链接或想法都将不胜感激!
答案 0 :(得分:4)
我正在寻找一些在Android中自我更新应用程序的常用策略
我真的只能想到一个策略:
步骤1:确定更新可用(例如,监控某些URL以获取最新版本信息)
步骤2:下载更新
步骤3:在用户请求时,使用ACTION_VIEW
或ACTION_INSTALL_PACKAGE
(后者在API Level 14+上提供)启动安装,因为用户需要批准更新
更新程序甚至可以在运行时自行修改
正在更新的应用将在更新期间停止其进程。
如何阻止另一个(据称是恶意的)应用修改更新程序?
更新必须使用与原始版本签名相同的签名密钥进行签名,与通过Play商店进行分发无异。因此,保护您的签名密钥与您的生活(或者与其他人一起生活,如果周围有人穿着red shirt)。
答案 1 :(得分:3)
有一点需要注意的是,谷歌根本不喜欢这种行为。 Google bans self-updating Android apps...
谷歌现在已经明确改变了Google Play商店的政策 试图避免类似Facebook的商店交付 更新。在Google Play的“危险产品”部分下 开发者政策,谷歌现在声明“[a] n应用程序下载 Google Play不得修改,替换或更新自己的APK二进制代码 使用Google Play更新机制以外的任何方法。“A Droid-Life文章说,语言更新发生在周四。 APK (代表应用程序包文件)是用于的文件格式 在Android上安装应用程序。
我不确定您的应用是否曾经或将要用于Google Play,但如果是这样,我建议您不要这样做,因为它可能会危及您的开发者帐户。