Warning

此文章内容完全是 Sukazyo 的臆想,仅作参(chao)考(xiao)使用。

为什么鸿蒙系统刚发布第一个公开版,却会出现“此应用专为旧版鸿蒙打造”?

鸿蒙系统虽然刚刚发布第一个公开版,但是内部测试版和合作商发行版在开发期间一定有经过很多的版本更新。众所周知,一个软件在早期开发时,其API一定会进行各种不兼容修改。在此期间,如果一个合作商的软件基于早期的鸿蒙系统内部开发版开发,那么这个软件就很容易在晚期的内部开发版,直到正式发行版,产生不兼容。于是就会出现“此应用专为旧版鸿蒙打造”。
这个问题,显示了各大合作商愿意冒着不兼容的风险,基于还不稳定的系统开发软件,正是反映了各大发行商对鸿蒙系统十分重视的典型案例。

为什么鸿蒙系统会支持 Android 软件?

我国的移动端开发,长期以来都是基于 Android 系统。在这种大环境下,尽管是再强大的系统,也不能一票否决我国软件开发长期以来的技术结晶。鸿蒙系统愿意用大量的工作来对传统 Android 软件做兼容,正是为了让大家尽快使用上鸿蒙系统,而不是需要等待各种软件迁移到鸿蒙。同时,这种兼容给了那些历史上十分优秀,但是已经不再更新的经典软件一条在鸿蒙系统上运行的路。这种兼容,不管对于开发者,还是用户都更加友好。
同时,这种兼容也是一种包容。这种兼容表明鸿蒙尽管是我国自主研发的系统,也并没有对外国的 Android 用户和 Android 开发者有任何歧视,体现了我国开放自由包容的精神。

为什么“此应用专为旧版鸿蒙打造”和“此应用专为旧版Android打造”的提示几乎一模一样?

造成这个问题的原因有两点:其一,和上面说的一样,我国的 Android 生态已经十分丰富,大多数用户都习惯了 Android 的操作逻辑,那么,一个全新的系统,想要做到用户友好,会或多或少的和用户已经习惯的系统十分相似;其二,鸿蒙的系统研发时间只有三年,对于一个全新的现代操作系统而言,三年的开发时间实在不能算得上是丰富,在这种情况下,还要做 Android 生态兼容,就不能避免的对这些细节部分无法做到尽善尽美,最好的办法,就是先借鉴成熟的系统的布局和样式,等待时间充裕的时候再来优化细节。

为什么运行旧的 Android 软件,却会出现“此应用专为旧版鸿蒙打造”?

首先我们已经明确,鸿蒙对 Android 生态环境已经做了特殊兼容,接下来,我们要了解这种兼容的方案:
Android 软件得以在鸿蒙系统上运行,显然是有一个兼容层来将 Android 代码运送给鸿蒙系统来执行。Android 系统的历史已经有了很长时间,要想做到完善的兼容层,势必要对 Android 软件的类型进行判定,将不同类型的软件分派给不同的兼容组件来运行。而有可能某一个鸿蒙系统的API,早期设计时为了对标旧版 Android 的某个对应API,在版本迭代更新时,这个API由于不符合现代标准而被删除了。但是使用了这个API的某个 Android 兼容组件却由于开发者的疏忽没有更改这个调用,于是,在需要这个兼容组件的 Android 应用程序运行时,鸿蒙系统的运行前检查发现了这个旧版鸿蒙API的调用,就报告了“此应用专为旧版鸿蒙打造”的错误。


2 条评论

666 · 2021-03-08 下午5:57

说的完全正确

kotens · 2021-06-04 下午2:26

很合理的推断

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注