为什么总有人说鸿蒙是安卓套壳?

开源news
发布于 2022-12-6 22:10
浏览
0收藏


近日,“网曝华为鸿蒙系统切换英文变安卓”这一话题引发热议,并在网上持续发酵,此事件再一次将“鸿蒙系统是安卓套壳”推上风口浪尖。


为什么总有人说鸿蒙是安卓套壳?-鸿蒙开发者社区


套壳安卓?鸿蒙再起争议


近期,在 B 站上,一段鸿蒙系统“翻车”的短视频广泛传播!

为什么总有人说鸿蒙是安卓套壳?-鸿蒙开发者社区

一位华为手机用户,在操作鸿蒙 3.0 操作系统时发现,当把系统语言切换到英语后,在“正在运行服务”的列表中发现,此前名为“HarmonyOS”的进程突然变成了“Android System”。

为什么总有人说鸿蒙是安卓套壳?-鸿蒙开发者社区

随后网友们也纷纷进行了测试,基本证实了中文鸿蒙切换到英文时会显示安卓的说法。

这不禁让网友们再次产生了“鸿蒙系统就是安卓套壳”的质疑。因为这件事,华为鸿蒙系统又一次引来口诛笔伐,一度登上热搜榜。



鸿蒙究竟是不是安卓套壳


关于鸿蒙系统是不是安卓套壳这件事其实早在几年前就已经有了争议。在讨论之前,我们先来厘清一些概念。


鸿蒙系统事实上有两个分支


一个是 OpenHarmony,就是开源鸿蒙,它是华为捐赠给开放原子开源基金会的项目,它没有使用来自 AOSP 的代码,且不能兼容安卓应用,只能运行鸿蒙应用。


另一个是 HarmonyOS,这是华为基于 OpenHarmony 开发的商业发行版。它和 OpenHarmony 的本质区别是 HarmonyOS 使用了一部分 AOSP 的代码构建安卓应用兼容层,目的是为了更好的推进软件生态。


上面我们都提到了 AOSP,它到底什么来头?AOSP:全称安卓开源项目,而它就是安卓的内核——开源也是它最核心的部分。


开源代码意味着可以为任何人所用,只要遵循有关协议,开发者们都可以基于 AOSP 进行二次开发。


关于大家关心的“安卓套壳”问题,此前王成录就曾公开回应表示:“安卓用开源代码比例超过 80%。每年安卓发布的一个版本给到 OEM 厂家手里的代码,大概在 1.1 亿行的量。约 3000 万行是高通、联发科芯片厂家给的,AOSP 社区(安卓开源项目)公布了 7500 万行代码,其中谷歌自己贡献的是 1000 多万行,其余代码是从各个开源社区中拿来的。”


“全世界没有任何一家公司在写一个大型软件的时候,每一行代码都是自己写。”王成录认为,“套壳”一词本身是一种狭隘的见解。如果我们满足了 AOSP 的开源协议,那谷歌的代码华为为什么不用?


让我们再回到这次引发争议的“中文鸿蒙切换到英文时为什么会显示安卓”这件事中来。

笔者自行调查并向多位安卓开发工程师进行求证后,对华为手机在设置英文为系统语言后,HarmonyOS 系统进程显示为 Android System 的状况有了以下的判断。


首先,HarmonyOS系统进程是华为自行开发的


以笔者手中的华为 Mate 20 Pro(HarmonyOS 2)为例,当我们点开 HarmonyOS 进程,系统会显示出 10 个服务。


按照服务名称可知这个进程主要是负责 HarmonyOS 系统级的一些特性的,比如:智能充电服务、反病毒服务、后台清理服务、电量管理服务、应用行为分析服务、存储服务等。

而同为安卓系统其他品牌的手机,并不具有相同进程,且相似功能的服务也在同一设备的不同进程下。


该进程在安卓系统手机上并不具有统一性,因此并不能作为是否是安卓系统的评判标准。

这个进程是什么呢?各大厂商会在自家系统发布会上发布一系列基于安卓的优化,这些优化会转变成“正在运行的服务”选项下的各种系统服务。


大家在开发者工具选项下看到的 HarmonyOS 进程就是华为为消费者开发的定制化服务集合,也是消费者系统体验差异化的核心。


这个进程下的服务告诉我们,华为手机会清理后台(后台清理服务),能够监测应用行为(应用行为分析服务),有病毒监测(反病毒服务),会对电量和充电进行智能管理(智能充电服务、电量管理服务)等。



其次,这个进程与AOSP相关,最起码也是兼容AOSP的


在“正在运行的服务”选项下显示的进程和服务并不是 AOSP 底层的系统进程,这部分进程并不会显示在这里。


在这里显示的更多的是应用层的服务,这些服务与底层的系统(AOSP)和硬件进行数据通信,从而调配手机的软硬件资源。


毋庸置疑的是,“开发者选项”是安卓为开发者提供的开发工具,“正在运行的服务”选项是安卓为开发者提供的资源监控工具。也就是说,HarmonyOS 系统进程多少是和 AOSP 有关联的。

同时,根据以往 EMUI、HarmonyOS 在发布会上发布的功能来看,这些服务很多发布于 HarmonyOS 发布之前,譬如华为的快充。


所以我们说,这个进程与 AOSP 有关,至少是兼容 AOSP 的。



再次,这次争议,很可能只是华为系统开发工程师闹出的乌龙


安卓系统内的功能都是通过 App 来实现的,而 App 也分为系统级 App 和第三方App。

譬如说手机上的相册功能,系统默认是无法删除的,但是极客玩机者可以通过技术手段将第三方相册软件修改成系统级应用,并将原系统的相册删除。


系统级 App 有些有交互界面,有些没有交互界面,譬如实现后台静默清理功能,系统很可能在用户不使用手机时在后台运行,在用户无操作的情况下自动清理冗余的第三方 App,达到释放软硬件资源、让手机流畅运行的目的。


大家看到的 HarmonyOS 进程就是这样一个华为定制化的、无交互界面的系统级 App。

无交互界面意味着 App 无需向用户展示任何文本内容,也就不需要在 App 中内置文本资源文件。


但有一点,任何 App 都需要有个名字,或在 App 配置文件( manifest.xml)中设置,或在文本资源文件(string.xml)中设置,这也是“Android System”出现的源头。


文本资源文件还有一个特点:根据手机系统语言设置调取对应的文本资源文件。

当一个 App 想在全球范围推广时,就需要做本地化,在用户交互界面上显示本地的语言。


基于此需求,一个 App 中会存在多个地域、不同语言的文本资源文件。App 会根据手机的系统语言设置、地域、时区等来调取对应的文本资源文件,这时就实现了本地化。而 App 显示的名称也是可以在文本资源文件中定义的。


根据以上基本信息我们推测:华为的系统开发人员很可能没有做英文文本资源文件的修正,使得用户修改系统语言时,App 名称字段调取了默认文本资源文件或者英文文本资源文件。

最后,从技术上讲,这并不能说明是“安卓套壳”


AOSP≠Android,就如同 OpenHarmony≠HarmonyOS 一样,同时兼容安卓≠安卓。任何不以事实为基础的、带着情绪和偏见的看法,都应当回归真实和理性。



如何彻底撕下“套壳安卓”标签


鸿蒙系统发布已有 4 年,如今搭载 HarmonyOS 的华为设备量已达 3.2 亿,鸿蒙智联已有合作伙伴超 2200 个,产品发货量超 2.5 亿。

为什么总有人说鸿蒙是安卓套壳?-鸿蒙开发者社区


同时鸿蒙自研核心代码量已超 2000 万行,为了加速推进鸿蒙生态发展,华为还研发了一系列鸿蒙开发套件,以助力开发者低成本高效开发。

为什么总有人说鸿蒙是安卓套壳?-鸿蒙开发者社区


为什么到今天还是有不少人在争论它到底是不是安卓套壳?这与鸿蒙早期“完全自主研发”的“过激”宣传不无关系。


其次就是鸿蒙生态环境上的不足。确实,华为一开始研发鸿蒙系统的时候,为了加强生态兼容性和加快生态建设,采用了部分谷歌开源代码。虽然华为也表示后续将彻底删除谷歌代码,但是一个操作系统的成功最难的还是生态部分。


就如同王成录所说:做生态系统面临着很多困难,代码或许没那么重要(代码是谁写的只是毛毛雨,重要性的 1% 都不到),毕竟用户更关注实际体验。

或许华为想要撕下“套壳安卓”标签,在生态建设上仍然有很长的一段路要走。


更多精彩原创内容请关注微信公众号:OST开源开发者

已于2022-12-7 21:46:29修改
1
收藏
回复
举报
回复
    相关推荐