不吹不黑,辩证看待开发者是否需要入坑鸿蒙

前言

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

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

1. HarmonyOS与OpenHarmony区别

HarmonyOS

移动操作系统历史

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

以上系统均衍生自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及其衍生的商业版鸿蒙系统。
OpenHarmony源码

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

全球手机出货量

image.png
可以看出Android(80%)和iOS(20%)瓜分了天下。
图上没有华为,它被归入了Others里。
点击查看数据来源

再看另一家的统计:
image.png
华为占用约为5%。
点击查看数据来源

第三家的统计:
image.png
点击查看数据来源

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

国内手机市场占有率

image.png
点击查看数据来源

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

3. HarmonyOS的市场占有率

全球市场系统占有率

手机市场占有率并不代表都搭载了鸿蒙操作系统。
来看看各大操作系统的占有率。
image.png
点击查看数据来源

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

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

点击查看数据来源
同样的Android遥遥领先,此时HarmonyOS占据了3%的份额。

美国市场占有率

image.png
image.png
可以看出,在美国,Android、iOS势均力敌,唯二的存在。

印度市场占有率

再看神秘的东方大国数据:
image.png

image.png
由此可见,在印度,Android才是和咖喱最配的存在,iOS还是太耗家底了。
怪不得小米等一众国内厂商去卷印度了,市场大大滴有,就看能不能躲过印度的罚款。。。

国内鸿蒙市场占有率

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

结论:

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

华为官方宣称的占有率

image.png
点击查看数据来源

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

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. 鸿蒙开发优劣势

是机会还是坑?

从国内各种新闻来看:
image.png
image.png
看起来是如火如荼。

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

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

某Boss搜一下北京的岗位:
img_v3_026m_8d70f837-9ff5-4c81-a250-6b5cf7b3198g.jpg

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

鸿蒙的基建

image.png

鸿蒙目前提供提供了方舟编译器,方舟语言、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年了,你如何选择呢?

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【力扣题解】P106-从中序与后序遍历序列构造二叉树-Java题解

👨‍💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P106-从中序与后序遍历序列构造二叉树-Java题解🌏题目描述💡题…

「网络编程」其他重要的协议或技术_ DNS协议 | ICMP协议 | NAT技术

「前言」文章内容是DNS协议、ICMP协议、NAT技术的讲解。 「归属专栏」网络编程 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、DNS协议1.1 背景1.2 域名简介1.3 域名解析的过程 二、ICMP协议2.1 ICMP简介2.2 ping命令2.3 traceroute命令 三、NAT技术3.1 NAT技术背景3.2 …

一起学Elasticsearch系列-写入原理

本文已收录至Github,推荐阅读 👉 Java随想录 微信公众号:Java随想录 文章目录 写入过程写操作写流程写一致性策略 写入原理RefreshMergeFlushTranslog图解写入流程 ES作为一款开源的分布式搜索和分析引擎,以其卓越的性能和灵活的扩…

跳跃表原理及实现

一、跳表数据结构 跳表是有序表的一种,其底层是通过链表实现的。链表的特点是插入删除效率高,但是查找节点效率很低,最坏的时间复杂度是O(N),那么跳表就是解决这一痛点而生的。 为了提高查询效率,我们可以给链表加上索…

Java EE Servlet之Cookie 和 Session

文章目录 1. Cookie 和 Session1.1 Cookie1.2 理解会话机制 (Session)1.2.1 核心方法 2. 用户登录2.1 准备工作2.2 登录页面2.3 写一个 Servlet 处理上述登录请求2.4 实现登录后的主页 3. 总结 1. Cookie 和 Session 1.1 Cookie cookie 是 http 请求 header 中的一个属性 浏…

JVM工作原理与实战(三):字节码文件的组成

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、基础信息 1.Magic魔数 2.主副版本号 3.其他信息 二、常量池 1.案例解析 三、方法 1.方法介绍 2.案例解析 四、字段 五、属性 总结 前言 JVM作为Java程序的运行环境&…

什么是JavaScript

文章目录 一、❄️什么是JavaScript?二、❄️JavaScript的特点三、❄️JavaScript的组成🧫1、核心(ECMAScript)🧿2、文档对象模型(DOM)🥏3、浏览器对象模型(BOM&#xff…

linux 中 ext2文件系统实现

ext2文件系统结构 图片的svg下载链接(图中关于buffer的部分,上下两部分是重复的,是从不同维度下看的buffer结构) linux内核本身不提供ext2文件系统的格式化功能,可以参考busybox中对mkfs.ext2的实现(mkfs.…

msvcp140_1.dll丢失怎样修复,缺失msvcp140_1.dll是什么原因

在日常使用电脑的过程中,我们经常会遇到一些错误提示,其中之一就是“msvcp140_1.dll丢失”。那么,msvcp140_1.dll究竟是什么文件?为什么会出现丢失的情况?又该如何解决这个问题呢?本文将详细介绍msvcp140_1…

浅谈技术架构的演进过程

前言 最近在学习Redis、Doctor相关技术知识,它们与分布式系统有着很大的关系。 而对于分布式系统,它本身就是随着业务的不断推进,技术架构不断演进而得到发展和实现的。而所谓的分布式系统,实际上就是想办法引入更多的硬件资源&am…

D47|动态规划-子序列part2

392.判断子序列: 初始思路: 左为判断公共子序列,右为判断子序列,感觉代码完全可以套用,如果公共子序列的长度是较短的字符串的长度的话即输出true,如果不是即输出false。 class Solution {public boolean…

事件循环的理解

1.单线程 Js是一个单线程的语言,代码只能一行一行去执行,遇到同步的代码就直接执行了,如果遇到异步的代码怎么办? 不可能等到异步的代码执行完,在去执行后面同步的代码。 2.主线程 遇到同步的代码,就在主线程里面直接执行了。 3.任务队列 遇到异步的…