HarmonyOS NEXT:技术革新与生态挑战的交汇点

背景

在上周(2023年12月11日)我有幸参加了在上海举办的华为鸿蒙生态学堂创新实训营。

参加这个活动的原因是近期关于华为的HarmonyOS NEXT不再兼容Android的消息,也就是说我们的Apk无法在纯血版的HarmonyOS NEXT上运行。
随后就是一些头部的App厂商宣布启动针对鸿蒙原生应用的开发计划。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

不得不说,这一连串的消息接踵而至的时候,确实会给其它App厂商带来一种紧迫感。
我们仿佛还沉浸在对HarmonyOS NEXT放弃Android兼容性这一决策的惊讶之中,还在讨论不兼容Android是否太过冒进,生态到底能不能做起来,便已经有App厂商开始行动起来了。

那我们要不要跟进就成为了一个重要的战略决策问题。如果跟进去做,那就要考虑投入成本的问题,以及这些投入是否能在HarmonyOS NEXT成熟后得到回报。
如果HarmonyOS NEXT生态建立非常缓慢甚至失败,那我们的投入的回报很可能达不到预期,就像当年的Windows Phone一样。
然而,基于 人无我有人有我优 的基本原则,我们只能选择相信HarmonyOS NEXT的生态能够发展壮大,并提前做好准备,以便能够尽早占据这个新生市场的有利位置。

OpenHarmony和HarmonyOS的关系

首先这里解释一下 OpenHarmonyHarmonyOS 之间的关系

OpenHarmony和HarmonyOS之间的关系比较类似于Android Open Source Project (AOSP)与Android的关系。

OpenHarmony可以类比于AOSP,目前是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目

而HarmonyOS,则是在OpenHarmony的基础上,由华为进行深入开发和优化的商业版本。这个过程类似于Google将AOSP作为基础,而后国内的手机厂商例如小米、OPPO,以及华为基于AOSP开发出自己特色的MIUI、ColorOS和EMUI等系统。

OpenHarmony是开源的,意味着其它的设备厂商也可以基于OpenHarmony根据自己的需求去定制开发自己的系统。

HarmonyOS 重要节点

下面是Harmony OS发展过程中的一些重要节点,数据来源于 百度百科
这里我挑几个关键节点列举一下。

  1. 2019年8月,HarmonyOS正式发布。
  2. 2020年9月,HarmonyOS 2.0发布。
  3. 2023年2月,HarmonyOS 3.1发布。
  4. 2023年8月,HarmonyOS 4发布,同时在开发者大会上爆出了HarmonyOS NEXT的概念。
  5. 2023年12月,重量级的App厂商例如支付宝,麦当劳,网易游戏等宣布与华为合作,开启基于HarmonyOS NEXT的鸿蒙原生应用开发。

从这些关键时间节点可以看出,华为正在加速HarmonyOS NEXT的发展,并在大力推进Harmony OS的生态建立。

华为初期的策略是推动主要的App厂商适配鸿蒙系统,目前主要针对企业合作伙伴开发者提供最新的IDE和NEXT版本的SDK(API 10、API 11)。
个人开发者目前无法获取最新的IDE和SDK,预计会在2024年第一季度逐步放开权限,到时候大家都能够访问最新的文档和开发资源。

技术体系

在20年9月HarmonyOS 2.0刚发布的时候,我简单的体验了一下HarmonyOS的开发流程,当然当时并没有深入了解,只是初步了解了下其IDE以及编程语言的基本情况。

在这里插入图片描述
可以说当时HarmonyOS的技术语言体系还比较混乱(应该是为了兼容Android,以及降低过度阶段的开发成本)。
开发者可以用js,也可以用java。其IDE DevEco跟Android Studio类似都是基于Idea的开源版本开发的,这点对Android开发还是比较友好的。

如今,HarmonyOS NEXT应用开发的技术栈整体已经稳定下来了,首先Java肯定是剔除掉了,后续的开发语言就是基于TypeScript开发的一套新语言叫做 ArkTS
TypeScript是JavaScipt超集,而ArkTS就是TypeScript的超集。
对于Android开发的同学来讲上手难度也不高,因为很多概念都是类似的。

在UI框架方面,提供了一套叫做 ArkUI 的框架。ArkUI对标的就是IOS开发中的SwiftUI和Android开发中的Jetpack Compose,都是声明式UI开发框架,上手也不会很难,而且华为的文档都是中文的,看起来也没有什么太高的成本。

HarmonyOS NEXT的优缺点

在实训营中,讲师强调了技术领域中先发优势后发优势的存在。作为一个相对年轻的操作系统,HarmonyOS NEXT仍有很大的发展空间和长远的道路要走。

缺点

  • 生态系统尚在初期阶段
    • 目前的生态肯定还是不能跟Android和IOS相比的,三方库以及开发资源都还有很大的发展空间。
    • 比较依赖华为对于HarmonyOS NEXT的支持力度以及后续市场是否愿意买单存在风险。
  • 开发者社区规模较小
    • 作为一个新兴的平台,HarmonyOS NEXT的开发者社区规模相对较小,遇到问题解决起来可能需要花费更多时间和精力。
  • 市场占有率较低
    • 目前主要还是华为在推自家的HarmonyOS,跟Android和IOS相比,其市场占有率较低。
    • 由于Google本身相对 “纯粹”一些,只提供系统层面的东西。而华为自己也有手机等硬件设备的业务,因此,以我粗浅的认知认为,国内的其它手机厂商跟华为也是竞争关系,是否愿意基于OpenHarmony去定制自己的系统要打个问号,毕竟从成本和市场占有率以及目前的商业竞争等因素来讲,其它手机厂商是缺少足够的动力去做这件事情。这一点可能会影响到HarmonyOS生态的建立。
  • 新技术栈的适应
    • HarmonyOS NEXT引入了新的技术体系,对于习惯使用Kotlin和Java的Android开发者来说,适应TypeScript和ArkTS需要额外的学习和适应成本。
优点
  • 微内核设计
    • HarmonyOS NEXT采用了多内核设计,支持针对不同资源首先的设备选用适合的OS内核,为上层提供基础操作系统能力。
    • 简单讲就是手表用手表的内核,手机用手机的内核,车机用车机的内核。这样更加系统更加的轻量,性能应该会更好。
  • 更现代化的开发套件和技术体系
    • 现如今,各种编程语言的编程范式和思想都在趋同,而HarmonyOS NEXT后发的这个优势也就体现出来了,毕竟新生事物没有历史包袱,因此,HarmonyOS NEXT可以采用更现代化的开发工具以及编程思想为基础,从而规避掉一些Android存在的历史遗留问题
  • 分布式技术
    • HarmonyOS NEXT采用了先进的分布式技术,允许应用程序在多设备上共享资源和数据。包括HarmonyOS NEXT介绍的一些特性例如数据流转,多设备协同等,在实际的应用场景中还是很有优势的。
  • 一次开发,多端部署
    • HarmonyOS NEXT支持跨平台开发,提供统一的开发体验,降低开发成本,满足市场对跨平台应用的需求,有比较统一的开发体验。
  • 系统本身集成了常用SDK
    -对于一些常用的例如支付,地图,定位,扫码,TTS等SDK,HarmonyOS将其下沉至操作系统层面,提供了统一的开发体验,在包大小和功耗上有一定的优势。

结语

我并不是一个”花粉“,也比较反感无脑吹和无脑黑的一些言论。

客观来说,对于HarmonyOS NEXT后续生态的建立和发展来讲,我是心存担忧的。毕竟强如微软和诺基亚都没有把WindowPhone的生态给成功建立起来,HarmonyOS NEXT也可能面临类似的挑战。

但同时,我对华为勇于迈出这一步感到由衷的欣赏,无论是出于主动选择还是被动应对,华为的这一决策不仅是技术层面的挑战,往高了说也是国家战略层面重要的一环,在被制裁与封锁的阴影下,华为的这一决策显得尤为重要,人无我有,人有我优 才是硬道理。

作为一名开发者,也期待OpenHarmony和HarmonyOS NEXT能够蓬勃发展,早日建立起完善强大的生态。也希望自己能够在后续为国产系统生态的建立添砖加瓦,贡献自己的微薄之力。
让我们共同努力,为国产系统的繁荣和成功加油,携手前行,做大做强!

在这里插入图片描述

不能再写了,我都快被自己感动哭了,可以预见的是,2024年将成为HarmonyOS NEXT的元年,对我们这些移动开发者来说,既是机遇也是挑战。在这个技术不断演进的时代,我们每一位开发者都站在一个新的起点上。
道阻且长,大家一起加油吧。
期待未来某一天回首,我们能够感概:轻舟已过万重山


感谢阅读,觉有有帮助点赞支持,如果有任何疑问或建议,欢迎在评论区留言。如需转载,请注明出处:喻志强的博客 ,谢谢!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

opencv中叠加Sobel算子与Laplacian算子实现边缘检测

1 边缘检测介绍 图像边缘检测技术是图像处理和计算机视觉等领域最基本的问题,也是经典的技术难题之一。如何快速、精确地提取图像边缘信息,一直是国内外的研究热点,同时边缘的检测也是图像处理中的一个难题。早期的经典算法包括边缘算子方法…

windows10 php8连接sql server

一、环境安装 文章目录 一、环境安装1.安装php拓展2.在 Windows 上安装PHP驱动程序3.在 Windows 上安装ODBC驱动 二、php连接sqlserver三、注意事项数据库相关设置相关语法sqlsrv_fetch_array 的示例:sqlsrv_fetch 的示例:echo 和 print_r 的不同 所用资…

数据结构 | 查漏补缺之顺式存储和链式存储、如何评价哈希函数的好坏、链地址法、树的遍历、关键路径、完全图、连通图、迪杰斯特拉、b树

目录 顺式存储和链式存储 优缺点比较 顺序存储 ​编辑 链式存储 如何评价哈希函数的好坏 简述哈希查找中链地址法解决冲突的方法 树的遍历 关键路径 完全图 连通图 迪杰斯特拉 b树 特点: 插入(索引不能大于:最大为 M-1 个&#…

TrustGeo代码理解(六)utils.py

代码链接:https://github.com/ICDM-UESTC/TrustGeo 一、导入常用库和模块 from __future__ import print_function from distutils.version import LooseVersion from matplotlib.scale import LogisticTransform import numpy as np import torch import warnings import t…

测序名词解释

测序深度(Sequencing Depth)是指:测序得到的碱基总量(bp)与基因组(转录组或测序目标区域大小)的比值,是评价测序量的指标之一。 测序深度的计算公式为: 测序深度 &…

Java数据结构-通过数组封装-结构分析

1、默认arrayList的数组未初始化&#xff0c;长度为0&#xff0c;容量默认是10 ArrayList<Integer> arrayList new ArrayList<>();System.out.println(ClassLayout.parseInstance(arrayList).toPrintable()); java.util.ArrayList object internals: OFF SZ …

【论文极速读】LVM,视觉大模型的GPT时刻?

【论文极速读】LVM&#xff0c;视觉大模型的GPT时刻&#xff1f; FesianXu 20231210 at Baidu Search Team 前言 这一周&#xff0c;LVM在arxiv上刚挂出不久&#xff0c;就被众多自媒体宣传为『视觉大模型的GPT时刻』&#xff0c;笔者抱着强烈的好奇心&#xff0c;在繁忙工作之…

威联通硬盘休眠后修改系统定时任务

按照网上一些教程&#xff0c;成功将威联通的机械硬盘设置了自动休眠。但是发现每天有多个整点硬盘会自动唤醒&#xff0c;怀疑是系统内置的定时任务触发了硬盘唤醒。 通过查看系统日志中事件和访问记录&#xff0c;判断出一些引发硬盘唤醒的自动任务&#xff0c;将这些定时任…

学习使用echarts漏斗图的参数配置和应用场景

学习使用echarts漏斗图的参数配置和应用场景 前言什么是漏斗图漏斗图的特点及应用场景漏斗图的特点漏斗图常见的的应用场景&#xff1a; echarts中漏斗的常用属性echart漏斗代码美化漏斗图样式1、设置标题字体大小2、设置标签样式3、设置漏斗图为渐变颜色4、设置高亮效果5、设置…

自动化测试(终章)webdriver的常用api(2)以及新的开始

目录 多层框架/窗口定位 多层框架的定位 frame是什么&#xff1f; 多层窗口定位 层级定位 使用 XPath 进行层级定位&#xff1a; 使用 CSS 选择器进行层级定位&#xff1a; 下拉框处理 alert、confirm、prompt 的处理 Alert 弹窗&#xff1a; Confirm 弹窗&#xff…

vue3 elementplus左侧无限级菜单

使用的组件是 element Plus Menu 菜单 注意&#xff1a;Menu 菜单属性参数可以自己配置 链接: Menu 菜单 //父级页面 <el-container><el-aside width"320px"><el-menuopen"handleOpen"close"handleClose":default-active"…

openmediavault debian linux安装配置企业私有网盘(三 )——raid5与btrfs文件系统无损原数据扩容

一、适用环境 1、企业自有物理专业服务器&#xff0c;一些敏感数据不外流时&#xff0c;使用openmediavault自建NAS系统&#xff1b; 2、在虚拟化环境中自建NAS系统&#xff0c;用于内网办公&#xff0c;或出差外网办公时&#xff0c;企业内的文件共享&#xff1b; 3、虚拟化环…

jmeter,http cookie管理器

Http Cookie管理器自动实现Cookie关联的原理&#xff1a; (默认:作用域在同级别的组件) 一:当Jmeter第1次请求服务器的时候,如果说服务器有通过响应头的Set-Cookie有返回Cookie,那么Http Cookie管理器就会自动的保存这些Cookie的值。 二&#xff1a;当Jmeter第2-N次请求服务器的…

PyQt6 QSpacerItem弹簧控件

锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计46条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话版…

【报错栏】(vue)Module not found: Error: Can‘t resolve ‘element-ui‘ in xxx

Module not found: Error: Cant resolve element-ui in xxx 报错原因是&#xff1a; 未安装 element-ui 依赖 解决&#xff1a; npm install element-ui 运行

生物信息学分析领域领先的特制语言环境NGLess(Next Generation Less)介绍、安装配置和详细使用方法

介绍 NGLess&#xff08;Next Generation Less&#xff09;是一种用于生物信息学分析的领先的领域特定语言&#xff08;DSL&#xff09;。它旨在简化和加速NGS&#xff08;Next Generation Sequencing&#xff09;数据的分析过程。NGLess具有清晰的语法和功能&#xff0c;使用户…

带你学C语言~指针(1)

Hello,CSDN的各位家人们&#xff0c;你们好啊&#xff01;今天&#xff0c;小赵要给大家分享的C语言知识是指针&#xff0c;相信不少家人们都或多或少被指针搞得晕头转向&#xff0c;小赵一开始也是&#xff0c;但后来小赵经过不断地努力学习&#xff0c;终于将这里面的知识弄懂…

线程的介绍

首先我们来了解一下线程是什么&#xff1a; 首先我们介绍一下程序是什么&#xff1f;程序就是我们编写的代码就叫程序&#xff0c;当我们程序运行的时候则称为进程&#xff0c;在我们现实生活中哪些用到了进程&#xff0c;就比如说我们qq&#xff0c;微信&#xff0c;百度网盘…

Spring容器中scope为prototype类型Bean的回收机制

文章目录 一、背景二、AutowireCapableBeanFactory 方法 autowireBean 分析三、Spring 容器中 scope 为 prototype 类型 Bean 的回收机制四、总结 一、背景 最近做 DDD 实践时&#xff0c;遇到业务对象需要交给 Spring 管理才能做一些职责内事情。假设账号注册邮箱应用层代码流…

【注解和反射】-- 04 类加载器、运行时类的对象

反射 03 类的加载与ClassLoader 3.4 类加载器 类加载器的作用&#xff1a;将class文件字节码内容加载到内存中&#xff0c;并将这些静态数据转换成方法区的运行时数据结构&#xff0c;然后在堆中生成一个代表这个类的java.lang.Class对象&#xff0c;作为方法中类数据的访问…