鸿蒙NEXT不再支持安卓这条路真的走的通吗?

news2024/10/6 6:54:44

前言

看到高赞又是一片嘲讽,“apk换种打包方式”等等轻松拿几百赞,我也是无语。

国内多家互联网大厂都已经启动HarmonyOS Next应用开发,预计明年正式上线,如今业内很多人都已经知道了。

网络上相关报道也有很多,新浪科技、界面新闻、第一财经等等媒体都报道了:

很多对于鸿蒙乃至菊厂的嘲讽都是拿自媒体当靶子,因为官方和主流媒体的表述一般比较贴近事实

实际上不止美团京东等大厂,据我所知最关键的那几个巨头也都加入了鸿蒙生态开发。

至于题目中问的“鸿蒙5.0不兼容安卓的道路能否走通”,我个人的看法是:

“鸿蒙5.0不再支持安卓”的表述可能不严谨,我个人猜测HarmonyOS Next会有将AOSP放入容器的过渡期。

但就目前态势来看,HarmonyOS Next已经基本确定可以走通,预计明年会见到阶段性成果。


知乎上连篇累牍复读“套壳”、“连哄带蒙”的时候,我一直在关注相关进展。

正好借着这个机会,再梳理一遍我眼中鸿蒙/OpenHarmony的发展历程:

四千字长文,有错漏欢迎指出:

1、鸿蒙/OpenHarmony 1.0——一切的源点

2020年菊厂开源了OpenHarmony 1.0的代码,其中包含了菊厂自研的liteos系统。

一方面,最极端的黑子也得承认,Liteos是菊厂自研的操作系统;

另一方面,liteos终究是面向手表等穿戴产品的轻量级物联网操作系统,支持设备能力和技术复杂度与手机系统有不小的差距。

所谓“菊厂故意混淆概念”、“连哄带蒙”等争议和嘲讽,也基本就从这开始。

但在我看来,Liteos未必是OpenHarmony 1.0最重要的核心,真正关键的点在于:

OpenHarmony 1.0具备与HarmonyOS跨设备通信的能力,并且架构上部分屏蔽了不同系统不同设备的接口。

就我个人观点,就是这看似不起眼的liteos以及跨设备通信能力,是后续一切的起点。

2、鸿蒙2.0/OpenHarmony 2.0——开发工具的起步和“套壳”的尾声

就我个人观察,OpenHarmony 2.0相比1.0上了一个台阶。

OpenHarmony 2.0支持Linux内核,API版本更新到6.0,勉强可以说有一个复杂系统的架子了。

更重要的是,鸿蒙2.0/OpenHarmony 2.0时期,菊厂就已经掏出了自家的开发者套件

虽然此时OpenHarmony很多工具(尤其是测试调试方面)还不太全,但毫无疑问是迈出了关键的一步。

这件事的重要性,大家想想也都明白:

如果连开发套件都没有,第三方开发者谁会给你开发应用?生态建设也就无从谈起了。

从代码实现的角度看,客观来说OpenHarmony 2.0仍有许多不足:

因为没有沙箱机制、不支持64位Arm、没有硬件GPU渲染……这使得纯血OpenHarmony 2.0主要停留在开发板上,难以成为真正商用的手机系统。

没记错的话,也正是这段时期应用商店上架了一批鸿蒙版应用(汽车之家鸿蒙版等)

这些应用的确是基于鸿蒙的API 6.0代码实现的,理论上可以脱离安卓在其他操作系统独立运行,(实现方式有些类似于微信小程序)。

但就实际层面而言,这些应用在搭载鸿蒙2.0的手机上运行时,应该并没有完全脱离AOSP。

对于什么是“套壳”,不同人有不同定义。

如果以“能否脱离AOSP独立运行复杂应用”作为标准,那么鸿蒙2.0/OpenHarmony 2.0恐怕是最后一个“套壳”的大版本。

可以说,鸿蒙2.0/OpenHarmony 2.0即是开发工具的起步,也是“套壳”的尾声。

3、鸿蒙3.0/OpenHarmony3.0——技术层面的质变

如果说市场层面鸿蒙生态取得质变的关键节点,我认为大概率是预计明年铺开的HarmonyOS Next;

但如果要说技术层面鸿蒙系统的最关键突破,我认为是OpenHarmony3.0。

而且OpenHarmony3.X一直在逐步完善,3.0、3.1、3.2几个版本实际变化都不小。

OpenHarmony3.0时期,鸿蒙系统在代码层面迎来了一系列关键突破:

支持arm64平台, 具备GPU硬件渲染引擎,引入沙箱机制,完善安全补丁……

可以说从这一刻开始,OpenHarmony框架就已经基本完整,具备了复杂操作系统的主要能力,不考虑生态的话已经能满足手机端的需求

到OpenHarmony3.1时期,不仅开发者套件大幅完善,还带来一个比较显著的变化:

原生应用可以一次开发编译,安装到鸿蒙3.0和openharmony 3.1的开发板上

开发层面打通后,“一次开发、多端部署”的坑填了不少,我认为长期来看对构建生态意义重大。

奈何当时舆论不怎么关注这事,所以之前我还在知乎发想法,专门提了一句:

我倒是一直在关注这块,openharmony光我…​www.zhihu.com/pin/1631256719857696768

相比之下,这一时期OpenHarmony有一个比较直观的变化更加吸引眼球:

据我了解可能是搞定了很多驱动,OpenHarmony从此可以跑在小米6、一加6T等手机上

可能是因为比较直观,贴近消费者,B站相关视频一大堆,关注度反而提升了不少……

OpenHarmony来了!小米6&一加6同刷OpenHarmony教程_哔哩哔哩_bilibili​www.bilibili.com/video/BV13o4y1H7Fj/?buvid=XYA0B40A8A38B37150CCF01DAB0BD0D6B8299&is_story_h5=false&mid=ZxG6K43PzvG0x7f5sUxIQQ%3D%3D&p=1&plat_id=114&share_from=ugc&share_medium=android&share_plat=android&share_session_id=888d6cf2-d087-4b70-9d6e-a47bdc16d60b&share_source=COPY&share_tag=s_i&timestamp=1691369022&unique_k=L7Uh6xr&up_id=522676659​编辑

其实到这一步,但凡稍微认真关注这个领域的都能感受到“套壳”、“营销”等言论的荒谬:

考虑到生态支持,鸿蒙建设早中期需要兼容AOSP,这不是从一开始就说过吗?

当初在争论是否为“套壳”时,不少人明确提出的标准不就是“能脱离AOSP独立运行并支持复杂应用”吗?

现在OpenHarmony不仅能运行、支持天气、购物、计算器等应用,甚至还能搭载到小米6等各类设备上,这还有什么可争的?

4、鸿蒙4.0/OpenHarmony 4.0——发令枪响前的最后蓄势

既然OpenHarmony3.0已经把架子搭好了,后续的工作就是持续完善和生态推进。

OpenHarmony3.0时期,开发者套件只能说该有的都有,但一些细节和功能还不太完善。

如果鸿蒙原生应用要想全面铺开,开发者套件必须做到全面覆盖,满足绝大多数开发需求。

鸿蒙4.0/OpenHarmony 4.0时期(其实也就是现在),开发套件完善工作基本做的差不多了。

甚至于,B站还有开发者做出了Openharmony版的B站,并将其安装在华为手机上。

(手机上鸿蒙OS一直有Openharmony,如果能装OH应用并运行还不能证明所谓“套壳”的荒谬,我也无话可说)

安装包、代码实现以及手机上的浏览效果,B站就有:

https://b23.tv/pJLECYz​b23.tv/pJLECYz

所以到OpenHarmony 4.0时期,技术上的核心问题其实都解决的差不多了。

我个人认为,搭载鸿蒙4.0的手机理论上都能升级到HarmonyOS NEXT。

就我在开发者大会的了解,剩下的工作可能有两大方向:

一方面,在系统底层替换的过程中,生态是最核心的问题。

目前手机上不要说第三方,连菊厂自家应用大多还是基于AOSP。

鸿蒙原生应用有,但不多。

随着“重复造轮子+部分优化”的工作逐步完善,未来肯定是要切换的,HarmonyOS NEXT发布一定程度上就是要推进这件事。

涉及到各类应用开发者,可想而知生态切换将是相当艰难的过程。

不过就我跟业内人士交流的情况看,这事的难度倒也没有很多人想象的那么高。

移动互联网生态已经高度成熟,绝大多数人的绝大多数时间都消耗在Top 100/200应用里,这些主流应用背后其实就那么几个巨头。

而且就目前信息来看,基本已经谈的差不多了。

另一方面,“一次开发、多端部署”的开发套件还需要持续推进。

参加开发者大会过程中,我跟工作人员聊过这方面。

针对这方面,鸿蒙生态推出了ArkUI开发框架、ArkTs语言等等。

据我了解,采用对应框架后“一次开发、多端部署”已经高度可用了。

针对不同设备UI还是需要有一些手动调整,但总体来说多设备适配能节省不少操作。

当时我还特意问了一句:既然未来会有底层切换,如何保证开发工作的延续性?

时间关系没有聊特别深,我理解是采用ArkUI开发框架会调用鸿蒙的API,就能够屏蔽掉底层的一些区别,开发者更多还是关注上层的代码实现。

总而言之,无论网络上怎么说,鸿蒙生态一直在推进建设,相关成果正逐步显现。

甚至不止手机/平板/穿戴,据我了解鸿蒙PC的计划也没有放弃。

未来生态全面切换的时刻,菊厂内部私下聊天时称之为“发令枪响”。

就目前信息来看,鸿蒙4.0/OpenHarmony 4.0很可能是发令枪响前的最后蓄势。

5、鸿蒙5.0/HarmonyOS NEXT——容器方案和一劳永逸二选一

其实到这一步,很多事情已经明朗化了。

菊厂已经联系国内头部大厂推纯血鸿蒙,业内很多人也都听到风声了。

目前看,不出意外的话明年大量主流应用就能完成鸿蒙版开发,OpenHarmony正式商用是顺理成章的事。

HarmonyOS NEXT具体实现方式,不外乎两种模式:

一种是把AOSP放入容器,进而能够继续兼容安卓应用,只是安卓应用性能会差一些;

另一种模式更加干脆彻底,反正麒麟芯片也回来了,直接把AOSP干掉就完了。

至于高通芯片的老手机,事已至此高通应该也开放了老款芯片的驱动接口,鸿蒙重写下相关驱动就行了。

从技术角度,很显然是第二种模式更简洁更彻底。

但从市场角度,我认为1~2年的过渡期内采用第一种模式可能性更大。

这是因为,虽然Top100/Top200应用足够覆盖普通人绝大多数需求,但人的消费习惯往往有肥尾性

Top2000之外的每个应用覆盖的人群都不多,但可能不少人都有那么一两个小众应用时不时派上用场。

这不是谈妥最头部的巨头就能解决的问题,而是大量中小企业软件团队的开发能力所限,短期内很难快速开发出鸿蒙版。

所以我认为,HarmonyOS NEXT推广过程中,很可能存在一段时间的过渡期。

过渡期内菊厂手机大概率是HarmonyOS NEXT为核心,AOSP放入容器。

届时主流应用应该已经适配鸿蒙,统一推送和强制代码审核后体验应该会有明显提升,少部分小众应用容器化后体验少许下降也就不太有所谓了。

总而言之,各家互联网大厂适配鸿蒙的消息,业界基本都已经传开了。

菊厂这套系统重构、生态渐进的方式,我认为目前看基本确定可以走通。

虽然可能存在1~2年的过渡期,虽然出海还有困难,但鸿蒙生态爆发式增长的未来已经不远了。

仅供参考!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1905155.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[数据结构] 归并排序快速排序 及非递归实现

()标题:[数据结构] 归并排序&&快速排序 及非递归实现 水墨不写bug (图片来源于网络) 目录 (一)快速排序 类比递归谋划非递归 快速排序的非递归实现: (二)归并排序 归…

antdesignvue对话框用户可移动并缩放

原贴 轻松搞定Ant Design Modal对话框拖拽缩放 - ByteZoneX社区https://www.bytezonex.com/archives/IFRuoJhd.html Ant Design 模态对话框:实现拖拽缩放功能 **子 Ant Design 是一个流行的前端 UI 框架,提供了一系列实用的组件,包括模态对…

数据结构——二叉树相关题目

1.寻找二叉树中数值为x的节点 //寻找二叉树中数值为x的节点 BTNode* TreeFind(BTNode* root, BTDataType x)//传过来二叉树的地址和根的地址,以及需要查找的数据 {if (root Null){return Null;}//首先需要先判断这个树是否为空,如果为空直接返回空if (…

Linux下fcitx框架输入法输入中文标点时为半角(英文)标点符号的解决

目录 引入解决1.打开fcitx设置2.打开全局配置3. 随便找个可以输入地方敲下快捷键 总结 本文由Jzwalliser原创,发布在CSDN平台上,遵循CC 4.0 BY-SA协议。 因此,若需转载/引用本文,请注明作者并附原文链接,且禁止删除/修…

RNN 交叉熵

RNN善于处理时序 序列数据 简单RNN 展开就是 LSTM 遗忘门f_t决定上期记忆保留多少 隐藏层 在神经网络中,隐藏层指的是除了输入层和输出层之外的层,它们的输出不会直接用于网络的最终输出,而是作为中间步骤用于提取和转换数据。因此&#x…

构件软件开发-系统架构师(二十五)

1、一路和二路公交车都将在10分钟随机到达同一车站,他们相隔四分钟的概率是()。 A0.36 B0.48 C0.64 D0.76 解析: 如果把x为1路,y为2路,则x-y4,y-x4 所以可以得到坐标 (4,0)(10,6)(0,4)(6,1…

(ECCV,2022)Mask-CLIP:从CLIP中提取自由密集标签

文章目录 Extract Free Dense Labels from CLIP相关资料摘要引言方法Mask-CLIPMask-CLIP 实验 Extract Free Dense Labels from CLIP 相关资料 代码:https://github.com/chongzhou96/MaskCLIP 论文:https://arxiv.org/abs/2112.01071 摘要 对比语言-…

PyVideoTrans:一款功能全面的视频翻译配音工具!【送源码】

PyVideoTrans是一款功能全面的视频翻译配音工具,专为视频内容创作者设计。它能够将视频中的语言翻译成另一种语言,并自动生成与之匹配的字幕和配音。支持多种语言,包括但不限于中文(简繁体)、英语、韩语、日语、俄语、…

算法010:无重复字符的最长子串

无重复字符的最长子串. - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/longest-substring-without-repeating-characters/ 使用的算法:滑动窗口 在这个…

apk反编译修改教程系列-----修改apk 解除软件限制功能 实例操作步骤解析_3【二十二】

在前面的几期博文中有过解析去除apk中功能权限的反编译步骤。另外在以往博文中也列举了修改apk中选项功能权限的操作方法。今天以另外一款apk作为演示修改反编译去除软件功能限制的步骤。兴趣的友友可以参考其中的修改过程。 课程的目的是了解apk中各个文件的具体作用以及简单…

C-11 三角剖分的调研

C-11 三角剖分算法 三角剖分就是将输入的多边形,分割成一系列互不重叠的三角形,其重要性就在这不多赘述。这个是一个别人总结的链接:http://vterrain.org/Implementation/Libs/triangulate.html 图片链接:http://www-cgrl.cs.m…

STM32点灯闪烁

stm32c8t6引脚图 开发板引脚图 GPIO端口的每个位可以由软件分别配置成 多种模式。 ─ 输入浮空 ─ 输入上拉 ─ 输入下拉 ─ 模拟输入 ─ 开漏输出 ─ 推挽式输出 ─ 推挽式复用功能 ─ 开漏复用功能 配置GPIO端口步骤:开启时钟->使用结构体设置输出模式…

Android项目中,查看项目依赖树的多种方式

1.使用预设的Task来进行查看 1.1 命令行 查看某个模块的所有依赖树: gradlew [模块名称]:dependencies 例如:gradlew app:dependencies查看某个模块的某功能的依赖树: gradlew [模块名称]:dependencies --configuration [功能名称] 例如&…

国内采用docker部署open-metadata

背景 最近看看开源的元数据管理项目,比较出名点的有open-metadata、datahub、OpenLineage、atlas。 open-metadata有1千多的贡献者,4.8K的stars,社区现在也比较活跃,支持的数据库类型还蛮多,基本市面上常见的都有支持…

C++ 函数高级——函数的占位参数

C中函数的形参列表里可以有占位参数,用来做占位,调用函数时必须填补改位置 语法: 返回值类型 函数名(数据类型){ } 在现阶段函数的占位参数存在意义不大,但是后面的课程中会用到该技术 示例:…

离线开发(VSCode、Chrome、Element)

一、VSCode 扩展 使用能联网的电脑 A,在VSCode官网下载安装包 使用能联网的电脑 A,从扩展下载vsix扩展文件 将VSCode安装包和vsix扩展文件通过手段(u盘,刻盘 等)导入到不能联网的离线电脑 B 中 在离线电脑 B 中安装…

Gitlab Fork Workflow(协作工作流)

Gitlab Fork WorkFlow(协作工作流) Fork WorkFlow用于团队间的协作开发。在开发过程中,我们都需要将最新修改的代码合并到代码库上,在代码合并之前,为了保证代码符合上传要求(符合需求、代码规范等&#xf…

PageHelper分页查询遇到的小问题

如果我们是这样子直接查询 pagehelper会拼接导我们的sql语句之后 这样子我们搜索出来的list&#xff0c;就是里面参杂了PageHelper的东西 所以我们可以直接转成我们的Page类型 但是如果我们搜索出来的是List<Blog>&#xff0c;我有些信息不想返回给前端&#xff0c;所以…

运维系列.Nginx中使用HTTP压缩功能

运维专题 Nginx中使用HTTP压缩功能 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550…

系统级别的原生弹窗窗口

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>原生的弹出窗口dialog</title><style>…