我正在尝试查看是否可以远程更新用户手机上的应用,而无需下载.apk 文件。 (这是我和老板的信息收集请求"。他认为在iOS上可以这样做,所以他希望我查看Android)。
基本上,我试图让我的应用程序偶尔从我们的网络服务器中提取版本号以查看是否需要更新,如果是,那么应用程序会询问权限,然后下载新文件(更新源代码, .xml布局文件,图像等)从而绕过了从Play商店下载我们的APK(大小为50mb)的需要,用于修补程序甚至小功能更新。
从我发现的内容:
我可以下载资源/数据文本文件,可以阅读更多内容,但无法真正修改源代码,因为......
APK文件基本上是"烘焙"当它创建的源代码,.xml文件等被最小化,重命名和混淆时意味着向现有APK添加新功能或修补程序将是困难的。我认为你可以改变图像,但这是关于它的。
我相信 Candycrush 会以某种方式下载新级别(应用内更新并不涉及游戏商店),但这可能只是方法1.简要研究Firebase的远程配置也有类似的东西,但预先设置参数的限制意味着尝试使用它进行修补/更新可能会有点不稳定。
我是正确的还是我错过了一些明显的东西?
答案 0 :(得分:8)
我认为使用patching
系统可以解决您的问题。
有些图书馆可以帮助您:
Tinker是Android的热门解决方案库,它支持dex,库和资源更新,无需重新安装apk。
AndFix是一种解决方案,可以在线修复错误,而不是重新分发 Android应用。它以Android Library的形式发布。
Andfix是“Android hot-fix”的首字母缩写。
AndFix支持从2.3到7.0的Android版本,包括ARM和X86 架构,Dalvik和ART运行时,都是32位和64位。
AndFix补丁的压缩文件格式为.apatch。它是 从您自己的服务器发送到客户端以修复您的应用程序的错误
<强>原理强>
AndFix的实现原理是方法体的替换,
Amigo是一个修复程序库,几乎可以修复Android应用程序的所有内容。
答案 1 :(得分:0)
如果没有apk更新,则无法更新源代码。 Firebase远程配置可以帮助您更新某些参数的值而无需更新应用程序。您还可以定义自己的方式从自己的服务器下载其他文件,但无法更改应用程序内的源代码。