从开发人员的角度看Android更新

没有没有错误的代码。 彼得·诺顿(Peter Norton)说:“博物馆中有一个地方可以存放理想的密码:在那里珍藏着各种古物。” 并修复错误-有更新。

我想从Android运行时开发人员的角度分享我对更新的看法。 我们大型团队的一部分位于俄罗斯,我参与了Java子系统的开发,优化虚拟机并更正了一些小问题。 我们的职责范围是核心之上和之下的所有应用程序。 我们希望实现最大的应用效率,包括能源效率。 这是Samsung的一个部门,对用户不可见,但非常重要,因为该层的错误会导致许多应用程序的错误行为。

今天,我们将讨论Android系统更新的当前工作方式,供应商对此主题的看法以及未来几年的新趋势。 以及给用户的提示:更新频率,安装哪些修补程序以及如何帮助开发人员更快地发现错误。


来源-xkcd

如何更新


问题是,事实证明,大量用户购买后根本不更新手机。 如果用户及时更新手机,则不会发生许多错误。 几年前,更新并不那么频繁,因此必须打上很多勾号,并定期单击更新按钮。 现在,在现代版本的Android中,一切都变得非常简单,只需在购买手机时选中该复选框,即可对其进行更新。

如果您关闭更新,则我们不会收到严重错误的更正。 是的,可以通过Google Play更新单个应用程序,但是严重错误(尤其是在安全方面)仍未得到纠正,并且某些未按此按钮或不知道如何执行此操作的人继续抱怨应用程序错误。

另外,此刻非常有趣的是,供应商如何影响仅使用最新的OS映像。 例如,过去几年中,三星设备具有“回滚预防”功能:对系统的最低可接受版本进行编码的硬件保险丝。 旧版本可能包含已知漏洞,因此您无法将旧操作系统下载到手机上。

公司更新


B2B市场具有自己的特征。 在那里,您只能在IT和IS部门的严格指导下,根据建议进行更新。 企业用户需要认真听取IT服务的建议,并使用IT服务来使用解决方案以最大程度地降低风险。 例如, 三星Knox E-FOTA


那里的功能是:

  1. 有选择地更新设备的特定列表
  2. 控制公司使用的固件列表
  3. 根据工作时间表进行更新的时间

将来会有什么样的更新


现在,存在着Android模块化的趋势。 从长远来看,谷歌正在开发一种新的操作系统紫红色,它仍然很粗糙,但是在那里确立的原则已经慢慢地转移到了Android。 事情之一是模块化。 从单块操作系统中,可以像应用程序一样突出一些可以通过Google Play独立更新的组件。 Google之所以采取这一措施,是因为他们对人们不进行更新的情况也不满意,此外,他们还尝试减少设备的碎片化,以使该组件与供应商的联系更少,而与Google的联系更多。 普通用户不知道什么是Android Runtime,并说:“您要下载新版本的Android Runtime吗?” 看起来有点傻。 因此,谷歌正在引入一个隐形更新系统。 原则上,它已经存在很长时间了,例如,对于GMS(Google移动服务)而言,该系统基于插件,并且在那里对插件进行了不可见的更新。 Google对基本的Android组件实施了相同的原则。 也就是说,在某个时候,我们将获得一个很少更新内核的操作系统,但是实际上它经常在其子系统中更新。 您甚至不需要重新启动手机。 现在是过渡期。 整体系统各有利弊(我们记得27年前Torvalds和Tanenbaum之间的争议),但是现在Google转向了微内核架构和组件的独立更新。

应用程序开发人员希望拥有一个稳定的系统并减少碎片。 但这对于电话制造商而言并不总是一个好消息,因为减少碎片会减少差异化,因为如果更新来自Google Play,我们将无法在此组件中引入新的优化。 这是硬币的另一面。 用户将很快摆脱思考自己是否需要更新此组件或该组件的需求。 将来,Google将使该系统成为可能,如果您购买电话并连接Google Play,那么您将自动订阅所有更新。

如何帮助开发商


用户的反馈非常重要,您需要选中此框以自动发送它。 只需对操作系统进行很小的更新就可以解决一些问题。 根据反馈,三星确定确切需要解决的问题以及用户不满意的问题,例如,三星会跟踪应用程序的启动时间-当然,如果该人同意发送并打勾该数据。

因此,总而言之,我们作为开发人员对用户的期望:

  • 确保安装安全更新,并立即进行
  • 发送反馈并随时报告不起作用
  • 如果您是公司用户,请遵循公司采用的规则

发言者:伊万·迈丹斯基(Ivan Maidansky),
专家软件工程师
AI编译器实验室
俄罗斯三星研究中心

Source: https://habr.com/ru/post/zh-CN472384/


All Articles