是否需要跟上鸿蒙(OpenHarmony)开发岗位热潮?

前言

自打华为2019年发布鸿蒙操作系统以来,网上各种声音百家争鸣。尤其是2023年发布会公布的鸿蒙4.0宣称不再支持Android,更激烈的讨论随之而来。
本文没有宏大的叙事,只有基于现实的考量。
通过本文,你将了解到:

  1. HarmonyOS与OpenHarmony区别
  2. 华为手机的市场占有率
  3. HarmonyOS的市场占有率
  4. 移动开发现状
  5. 鸿蒙开发优劣势
  6. 到底需不需要入坑?

1. HarmonyOS与OpenHarmony区别

HarmonyOS

移动操作系统历史

当下移动端两大巨无霸操作系统瓜分了绝大部分市场:

iOS是闭源的,只有唯一的一家厂商:Apple。
Google开放了Android基础的能力,这些能力集构成了:Android Open Source Project(简称AOSP),这块是开源免费的,任何人/公司都可以基于此进行二次开发改动。
国内各大手机厂商基于此开发出自己的系统,大浪淘沙,目前主流市场上主要手机厂商及其操作系统如下:

以上系统均衍生自AOSP,在国内使用没什么问题,若要在国外使用则需要使用Google提供的一些基础服务:统称GMS,这是需要授权的。

HarmonyOS历史与现状

华为在2019年发布了HarmonyOS 1.0 ,彼时的该系统主要应用于智慧屏、手表等设备,在2021年发布的HarmonyOS 2.0 全面应用于Android手机。
也就是这个时候华为/荣耀(未分家前)手机设备都搭载了HarmonyOS,而我们知道换了手机系统但手机上的App并没有换,照样能够正常运行。
依照华为的说法,HarmonyOS兼容Android,而部分网友认为该兼容其实就是Android套壳。
这个时候开发者无需关心鸿蒙开发,因为即使开发了Android app也能够在搭载鸿蒙系统的设备上运行。
2023年华为宣布HarmonyOS Next不再支持Android,也就是说想要在HarmonyOS Next上安装Android app是不可能的事了。
那问题就来了,作为一名Android开发者,以前只需要一套代码就可以在华为/小米/荣耀/OPPO/VIVO上运行,现在不行了,需要单独针对搭载了HarmonyOS Next的华为手机开发一个App。
若当前的App是跨端开发,如使用RN、Flutter等,那么HarmonyOS的支持力度更不可知。

OpenHarmony

从上面的描述可知,只有华为一家主推HarmonyOS,相比整个市场还是太单薄,它需要更多的厂商共同使用、共同促进新系统的发展。
因此华为将HarmonyOS的基础能力剥离出来形成了:OpenAtom OpenHarmony(简称:OpenHarmony)。
OpenHarmony是开放原子开源基金会孵化及运营的开源项目。OpenHarmony由华为公司贡献主要代码、由多家单位共建,具备面向全场景、分布式等特点,是一款全领域、新一代、开源开放的智能终端操作系统。
OpenHarmony类似于Android领域的AOSP,而HarmonyOS则是华为基于OpenHarmony开发的商业版OS。
同样的,其它厂商也可以基于OpenHarmony做改动,发布属于自己的鸿蒙商业版。 通常说的鸿蒙生态是指OpenHarmony及其衍生的商业版鸿蒙系统。

2. 华为手机的市场占有率

全球手机出货量

可以看出Android(80%)和iOS(20%)瓜分了天下。
图上没有华为,它被归入了Others里。

再看另一家的统计:

华为占用约为5%。

第三家的统计:

虽然各家统计的数据有差异,但可以看出华为在全球手机市场份额并不高。

国内手机市场占有率

这么看,华为在国内的占有率达到了1/4。

3. HarmonyOS的市场占有率

全球市场系统占有率

手机市场占有率并不代表都搭载了鸿蒙操作系统。
来看看各大操作系统的占有率。

可以看出,Android和iOS设备量很多,遥遥领先。

再细分移动端的市场占有:

同样的Android遥遥领先,此时HarmonyOS占据了3%的份额。

国内鸿蒙市场占有率

国内市场里,HarmonyOS占据高达13%,毕竟国内使用华为(荣耀)手机的存量还是蛮多的。

结论:

国内才是使用鸿蒙系统的大头市场

华为官方宣称的占有率

这里说的设备不止是智能手机,还有平板、座舱、手表等嵌入式设备。

4. 移动开发现状

iOS开发现状

iOS最先火起来的,遥想十年前,随便一个iOS开发者都能找到工作。而现在存留的iOS开发者自嘲:“Dog都不学iOS”。
以前的开发者要么转行,要么继续用"最好"的编译器(xcode)写"最优秀"的语言(OC),当然也可以用Swift,但限于系统要求,SwiftUI也没有大规模普及。
现在很少见有新鲜的血液学习iOS(也有可能iOS装备比较贵吧)了,再加上各种跨平台的框架的投入使用,原生iOS开发者的生存空间越来越小了。

Android开发现状

无独有偶,移动端的难兄难弟怎么会缺少Android呢?
一开始Android使用Java,后面全面拥抱Kotlin。
一开始画画UI,写写逻辑就能找到一份糊口的工作,现在需要去卷各种框架的底层原理,为了KPI需要去研究各种奇淫技巧的性能优化。
跨平台的框架需要去卷,KMP(已稳定)+Compose你学会了吗?RN、Flutter、Uni-app你又懂了多少?
与iOS相比Android可选择的多一些,可以选择车载等其它嵌入式设备,但多不了多少,原生Android开发者的生存空间亦不容乐观。

跨平台的开发框架移动端原生开发者可以学,前端的同学也会过来学,比如RN,Uni-app优势在前端。

行业萎缩,通常不是技术的错,技术一直在,可惜市场需求变少了

5. 鸿蒙开发优劣势

是机会还是坑?

从国内各种新闻来看:

看起来是如火如荼。

从国际的新闻看:

翻看了前几页的新闻,讨论的热度并不高,大多是搬自国内的新闻。

再说说薪资:

一看就是有夸大的成分,可能真有人达到了,但人数可能是万里挑一,只讲个例不讲普遍性没有意义。

某Boss搜一下北京的岗位:

北京的岗位也不多,而且招的都是比较资深的,北京如此,其它城市更不用说。

鸿蒙的基建

鸿蒙目前提供提供了方舟编译器,方舟语言、IDE、模拟器等一站式开发工具,开发者可以照着官方文档编写。

根据实操的结论:

  1. 各项更新比较快,导致官方的视频/ppt和实际的有些差异
  2. 模拟器有些卡顿,有点当时Android模拟器刚出来的既视感,真机买不起
  3. 排坑的文档不多,属于摸着官方教程过河

鸿蒙入门的简易程度

  1. 基于TS,前端开发方式,语言并不难入手
  2. IDE和Android Studio同出一源,入手比较快
  3. 声明式UI,画UI快,没接触过的同学需要熟悉一下(现在无论是Swift还是Kotlin都支持声明式UI,前端老早就用得飞起了)
  4. 不用再被graddle各种莫名错误折磨了
  5. 中文文档,对英语不好的同学体验比较好

6. 到底需不需要入坑?

对于任何一个操作系统来说,生态是第一位,鸿蒙也不例外。
横亘于鸿蒙面前的难关:

  1. 主流App是否愿意适配鸿蒙系统?
  2. 其它Android厂商是否愿意接入鸿蒙系统?
  3. 鸿蒙对开发者的支持完善与否?
  4. 鸿蒙是否真如宣传般的优秀?

不论鸿蒙是否成功,它对开发者最大的意义在于:

开辟了新的领域,开发者有机会吃到可能的"红利"

而是否入坑,取决于个人的考量,以下仅供参考:

  1. 如果贵司需要适配鸿蒙,那么只能入坑
  2. 如果对鸿蒙兴趣不足,只是觉得最近的热点有点高,未雨绸缪,想试试水,那么可以照着官方文档试试Demo
  3. 如果押宝鸿蒙,则需要深入鸿蒙的各项开发,而不仅仅只是流于表面,当然此种方式下需要花费更多的时间、精力、头发去探索、排坑
  4. 如果认为鸿蒙没有前途,那么也没必要对此冷嘲热讽,静观其变即可

那么,2024年了,你如何选择呢?

为了能让大家更好的学习鸿蒙 (Harmony OS) 开发技术,这边特意整理了《鸿蒙 (Harmony OS)开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙 (Harmony OS)开发学习手册》

入门必看:https://qr21.cn/FV7h05

  1. 应用开发导读(ArkTS)
  2. 应用开发导读(Java)

HarmonyOS 概念:https://qr21.cn/FV7h05

  1. 系统定义
  2. 技术架构
  3. 技术特性
  4. 系统安全

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. 构建第一个JS应用
  4. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

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

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

相关文章

使用Wireshark进行网络流量分析

目录 Wireshark是什么? 数据包筛选 筛选指定ip 使用逻辑运算符筛选 HTTP模式过滤 端口筛选 协议筛选 包长度筛选 数据包搜索 数据流分析 数据包导出 Wireshark是什么? 通过Wireshark,我们可以捕获和分析网络数据包,查看…

用ChatGPT方式编程!GitHub Copilot Chat全面开放使用

全球著名开源分享平台GitHub在官网宣布,经过几个月多轮测试的GitHub Copilot Chat,全面开放使用,一个用ChatGPT方式写代码的时代来啦! 据悉,Copilot Chat是基于OpenAI的GPT-4模型,再结合其海量、优质的代码…

GitHub Copilot 最佳免费平替:阿里通义灵码

之前分享了不少关于 GitHub Copilot 的文章,不少粉丝都评论让我试试阿里的通义灵码,这让我对通义灵码有了不少的兴趣。 今天,阿七就带大家了解一下阿里的通义灵码,我们按照之前 GitHub Copilot 的顺序分享通义灵码在相同场景下的…

【Linux 内核源码分析】GPIO子系统软件框架

Linux内核的GPIO子系统是用于管理和控制通用输入输出(GPIO)引脚的软件框架。它提供了一套统一的接口和机制,使开发者能够方便地对GPIO进行配置、读写和中断处理。 主要组件: GPIO框架:提供了一套API和数据结构&#x…

【深度学习-基础学习】Self-Attention 自注意力机制 笔记

本篇文章学习总结 李宏毅 2021 Spring 课程中关于 Self-Attention 自注意力 机制相关的内容。课程链接以及PPT:李宏毅Spring2021ML 关于 Self-Attention 机制想要解决的问题 通常来说, 我们的模型的输入会是一个vector,然后输出可能是 一个数…

python图形界面设计工具,python的图形界面gui编程

大家好,小编为大家解答python编写图形化界面的工具的问题。很多人还不知道python图形界面设计工具,现在让我们一起来看看吧! 1.根窗体 (1)创建根窗体对象 ①tkinter.Tk():创建一个根窗体对象。使用后会立即显示窗口&am…

基于 vite 创建 Vue3 项目

1、基于 vue-cli 创建 ## 查看vue/cli版本,确保vue/cli版本在4.5.0以上 vue --version## 安装或者升级你的vue/cli npm install -g vue/cli## 执行创建命令 vue create vue_test## 随后选择3.x ## Choose a version of Vue.js that you want to start the proje…

通过IP地址防范钓鱼网站诈骗的有效措施

随着互联网的普及,钓鱼网站诈骗成为一种广泛存在的网络犯罪行为。通过冒充合法网站,攻击者试图窃取用户的敏感信息。本文将探讨如何通过IP地址防范钓鱼网站诈骗,提供一系列有效的措施,以加强网络安全,保护用户免受诈骗…

审计报告翻译服务,如何确保翻译质量?

近年来,随着跨国经济活动的增多,越来越多的企业需要进行跨国审计,而审计报告的翻译就变得尤为重要。那么,审计报告翻译服务,如何确保翻译质量?  据了解,审计报告翻译是全面揭示被审计单位实质情…

【Jenkins】centos服务器部署jenkins2.426

Jenkins部署 版本选择说明 目前项目上用的版本是比较旧的,现在用不了,插件版本问题比较恶心。试过2.346,插件问题没解决, 单独找(*.hpi)插件匹配的版本太麻烦了。 前置环境部署 git 略 JDK11 该jenk…

企业招聘信息发布平台

吉鹿力招聘网是中国有名的专业招聘网站,拥有超过1500万招聘信息,涵盖了全国各地的企业招聘信息,是求职者获取新招聘信息的良好渠道。百度搜索吉鹿力招聘网就能下载并投递简历,开启求职之旅。 吉鹿力招聘网企业注册流程 首先打开…

c语言:用指针输入两个数组|练习题

一、题目 利用指针&#xff0c;输入两个数组 如图&#xff1a; 二、代码截图【带注释】 三、源代码【带注释】 #include <stdio.h> int main() { int a[50]; int b[50]; int *paa,*pbb; //输入第一组数组 printf("请输入第一组5个数字&#xff1a;…

C++ 二进制图片的读取和blob插入mysql_stmt_init—新年第一课

关于二进制图片的读取和BLOB插入一共包含五步 第一步&#xff1a;初始化 MYSQL_STMT* stmt mysql_stmt_init(&mysql); 第二步&#xff1a;预处理sql语句 mysql_stmt_prepare(stmt,sql,sqllen); 第三步&#xff1a;绑定字段 mysql_stmt_bind_param(stmt,bind); 第四…

JVM虚拟机:各种JVM报错总结

错误 java.lang.StackOverflowError java.lang.OutOfMemoryError:java heap space java.lang.OutOfMemoryError:GC overhead limit exceeded java.lang.OutOfMemoryError:Direct buffer memory java.lang.OutOfMemoryError:unable to create new native thread java.lang.OutOf…

WPF容器的背景对鼠标事件的影响

背景&#xff1a;在实现鼠标拖动窗口的过程中发现对父容器设置了鼠标拖动窗口的事件MouseLeftButtonDown private void DragWindow(object sender, MouseButtonEventArgs e) {if (e.LeftButton MouseButtonState.Pressed)DragMove(); } 问题&#xff1a;非常困惑的是&#x…

python慕课版课后题答案,python慕课作业答案

这篇文章主要介绍了中国大学慕课python测验答案&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获&#xff0c;下面让小编带着大家一起了解一下。 Flag 8月29日前学习完MOOC_Python课程&#xff0c;以下各测试题均来自于Python…

Rockchip平台Android应用预安装功能(基于Android13)

Rockchip平台Android应用预安装功能(基于Android13) 1. 预安装应用类型 Android上的应用预安装功能&#xff0c;主要是指配置产品时&#xff0c;根据厂商要求&#xff0c;将事先准备好的第三方应用预置进Android系统。预安装分为以下几种类型&#xff1a; 安装不可卸载应用安…

Axure医疗-住院板块,住院患者原型预览,新增医护人员原型预览,新增病房原型预览,选择床位原型预览,主治医生原型预览,主治医生医嘱原型预览

目录 一.医疗项目原型图-----住院板块 1.1 住院板块原型预览 1.2 新增住院患者原型预览 1.3 新增医护人员原型预览 1.4 新增病房原型预览 1.5 选择床位原型预览 1.6 主治医生原型预览 1.7 主治医生医嘱原型预览 1.8 主治医生查看患者报告原型预览 1.9 护士原型预…

008、所有权

所有权可以说是Rust中最为独特的一个功能了。正是所有权概念和相关工具的引入&#xff0c;Rust才能够在没有垃圾回收机制的前提下保障内存安全。 因此&#xff0c;正确地了解所有权概念及其在Rust中的实现方式&#xff0c;对于所有Rust开发者来讲都是十分重要的。在本文中&…

「Vue3面试系列」Vue3 所采用的 Composition Api 与 Vue2 使用的 Options Api 有什么不同?

文章目录 开始之前正文一、Options Api二、Composition Api三、对比逻辑组织Options APICompostion API 逻辑复用 小结 开始之前 Composition API 可以说是Vue3的最大特点&#xff0c;那么为什么要推出Composition Api&#xff0c;解决了什么问题&#xff1f; 通常使用Vue2开…