问答 为什么手游启动必有热更过程,其它手机软件却全都没有?

踏雪之歌 · 2023年02月21日 · 最后由 踏雪之歌 回复于 2023年02月23日 · 8224 次阅读

我是做游戏测试的,没接触过软件测试。
我接触的手机游戏全都有做一个客户端热更新的机制,而且很多时候热更量还非常大。对于我们来说一边是必须要发布这些热更新,另外也会不断去应用市场上架新的整包来让新用户不用下载这么大的热更新内容。
手游启动的时候必会有一个检查应用资源版本的过程,如果版本太低就会需要下载热更新资源,像这样:

另外我有使用过的手机软件,从来就没有见过启动软件后,弹出一个下载热更新的画面这样的步骤和环节。我很好奇,普通的软件 app 有热更新的机制吗,如果有,是怎么做到让人无感的?如果没有,那你们的软件只能通过应用市场更新整包来迭代,会不会效率太低了?并且用户也肯定有很多不会去应用市场进行下载更新呀?

有没有做软件测试的老哥帮我解惑一下,谢谢!

共收到 9 条回复 时间 点赞
少年 chatgpt 最近体验的一些心得 中提及了此贴 02月23日 11:45
少年 回复

学到了,遇事不决先问 chatGPT😂

陈恒捷 回复

受教!

【为什么手游启动必有热更过程,其它手机软件却全都没有?】这是一个错误的结论。

题主可能只关注到手游存在更新进度条的交互过程,国内大厂绝大多数 app 都有热修复、插件更新等机制,这些都是所谓的热更过程,也就是不需要在应用商店升级 app,就可以让 app 某部分的功能得到升级。尤其是 Android,简直各种花式搞。

只是非游戏类的 app 像游戏那样有个很明确的更新交互过程,如 6 楼所述,其本身更新的目的不一样,所以技术实现的最终结果也有些差异。

Android 界比较著名的如 https://github.com/Tencent/tinker,有幸和这个项目的创始大佬开过一些会议。

游戏是因为兼容多版本成本比升级成本高,所以才基本都统一加载资源热更,保障用户使用的都是同一版本。

而普通软件升级成本比兼容成本高(如果老是打开后更新,估计用户就不用了,用户粘性比游戏低太多了),所以没有类似游戏这样每次都要 load 热更数据保障用最新版本,线上其实经常多版本并存。

而且其实普通软件内部也有提供自升级功能,用户点一下就可以下载安装包和更新。一般软件的热更内容比游戏少很多,所以基本都会想办法做到用户无感知(比如楼上提到的预先下载完,用户点按钮就直接应用),不怎么会有游戏这个明显的 loading 过程。

另外还有一个因素,具备修改软件逻辑的能力的热更技术,是可以绕过应用市场审核机制的(审核时是个计算器,审核后下发热更变成一个购物 app 也是完全可以做得到的),所以应用市场对这类技术限制相当严格,特别苹果,如果发现有类似框架引入,会直接拒绝。同时应用市场也有提供晚上 wifi 环境下自动更新的能力,足以满足大部分情况下新版本覆盖度的需要,所以相对来说,不会像游戏那样普遍使用热更来进行版本更新。

少年 回复

这,比我回答面试的时候还详细🙄

app 也有的,其实 app 的话根本不用去应用市场更新,他们 app 内置就可以更新,有大的版本的升级可以进行强更,用户必须更新才能使用,也可以选择让用户自主选择更新,当用户选择自主更新,其实在之前 app 就已经进行静默更新了下载好了新的安装包放在外存里了,用户只需要进行安装三秒钟就可以完成升级。

😅 现在大部分 APP,都是用的,混合技术,APP+ 网页,占用内存小,软件体积小;

每种技术,都有对应的业务场景,不是说实现不了,而是选择最合适的。

就像你说的游戏,如果有更好的技术方案可以替代热更新,当然会第一时间替换掉,热更新,也是有缺点,就是更新过程中,可能加载不稳定,以及,用户体验性差,每次得等好久,中途还不能退出。

有,看你 app 是否需要

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册