纯血鸿蒙「扩圈」100天,酝酿已久的突围
坦白讲,去年参加华为开发者大会看到HarmonyOS NEXT(仅运行鸿蒙原生应用,所以也称作「纯血鸿蒙」)的时候,小雷也没料想到鸿蒙原生应用生态的发展速度会如此之快。
9月25日,华为正式对外宣布启动HarmonyOS NEXT计划,鸿蒙原生应用全面启动,接着便是这风起云涌的「鸿蒙100天」:
美团、支付宝、中国国航、中国银联、哔哩哔哩、米哈游等各领域头部伙伴官宣启动鸿蒙原生应用开发;小红书、爱奇艺走得更快,相继宣布完成了鸿蒙原生应用Beta版开发;抖音、百度虽尚未官宣,但已在招聘市场发布鸿蒙开发者岗位。
鸿蒙开发者逆势膨胀,成为人才市场香饽饽,待遇远高行业均值,开发者们涌入华为开发者官网,创造了一天之内新增万名鸿蒙开发者注册的火爆现象。多所985/211高校开设鸿蒙课程,其中南京大学更是直接让鸿蒙课程替代了原来的安卓课程。
还有媒体消息,华为将在1月18日举办重要的鸿蒙活动,届时可能会公布关于更多伙伴、开发者和用户体验的消息。
至此完全可以说,鸿蒙生态链条活力已全面激发,纯血鸿蒙「扩圈」100天,新世界曙光已现。
操作系统不难,难的是生态
操作系统的重要性不言而喻,但就如美团联合创始人王慧文在2020年松湖对话中所言,「做生态的难度堪比造原子弹」,开发一套操作系统不是最大的挑战,真正的挑战在于构建和维持强大的生态。
在今天这个时代,操作系统的成功与否,很大程度上取决于其应用生态是否能满足用户的广泛需求。
在Windows 10发布时,微软就希望通过UWP(Universal Windows Platform)统一Windows PC、手机、Xbox游戏主机、HoloLens等设备的应用生态。尽管想法很好,UWP最终因为缺乏强大的应用生态而难以为继,到2022年秋天,微软已经在开发文档中敦促开发者转向全新的Windows App SDK,基本宣告了UWP生态的死亡。
即便是微软,要在极其成熟的Windows PC生态之上「另起高楼」也是非常困难的。华为终端业务软件部总裁龚体就指出,「如果说打造鸿蒙操作系统是三大战役的话,目前已经完成了两个:鸿蒙底座已有1亿多行代码、2万多API;7亿多鸿蒙生态设备。第三个战役则是生态。生态成,则鸿蒙成!」
在硬件上,操作系统厂商或许还能采取自主开发的方式,在软件方面不可能全部由自己开发,唯一的选择就是号召伙伴加入,引申下来的问题是如何培养、吸引更多鸿蒙开发人才,开发丰富的应用以满足消费者体验,进而吸引更多用户使用。
但如何吸引生态链上的开发者、伙伴加入,而盘活伙伴、开发者、用户的生态链条,正是打造一个生态最难的地方。
而事实上,鸿蒙生态已蓄力四年。
四年布局,一朝收官
在围棋里,一局棋通常会被分为布局、中盘、收官(官子)三个阶段。不同于中盘和收官,布局阶段因为往往落子较少,无法作精确的计算,所以极为考验棋手的大局观。
从这个角度来看,华为无疑是一位极具大局观的「棋手」。
今天回头再看过去100天鸿蒙生态取得的突破,显然不是一次无缘由的爆发,而是一场蓄力已久的冲刺。
2019年8月,华为消费者业务CEO余承东在华为开发者大会上发布了鸿蒙操作系统HarmonyOS,至今已迭代至HarmonyOS 4.0版本。为保证日常使用,目前用户可用的鸿蒙版本均可兼容安卓,但鸿蒙原生的种子却是在2019年就早早种下。
2019年开始,华为就在紧密接洽鸿蒙生态伙伴,与其签署鸿蒙应用开发协议。
四年之后的2023年9月,华为余承东宣布HarmonyOS NEXT蓄势待发,鸿蒙原生应用全面启动。而后鸿蒙生态捷报频传,合作企业纷纷宣布或启动、或完成鸿蒙原生应用Beta开发,至今,TOP200应用中已有超百个启动了鸿蒙原生适配工作。
开发者是创造生态活力的源泉,华为很早就开始培养和聚集鸿蒙开发者。
2020年,华为挑选了一批外部开发者先行接触内部代码,让他们从开发者专业视角为鸿蒙布道。过去几年间,华为密集举办开发者活动,组织了面向开发者的大赛、培训认证和沙龙,帮助开发者成长和进一步融入鸿蒙生态。另据统计,仅过去三年,华为就参与了超过100所高校的150多个课程项目,今天还在继续增加。
2020年,华为还升级了「耀星计划」,投入10亿美元激励开发者创新,并在过去三年不断升级,于2022年增加了对接入鸿蒙原子化服务(后更名为元服务)卡片、华为支付等方面开发者伙伴的激励。
2023年8月,华为又推出「鸿飞计划」(鸿蒙生态伙伴发展计划),面向鸿蒙原生适配伙伴提供资源扶持。
到2023年8月,已经有超过220万开发者投入到鸿蒙生态的开发,超过7亿台鸿蒙生态设备,这也是华为全面推动鸿蒙原生应用开发的底气所在。加之华为Mate 60系列打响了手机回归的关键一枪,汽车销量突飞猛进,年营收重回7000亿元,都在为鸿蒙生态打下坚实的发展基础。
鸿蒙千帆起,生态大局定
过去两个月内,支付宝、美团、高德地图、哔哩哔哩、中国银行、中国银联、中国国航、原神等18个领域的主流应用相继加入鸿蒙原生应用开发行列;小红书、爱奇艺、同花顺等App完成了鸿蒙原生应用Beta版的开发;航旅纵横、360浏览器等App也完成了鸿蒙原生应用核心版本的开发。
与主流应用相呼应,互联网「老钱」们纷纷表态。
搜狐集团董事长张朝阳在跨年演讲中断言「鸿蒙将引领操作系统下一轮变革」。360集团创始人、董事长周鸿祎更是公开力挺,「在任何情况下都会支持华为,相信鸿蒙会成为中国最大的操作系统,鸿蒙原生必将成功」。
**在人才方面,鸿蒙开发者更是逆势而上,成为招聘市场的香饽饽。**除了已经官宣的合作企业紧急招聘鸿蒙开发者,字节、百度、WPS等还未官宣的企业也在悄悄鸿蒙开发者岗位信息,鸿蒙开发者待遇普遍优于市场均值。
市场的正向激励让开发者群体变得更加踊跃,鸿蒙开发者注册数量甚至单日新增1万。不难想象,随着厂商的进一步扩大招聘以及更多鸿蒙开发者的进入,鸿蒙原生应用的数量、丰富度还会加速增长。
但长远来看最重要的其中一点还是「人才厚度」。在持续推进高校联合培养开发者的同时,有越来越多高校和学生拥抱鸿蒙生态。
据统计,包括清华大学、哈尔滨工业大学、西安交通大学等在内的23家985高校、46家211高校都已经或即将开设鸿蒙相关课程,南京大学就开设了《移动互联网软件工程》课程,将HarmonyOS作为课程核心,替换了原有的安卓开发课程。
为了能让大家更好的学习鸿蒙 (Harmony OS) 开发技术,这边特意整理了《鸿蒙 (Harmony OS)开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05
《鸿蒙 (Harmony OS)开发学习手册》
入门必看:https://qr21.cn/FV7h05
- 应用开发导读(ArkTS)
- ……
HarmonyOS 概念:https://qr21.cn/FV7h05
- 系统定义
- 技术架构
- 技术特性
- 系统安全
如何快速入门?:https://qr21.cn/FV7h05
- 基本概念
- 构建第一个ArkTS应用
- 构建第一个JS应用
- ……
开发基础知识:https://qr21.cn/FV7h05
- 应用基础知识
- 配置文件
- 应用数据管理
- 应用安全管理
- 应用隐私保护
- 三方应用调用管控机制
- 资源分类与访问
- 学习ArkTS语言
- ……
基于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.……
相关文章:

纯血鸿蒙「扩圈」100天,酝酿已久的突围
坦白讲,去年参加华为开发者大会看到HarmonyOS NEXT(仅运行鸿蒙原生应用,所以也称作「纯血鸿蒙」)的时候,小雷也没料想到鸿蒙原生应用生态的发展速度会如此之快。 9月25日,华为正式对外宣布启动HarmonyOS NE…...

UICollection Compositional Layout全详解
本文字数:8325字 预计阅读时间:45分钟 01 Collection View Layout全详解 UICollectionView在iOS中是构建复杂布局的强大工具。iOS13中引入的 UICollectionViewCompositionalLayout为创建自定义布局提供了全新的可能性。本文将深入探讨Compositional Lay…...
单例模式的模板
参考了网上的一些单例模式,自己也写一个模板。 要点: 线程安全性单例对象的唯一性 #include <mutex> //在模板类 Singleton 中,可以定义单例模式的实现细节 template <typename T> class Singleton { public://通过删除拷贝构造…...

C#基础-空处理
在c#中,值对象是没有办法赋值为null的。比如说,你想要定义一个布尔值,你的赋值数据要么得是true、要么就得是false,默认情况下我们永远没可能给这个布尔赋值为null,即使只是对这个变量进行声明而不初始化数据ÿ…...

测试平台开发vue组件化重构前端代码
基于 springbootvue 的测试平台开发 继续更新(人在魔都 T_T)。 这期其实并不是一个详细的开发过程记录,主要还是针对本次前端重构来聊聊几个关注点。 目前重构的总进度在80%,重构完的页面没什么变化,再回顾一下。 一…...

龍运当头--html做一个中国火龙祝大家龙年大吉
🐉效果展示 🐉HTML展示 <body> <!-- partial:index.partial.html --> <svg><defs><g id=...

Dockerfile语法和简单镜像构建
Dockerfile是一个用于定义Docker镜像的文本文件,包含了一系列的指令和参数,用于指示Docker在构建镜像时应该执行哪些操作,例如基于哪个基础镜像、复制哪些文件到镜像中、运行哪些命令等。 Dockerfile文件的内容主要有几个部分组成,…...

uniapp使用wxml-to-canvas开发小程序保存canvas图片
微信小程序官方解决方案:wxml-to-canvas 使用wxml-to-canvas要知道一些前提条件 1、只能画view,text,image 2、每个元素必须要设置宽高 3、默认是flex布局,可以通过flexDirection: "column"来改变排列方式 4、文字 必…...
关于数据库切换的麻烦
背景介绍 现项目使用了两个数据源,分别为A、B,两个数据库的数据结构并不相同,数据库A是用来做查询一些基本信息的,数据库B是用来保留业务操作数据的。后端是在mapper层用DS注解来区分哪些地方用数据库A,而哪些地方用数…...

Qt/QML编程学习之心得:Linux下读写文件File(24)
在Linux嵌入式系统中,经常会使用Qt来读写一个文件,判断一个文件是否存在,具体如何实现呢? 首先,要使用linux系统中相关的头文件: #include <unistd.h> #include <stdio.h> #include <stdlib.h> 其次,判断路径是否存在, if(!dir.exists()){mkdir(…...

【Vue2+3入门到实战】(22)VUE3之组合式API - setup、reactive和ref函数、computed、watch、生命周期函数详细讲解
目录 一、组合式API - setup选项1. setup选项的写法和执行时机2. setup中写代码的特点3. <script setup>语法糖 二、组合式API - reactive和ref函数1. reactive2. ref3. reactive 对比 ref 三、组合式API - computed四、组合式API - watch1. 侦听单个数据2. 侦听多个数据…...
如何在互联网上找到你想要的数据?
互联网时代,信息爆炸,怎么在网上查到到自己想要的信息已经变难了。毕竟经常搜索的内容前几页都是广告。 那么如何在大量的广告和垃圾信息中获取到自己想要的信息呢? 首先,明确自己的需求,比如你想找哪个方面的数据,…...
揭秘淘宝商品详情API如何助力电商创新发展
淘宝商品详情API是淘宝开放平台提供的一种数据接口服务,能够获取到淘宝网商品详情的各种信息,包括商品标题、价格、销量、评价等。通过淘宝商品详情API,开发者可以轻松地获取到这些数据,并利用这些数据进行商业分析和应用开发。 …...
vue element plus Space 间距
虽然我们拥有 Divider 组件,但很多时候我们需要不是一个被 Divider 组件 分割开的页面结构,因此我们会重复的使用很多的 Divider 组件,这在我们的开发效率上造成了一定的困扰。 间距组件就是为了解决这种困扰应运而生的。 基础用法# 最基础…...

【驱动序列】C#获取电脑硬件之CPU信息,以及它都有那些品牌
欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是是《驱动序列》文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识…...

目标检测-One Stage-YOLO v3
文章目录 前言一、YOLO v3的网络结构和流程二、YOLO v3的创新点总结 前言 根据前文目标检测-One Stage-YOLOv2可以看出YOLOv2的速度和精度都有相当程度的提升,但是精度仍较低,YOLO v3基于一些先进的结构和思想对YOLO v2做了一些改进。 提示:…...

安泰ATA-4014高压功率放大器在传感器脉冲涡流检测中的应用
传感器在工程领域起着至关重要的作用,能够实时获取各种物理量的信息。而功率放大器作为传感器信号处理的重要组成部分,广泛应用于各种测量和控制系统中。本文将探讨功率放大器在这一领域的重要性和作用。 首先,了解传感器脉冲涡流检测的基本原…...

Axure全面指南:正确打开并高效使用的步骤!
AxureRP是目前流行的设计精美的用户界面和交互软件。AxureRP根据其应用领域提供了一组丰富的UI控制。作为Axure的国内替代品,即时设计可以在线协作,浏览器可以在无需下载客户端的情况下打开和使用。如果以前使用Axure,很容易切换到即时设计。…...

ts axios 指定返回值类型,返回数据类型不确定该怎么办 typescript
ts axios 指定返回值类型,返回数据类型不确定该怎么办 typescript 转到 ts 以来,一直有个问题困扰着我,就是每次用 axios 获取数据时,返回值 res 的类型都不能确定,这就导致编辑器一直提示我: 原因 原因是…...
判断是否是json字符串
一、在isJson.js文件里创建一个isJson类并抛出 /*** isJson 类用于判断一个字符串是否为有效的 JSON 字符串。* class isJson* param {string} str - 要判断的字符串。* returns {boolean} 如果字符串是有效的 JSON 字符串,则返回 true;否则返回 false。…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)
cd /home 进入home盘 安装虚拟环境: 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境: virtualenv myenv 3、激活虚拟环境(激活环境可以在当前环境下安装包) source myenv/bin/activate 此时,终端…...