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

news2024/11/19 7:43:29

前言

自打华为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.coloradmin.cn/o/1351787.html

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

相关文章

密码学上的经典瞬间:如果当时有Python!

提到“安全”,首先想到的一定是加密。 在如今的互联网环境中,信息加密无处不在,我们早已习惯,甚至毫无感觉。 比如,通过https协议访问的各个网站的内容,QQ,微信等聊天工具之间互相发送的信息等等…

前端开发_JavaScript基础

JavaScript介绍 JS是一种运行在客户端(浏览器)的编程语言,实现人机交互效果 作用: 网页特效 (监听用户的一些行为让网页作出对应的反馈) 表单验证 (针对表单数据的合法性进行判断) 数据交互 (获取后台的数据, 渲染到前端) 服…

Android--Jetpack--WorkManager详解

2024已经到来,愿你安睡时,山河入梦。愿你醒来时,满目春风。愿你欢笑时,始终如一。愿你行进时,前程似锦,坦荡从容。 编程语言的未来? 目录 一,定义 二,特点 三&#xff0c…

【心得】PHP文件包含高级利用攻击面个人笔记

目录 一、nginx日志文件包含 二、临时文件包含 三、php的session文件包含 四、pear文件包含 五 、远程文件包含 文件包含 include "/var/www/html/flag.php"; 一 文件名可控 $file$_GET[file]; include $file.".php"; //用php伪协议 &#xff0…

【Leetcode】2487. 从链表中移除节点

文章目录 题目思路代码 题目 2487. 从链表中移除节点 思路 1、递归移除节点: 如果头节点为空,直接返回空。递归调用函数处理下一个节点 head->next。在递归返回后,判断当前节点的值是否小于之前记录的最大值 maxVal。如果小于 maxVal…

【Unity中的A星寻路】Navigation导航寻路系统四大页签详解

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

uniapp 使用wx.getFuzzyLocation获取当前的模糊地理位置

前言: 最近在进行一个小程序项目开发的时候,需要用到定位的功能,然后首先是尝试了getLocation方法,但是sccess中的内容始终无法打印,后来才知道是需要申请权限,在连续小程序后台管理员申请权限之后&#x…

【鸿蒙千帆起】《开心消消乐》完成鸿蒙原生应用开发,创新多端联动用户体验

《开心消消乐》已经完成鸿蒙原生应用开发,乐元素成为率先完成鸿蒙原生应用开发的 20游戏厂商之一。作为一款经典游戏,《开心消消乐》已经拥有 8 亿玩家,加入鸿蒙原生应用生态,将为其带来更优的游戏性能和更多创新体验。自 9 月 25…

【Math】重要性采样 Importance sample推导【附带Python实现】

【Math】重要性采样 Importance sample推导【附带Python实现】 文章目录 【Math】重要性采样 Importance sample推导【附带Python实现】1. Why need importance sample?2. Derivation of Discrete Distribution3. Derivation of Continuous Distribution3. An Example 笔者在学…

虹科方案|从困境到突破:TigoLeap方案引领数据采集与优化

导读:在数字化工厂和智能制造的时代,数据已经成为优化机器和流程的关键。然而,如何高效地收集和处理这些数据,特别是在开发、部署和生产阶段,仍是企业面临的一大挑战。虹科TigoLeap平台,作为一款引领行业变…

Windows mp4info使用教程(提取MP4盒子信息、MP4 box信息、box分析工具、atom分析工具)

参考文章:https://www.onlinedown.net/soft/617940.htm 文章目录 软件主界面打开视频文件点击左方能看到各盒子信息 软件主界面 双击打开软件: 打开视频文件 点击左方能看到各盒子信息 比我用xxd命令查看原始16进制数据方便多了。 ᅟᅠ        …

C++初阶——类与对象

目录 C宏函数 在使用宏函数时,有几个常见的错误需要注意: 宏函数在某些情况下有以下优势: 1.C宏函数 在 C 中,宏函数(Macro Function)是使用预处理器定义的宏(Macro)&#xff0…

一、HTML5简介

一、简介 超文本标记语言&#xff08;英语&#xff1a;HyperText Markup Language&#xff0c;简称&#xff1a;HTML&#xff09;是一种用于创建网页的标准标记语言。可以使用 HTML 来建立自己的 WEB 站点&#xff0c;HTML 运行在浏览器上&#xff0c;由浏览器来解析。 <!…

swift-碰到的问题

如何让工程不使用storyboard和scene 删除info.plist里面的Application Scene mainifest 删除SceneDelegate.swift 删除AppDelegate.swift里面的这两个方法 func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession…

javascript 常见工具函数(四)

31.RGB值和十六进制值之间的转换&#xff1a; &#xff08;1&#xff09;十六进制的颜色转为 RGB格式&#xff1a; /*16进制颜色转为RGB格式*/String.prototype.colorRgb function () {var sColor this.toLowerCase();if (sColor && reg.test(sColor)) {if (sColor.l…

【通讯录案例-登录功能-Segue Objective-C语言】

一、我们接下来呢,来说这个登录按钮的实现, 1.我们来实现一下这个登录按钮的一个功能啊, 比如说,当我点击“登录”了以后,我要跳到后边儿的那个TableView, 首先呢,我们来看一下示例程序,参考一下, 当我们上边这两个文本框都有值的时候, 当这两个文本框都有值了以后…

Nginx - 使用error_page实现带有图片的自定义错误页面

文章目录 概述官网文档需求实现 概述 在Nginx中&#xff0c;您可以使用error_page指令来指定当请求遇到特定错误时应当显示的自定义错误页面。为了实现带有图片的自定义错误页面&#xff0c;可以按照以下步骤操作&#xff1a; 创建错误页面&#xff1a; 首先&#xff0c;需要…

three.js 多通道组合

效果&#xff1a; 代码&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red"></div><div style"border: 1px so…

计算机毕业论文内容参考|基于区块链技术的电子健康记录系统的设计与实现

文章目录 摘要前言绪论课题背景国内外相关研究课题内容区块链技术介绍系统分析用户需求分析系统设计系统实现系统测试总结与展望摘要 本文介绍了基于区块链技术的电子健康记录系统的设计与实现。该系统旨在解决传统电子健康记录系统存在的数据安全性、数据隐私性和数据互操作性…

HTML5和JS实现明媚月色效果

HTML5和JS实现明媚月色效果 先给出效果图&#xff1a; 源码如下&#xff1a; <!DOCTYPE html> <html> <head><title>明媚月光效果</title><style>body {margin: 0;overflow: hidden;background-color: #000; /* 添加一个深色背景以便看到…