当前位置: 首页 > 面试题库 >

应用程序启动器如何自我更新?

伍胡媚
2023-03-14
问题内容

启动器在游戏中最常见。想想英雄联盟,星际争霸II或几乎所有的MMO。在开始实际游戏之前,您有一个小型启动器应用程序,负责更新和修补。

我想通过我正在开发的特定非游戏应用程序来朝这个方向发展。启动器的概念非常有意义:它检查更新,替换适当的二进制文件/库,运行完整性检查并启动应用程序。但是,启动器如何自我更新?这往往是罕见的事件,但是如何完成呢?启动程序实际上是否只是覆盖当前正在运行的二进制文件?还是下载后有某种交换步骤?我需要能够将(很少)更新发布到启动器(特别是如果我在启动器中发现一些错误)。

我的特定项目将是C#,但我对概念上相似的C ++和/或Java解决方案也感兴趣,以供将来参考。


问题答案:

我从未尝试过,但这就是我的猜测(假设您无法覆盖正在执行的文件。如果可以,这一切都比较简单)

Updater A checks if its the newest version
If launcher isnt the newest version
    Download the differences (to save bandwidth) to file B
    Apply the delta to own code into file C
    Launch file C.
    Close
If file C exists (update happened recently)
    Try to delete C  (update was previous launch, delete temporary file)
    If delete fails  (We are C, means A is out of date)
        Copy C over A  (update launcher)
        Note that you can keep going, dont have to restart even though we are C.
If game isnt newest version
    Download the differences (to save bandwidth) to file B
    Apply the delta to game into file D
    delete game
    Rename D -> game
Run game


 类似资料:
  • 问题内容: 当我使用命令创建应用程序时,flutter徽标用作两个平台的应用程序图标。 如果我想更改应用程序图标,是否应同时进入两个平台目录并在其中替换图像?,分别用我指的是iOS和Android的平台目录来表示 。 还是可以将图像定义为Flutter Asset并且以某种方式生成图标? 问题答案: Flutter启动器图标旨在帮助快速生成适用于Android和iOS的启动器图标:https :

  • 当我使用命令创建应用程序时,flutter徽标用作两个平台的应用程序图标。 如果我想更改应用程序图标,我是否应该同时转到两个平台目录并替换那里的图像呢?对于平台目录,我指的是iOS的和Android的。 或者有可能将一个图像定义为Flutter资产,图标以某种方式生成?。

  • 问题内容: 我尝试使用范围类型APPLICATION和带有@ Create,@ Beg的方法来注释类,但这似乎不起作用。 我想要的是在应用程序启动时立即启动无限循环。 问题答案: 如果希望在初始化后立即执行方法,则可以使用以下注释:

  • 问题内容: 如何重新启动Java AWT应用程序?我有一个附加了事件处理程序的按钮。我应该使用什么代码来重新启动应用程序? 我想做与应用程序中相同的事情。 问题答案: 当然,可以重新启动Java应用程序。 以下方法显示了一种重新启动Java应用程序的方法: 基本上,它执行以下操作: 查找Java可执行文件(我在这里使用了Java二进制文件,但这取决于您的要求) 查找应用程序(在我的情况下是一个ja

  • 当我的树莓电源故障时,Android的东西在主页上重启,而没有我的应用程序,我必须手动重新发送它,我如何修复Android的东西在重启时自动运行应用程序?

  • 我想知道,任何应用的后台服务都可以由小米提供吗?我的应用中有服务需要一直在后台运行,在所有的设备中,它的工作都很好,除了小米,如何可以做到编程?