Android 应用程序更新的 Delta 更新

2024-04-04

我正在尝试设置自己的服务器来托管 apk 文件,这些文件可用于客户端应用程序中的安装和更新。

当apk有新版本更新时,客户端只需要下载更新的部分。我可以在服务器端使用“bsdiff”生成补丁文件。但是在客户端,我应该如何将补丁文件与原始apk合并并安装更新。


根据您的问题,您似乎正在寻找某种修补系统。通常 Google Play 商店会负责管理此操作。当您上传新版本的APK时,它只会下载客户端设备上的差异,从而为客户节省数据。然而,这种合并是在移动设备本身上完成的。

由于您没有使用谷歌游戏商店,唯一可用的方法可能是像这样的补丁系统AndFix https://github.com/alibaba/AndFix。可以在此找到更多选项SO https://stackoverflow.com/questions/40600712/updating-app-without-installing-new-apk。其中大多数需要更改一些代码。

您还可以遵循以下概念扩展文件 https://developer.android.com/google/play/expansion-files.html由谷歌描述。您应该能够模仿该方法。

Note:如果您通过 Google Play 商店分发它并且不利用 Google Play 的更新机制,则 Google Play 政策不鼓励这种方法。如果您计划在后期通过 Play 商店分发您的应用程序,您需要小心

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 应用程序更新的 Delta 更新 的相关文章

随机推荐

  • 如何使用相同的函数按行比较矩阵列表

    假设我有一个包含两个矩阵的列表 x and y x lt c 3 4 5 5 3 4 5 6 5 6 2 1 x lt matrix x 3 4 y lt c 3 4 5 5 3 4 5 6 5 5 2 1 y lt matrix y 3
  • 在字符串中添加新行以进行翻译

    我正在使用 ngx 翻译 如何在要翻译的字符串中添加换行符 在我的模板中 我有 STRING TO TRANSLATE translate 在我的 en json 中 STRING TO TRANSLATE text on first li
  • 如何将纪元转换为日期时间红移?

    我在 dbeaver 工作 我有一个表x 表 x 有一个 时间戳 列 1464800406459 1464800400452 1464800414056 1464800422854 1464800411797 我想要的结果 Wed 01 J
  • ggplot根据数据框中的值重新排序堆积条形图

    我正在 R 中使用 ggplot2 制作堆积条形图 并在 y 轴上具有特定的条形排序 create reproducible data library ggplot2 d lt read csv text Day Location Leng
  • BASH if 语句中的函数返回值

    我已经研究了这里处理 BASH if then 语句中的函数返回值的各种方法 但似乎都不起作用 这是我所拥有的 function is cloned if d DIR NAME then return SUCCESS fi return F
  • 在后台加载新场景

    我正在创建一个针对 Samsung Gear VR 的 Unity 应用程序 我目前有两个场景 最初的场景 第二个场景 数据量大 加载场景需要太多时间 从第一个场景开始 我想在后台加载第二个场景 并在加载后切换到它 当新场景在后台加载时 用
  • IE11未发起CORS请求

    通过摆弄 如果是跨源的 IE11 似乎不会发出 ajax 请求 如果资源 API 未发送必要的标头 FF 和 Chrome 至少会发出请求并抛出错误 在我的例子中 资源 API Web API 2 0 是添加所需的标头 http www a
  • 动态 Jquery 拆分器插件

    我正在尝试使用 Jquery Splitterhttp www methvin com jquery splitter http www methvin com jquery splitter 如果分隔窗格是静态的 它工作得很好 但我需要在
  • 两个视图 - 一个 ViewModel

    我一定是误解了这个概念ViewModels和意见 但目前我无法从地面重建应用程序 这次做得更好 我的情况是 我有一个视图 用户可以在其中加载文件并读取它们 绘图仪显示图形并实现一些操作 我希望能够生成数据报告 如摘要 但我希望它在其他视图中
  • 如何仅使用 HTML 和 CSS(或者我猜是 java)创建滚动文本的动画,就像苹果过去在其实时页面上使用的那样?

    我的网站顶部有一个蓝色横幅 左侧有浅色径向渐变 我想要在横幅右侧向上滚动的白色文本动画 我希望它在出现时淡入 然后淡出 我希望不使用 Flash 并尽可能少地使用 Java 来完成此操作 我可以通过 CSS 进行工作并设置布局 但我不知道如
  • C# 中的实时麦克风幅度测量

    我正在寻找简单的解决方案 它将返回 C 中麦克风输入的整数值 我已经在网上检查了可用的示例 但它们都不能在 x64 环境中工作 VS2008 W7 x64 是否有任何简单的解决方案可以返回 C 中麦克风输入的幅度 或频率 值 我尝试了 NA
  • Julia ccall 接口和符号的问题

    我正在尝试使用朱莉娅的ccall与 C 库接口的函数 所有类型和指针都是正确的 并且下面的函数调用成功返回正确的答案 为简洁起见 此处未显示变量定义和设置 ccall vDSP convD libacc Void Ptr T Int64 P
  • jquery("foo bar") 与 jquery("foo").find("bar")

    我正在尝试遍历 xml 文档 这不起作用 零结果 jquery foo bar 这确实有效 jquery foo find bar 知道为什么吗 jquery foo bar 第一个查找 bar 元素是 foo 元素的后代 所以在这个例子中
  • 套接字编程最佳实践?

    我正在设计一个文件同步应用程序 如 DropBox 客户端在端口 443 上与服务器保持持久的安全 SSL TCP 套接字 每当在客户端上创建 更改 删除文件时 包含相关数据的数据包就会通过套接字发送到服务器 服务器对其进行处理更新服务器上
  • #include<> 和 #define"" 之间有什么区别[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 有人能告诉我 include 和 define 之间的区别吗 我知道 include 用于包含头文件 define 用于定义宏或常量 是不是
  • 在 Spring Security 中以编程方式自定义 WebAuthenticationDetails

    我目前正在从基于 xml 的 spring security 配置转向基于 java 的配置 我需要通过 Java 设置自定义 WebAuthenticationDetails 有没有办法做到这一点 在 XML 中 我只需设置 Userna
  • Qt 5.7 将 -std=gnu++11 添加到我的编译器标志中,破坏 -std=c++14

    我在我的中设置以下标志CMakeLists txt set CMAKE CXX FLAGS std c 14 g O0 然后我正在使用find package定位Qt5Test find package Qt5Test REQUIRED 然
  • tf.image.resize_bilinear 与 cv2.resize

    结果来自tf image resize bilinear与cv2 resize 我觉得这有点麻烦 放align corners True并不总是合理的 因为四个角并不总是应该固定在角上 那么有没有办法让它变得更加 对称 呢 重现代码 imp
  • jQuery Mobile -> 覆盖 jQuery UI Datepicker -> 布局损坏

    我在我的 Web 应用程序中使用 jQuery Mobile 有一个日期选择器会覆盖默认的 jQuery UI 日期选择器 这是来源 https github com jquery jquery mobile tree master exp
  • Android 应用程序更新的 Delta 更新

    我正在尝试设置自己的服务器来托管 apk 文件 这些文件可用于客户端应用程序中的安装和更新 当apk有新版本更新时 客户端只需要下载更新的部分 我可以在服务器端使用 bsdiff 生成补丁文件 但是在客户端 我应该如何将补丁文件与原始apk