我意识到这是一个广泛且可能含糊的问题,但我正在寻找一些在 android 中自我更新应用程序的常见策略(不是通过 Google Play,而是直接从应用程序本身)。也许我可以将实际应用程序的 APK 嵌入到另一个进行更新的 APK 中,但是(1)更新程序甚至可以在运行时修改自己,(2)更一般地说,如何防止另一个(可能是恶意的)应用程序修改更新者?任何关于此事的提示、链接或想法将不胜感激!
2 回答
需要注意的一件事是,谷歌根本不喜欢这种行为。 谷歌禁止自行更新安卓应用...
谷歌现在已经改变了谷歌 Play 商店的政策,显然是为了避免类似 Facebook 的结局围绕商店提供的更新而运行。根据 Google Play 开发者政策的“危险产品”部分,Google 现在声明“从 Google Play 下载的 [a]n 应用不得使用 Google Play 更新机制以外的任何方法修改、替换或更新其自己的 APK 二进制代码。 " 一篇 Droid-Life 文章称语言更新发生在周四。APK(代表应用程序包文件)是用于在Android上安装应用程序的文件格式。
我不确定您的应用是否会或将来会出现在 Google Play 上,但如果是这样,我建议您不要这样做,因为它可能会危及您的开发者帐户。
我正在寻找一些在android中自我更新应用程序的常用策略
我真的只能想到一种策略:
第 1 步:确定更新可用(例如,监视某个 URL 以获取最新版本信息)
步骤#2:下载更新
步骤#3:在用户请求的某个时候,使用ACTION_VIEW
或ACTION_INSTALL_PACKAGE
(API 级别 14+ 可用)开始安装,因为用户需要批准更新
更新程序甚至可以在运行时修改自己吗
正在更新的应用程序将在更新期间停止其进程。
如何防止另一个(可能是恶意的)应用程序修改更新程序?
更新必须使用与原始版本相同的签名密钥进行签名,与通过 Play 商店分发没有什么不同。因此,用你的生命保护你的签名密钥(或者用别人的生命,如果周围有人穿着红色衬衫的话)。