(私人)Android 应用程序自动更新

2024-02-22

我正在开发一个非公开的 Android 应用程序,即该应用程序不会在全球 Android 市场上提供。该应用程序将安装在有限数量的客户端上,例如通过使用 apk 文件。 如何在此应用程序中启用自动更新功能?

我看到了不同的潜在选项(我不知道这些选项在技术上是否困难甚至不可能实现,或者是否有任何现有功能可以重用):

  • 每次启动时,应用程序都会测试是否存在新版本(通过请求服务器),如果存在,则下载新的 apk 并用新版本替换自身。
  • 使用(或开发?)独立的应用程序或服务来执行更新检查和替换过程。
  • 使用(或开发?)具有自动更新选项的私人市场应用程序。此选项与第二个选项类似,但更通用:市场应用程序将连接到存储库,即它将处理任意数量的(私有)应用程序。

我更喜欢选项一,因为应用程序中包含自动更新功能,需要较少的开发工作。


janjonas,在我工作的公司中,我们在 Windows Mobile 6.x 上也遇到了类似的问题,我们使用的解决方案与 EboMike 指出的解决方案几乎相同:

主应用程序根据 WebService 检查它是否已更新。如果需要,它会接收当前版本和下载新版本的 URL。然后主应用程序启动更新程序应用程序,传递 URL,然后退出。

更新程序通过 HTTP 下载新程序,并向用户显示下载的百分比。用户可以随时以受控方式取消下载,更新者可以注册此取消。

下载新应用程序后,更新程序将运行新应用程序,然后退出。

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

(私人)Android 应用程序自动更新 的相关文章

随机推荐

  • C ++,stl,map如何按值而不是键排序

    我想仅使用值而不是键对地图容器中的元素进行排序 怎么做 我知道地图可以按键值排序 但反之亦然怎么办 我在 stackoverflow 中发现了同样的问题 我喜欢这个solution https stackoverflow com a 269
  • 什么时候适合使用 df.value_counts() vs df.groupby('...').count()?

    我听说 Pandas 通常有多种方法可以做同样的事情 但我想知道 如果我尝试按特定列中的值对数据进行分组并计算具有该值的项目数 那么什么时候使用才有意义df groupby colA count 什么时候使用才有意义df colA valu
  • 如何使用 C# Entity Framework 5 DbGeography 空间数据纠正多边形环方向

    我正在使用新的实体框架 5 使用空间数据类型 DbGeography 作为我的模型的一部分 用于在一个实例中存储点 在另一个实例中存储多边形 设置 POLYGON 的值时 所有保存都不会出现错误 但是只有当我按顺时针顺序在地图上绘制多边形时
  • 使用AJAX将网页内容加载到DIV中

    我有一个文本字段 当我在文本字段中输入内容时 我想将内容加载到下面的 DIV 中 这就是我的等效代码
  • 当我右键单击图标时出现无限 gtk 警告

    由此tuto http zetcode com tutorials gtktutorial firstprograms include
  • 编程中死锁问题有多常见?

    我用多种语言进行编程 但我不知道代码中是否存在死锁 我认为这意味着它不会发生 这种情况经常发生吗 在编程中 not在数据库中 足以让我担心它吗 如果满足以下两个条件 则可能会出现死锁 您有多个线程 并且它们争用多个资源 你写多线程代码吗 您
  • Gtk Ckipboard:使用自定义 URI 方案从源粘贴文件

    我正在尝试编写一个 GTK C 应用程序 将一些文件放在 Gtk 剪贴板上 以便使用 Nautilus 的用户能够粘贴它们 有一个好的stackoverflow 上 Gtk 剪贴板本地文件复制和粘贴的示例 https stackoverfl
  • AngularJS 下拉列表不显示所选值

    在角度下拉列表中显示所选值时面临问题 当我这样给予时它就起作用了 scope selectedItem scope items 1 不起作用 如果我直接给出该值 scope selectedItem name two age 27 HTML
  • ul in ul 的正确语义

    我在写信ul inside ul制作手风琴类型的菜单 但是当我在 html 验证器中检查下面的代码时 它给了我这些错误 Element ul not allowed as child of element ul in this contex
  • 记录可以用作对象的属性吗?

    我想将记录作为对象的属性 问题是 当我更改该记录的某个字段时 该对象不知道这一更改 type TMyRecord record SomeField Integer end TMyObject class TObject private FS
  • 为什么使用 Nsurl 请求不断告诉我重命名为“init(url)”

    还尝试添加检测视频并将其下载到应用程序的功能 简而言之 这是一个基于网络的应用程序 用于下载任何类型的视频 并能够将其存储在应用程序中 import UIKit class ViewController UIViewController I
  • Qt raw 与 std::shared_ptr

    我注意到 当在 QT 中用 share ptr 替换原始指针时 我的代码不再起作用 例如 如果不是 QTreeWidgetItem vItem new QTreeWidgetItem ItemTitle I use std shared p
  • AWS IAM GetUser - 凭证的范围应使用curl和“--aws-sigv4”选项限定在有效区域

    我试图获得正确的请求来获取用户 但不能 有效的 AWS CLI aws iam get user user name user name 现在 一个平淡的curl request api addr https iam amazonaws c
  • 设置div宽度,对齐div中心,文本左对齐

    我有一个小问题 但我无法解决 我有一个 864px 宽度的内容标题 一个重复的背景图像和页脚图像 现在我有这个 div 在背景图像上 我希望它的宽度为 855px 文本左对齐但居中对齐 以便它适合背景 我曾经有过一些剩余的填充宽度 但我发现
  • 将 NSManagedObject 的实例添加到 NSManagedObjectContext 正常,更新同一实例失败

    我在 iPhone 应用程序中使用核心数据 我创建了一个简单的类Friend 它源自NS管理对象并使用以下属性 property nonatomic retain NSString name 我能够在我的上下文中添加和删除此类的实例 并且我
  • 静态库之路来自地狱的噩梦

    这就是重点 我创建了一个子项目 静态库 该库编译良好 没有错误 当我将此库包含在项目中并从项目中的该库导入标头时 该库无法编译 因为它找不到属于自身的路径 在网上学习了一系列有关如何创建静态库并将其嵌入到项目中的教程后 我不知道哪个是正确的
  • 用户未收到 Windows 10 打包飞行

    我目前正在尝试使用 Windows 10 Packaged Flight 系统来测试我们的 Windows 10 Cordova 应用程序 遵循此处找到说明 https msdn microsoft com en us windows uw
  • Apache OpenNLP:java.io.FileInputStream 无法转换为 opennlp.tools.util.InputStreamFactory

    我正在尝试使用 Apache OpenNLP 1 7 构建自定义 NER 从可用的文档来看Here https opennlp apache org documentation 1 7 0 manual opennlp html tools
  • 使用Node.js从MySQL中提取数据并显示在HTML页面上

    我试图从 MySQL 中提取数据并将其显示在我的 HTML 页面上 但是当我在浏览器上运行下面的代码时http localhost 3000 数据没有显示在我的页面上 如果有人能帮助我解决这个问题 我将不胜感激 索引 html div di
  • (私人)Android 应用程序自动更新

    我正在开发一个非公开的 Android 应用程序 即该应用程序不会在全球 Android 市场上提供 该应用程序将安装在有限数量的客户端上 例如通过使用 apk 文件 如何在此应用程序中启用自动更新功能 我看到了不同的潜在选项 我不知道这些