【HarmonyOS 5】初学者如何高效的学习鸿蒙?

在这里插入图片描述

一、前言

在全球科技格局风云变幻的当下,谷歌安卓系统的管控逐步收紧,加之国际形势愈发复杂,打造中国人自主的操作系统,已成为时代发展的必然要求,这不仅是突破技术瓶颈的关键之举,更是构建国内自主生态闭环的核心所在。鸿蒙操作系统,正是顺应这一趋势的前沿探索,其研发代表了我国操作系统领域的重要方向。

2021 年 6 月 2 日,华为举办鸿蒙操作系统及华为全场景新品发布会,正式发布面向智能手机的鸿蒙操作系统 2.0 版本,并且支持 Java 语言进行开发。这使得开发者能够基于 Java 语言进行鸿蒙应用的开发,极大推动了鸿蒙生态应用的发展。

自 2021 年鸿蒙发布 Java 版本起,我便开始持续关注鸿蒙生态的发展动态。在深入了解的过程中,我对鸿蒙的兴趣愈发浓厚,并于 2023 年正式投身于开源鸿蒙的开发工作,学习ArkUI和ArkTS。如今,我进一步参与到 HarmonyOS 头部应用的鸿蒙化开发中。

在这几年的开发历程中,我积累了丰富的经验,也有了诸多深刻的感悟。我深知 “真理越辩越明”,良好的学习总结与交流,不仅能促进知识框架的完善,也与代码开源的理念高度契合。

只有通过充分的交流学习与总结,才能在实践中检验真理,就如同费曼学习法所倡导的一样。因此,我希望将自己的所学、所感、所悟分享给同样在学习鸿蒙开发的同行,为大家提供有益的参考 。若是有调整的意见或者困惑的问题,欢迎与我沟通。

二、鸿蒙相关概念的扫盲

鸿蒙
特指HarmonyOS与OpenHarmony,前者是商业鸿蒙,是华为公司使用和维护的系统。后者是HW开源给开放原子基金协会的系统,任何人遵守开源协议,都可以使用和改造的系统。

HarmonyOS虽然基座是OpenHarmony,但是上层功能和使用差异也还是有的。两者虽然近似,但是并非一个东西。
两者区别详情参见:OpenHarmony和HarmonyOS区别与共性

鸿蒙相关公司
目前使用和维护开源鸿蒙OpenHarmony成长的公司有很多,例如深开鸿,润开鸿,鸿湖万联,开鸿智谷,九联开鸿等。开源鸿蒙的现在使用方向很多,例如电网,工业,物联,矿产等等。
商业鸿蒙,是华为公司自己进行迭代和维护与使用。

鸿蒙北向和南向
特指,北向应用开发,南向设备开发。设备开发多是基于开源鸿蒙。北向分OpenHarmony应用开发和HarmonyOS应用开发。

鸿蒙双框架和单框架
在 HarmonyOS NEXT 发布之前,华为手机运行的是 “双框架” 系统。其架构逻辑是鸿蒙和安卓框架共同存在,但底层基础服务仍以鸿蒙为核心,也被称为 “杂交系统”。单框架:以 HarmonyOS NEXT 为代表,是纯血鸿蒙系统,底座全线自研,去掉了传统的安卓开放源代码项目(AOSP)代码,只支持鸿蒙内核及鸿蒙系统的应用

鸿蒙HDE
华为开发者专家(HUAWEI DEVELOPER EXPERTS),经过华为官方认证。他们是华为开放能力的实践领袖,肩负着技术布道、知识赋能等责任,会在各大技术社区解答用户有关华为开发能力的相关问题,定期在社交媒体上进行线上分享,也常在线下以讲师身份分享关于华为最新技术趋势讲解。

鸿蒙HDD
UAWEI Developer Day华为开发者日,定期在国内多个城市举办开发者深度交流的活动。

仓颉
仓颉是华为鸿蒙系统中的编程语言,目前也可用于鸿蒙开发,还在起步中。

鸿蒙开发概念
主流使用ArkTS声明式开发语言,ArkUI响应式开发框架。

以下是鸿蒙应用开发的类的概念说明:

import { promptAction } from '@kit.ArkUI' // 导入系统API
import { IconView } from './IconView' // 导入自定义组件

@Entry // 装饰器,代表入口和界面的意思。
@Component // 装饰器,代表组件
struct Index {
  
  // 重写build接口进行界面或者组件布局的编写,与传统命令式编程不同,这里和Flutter类似,鱼鳞排版的布局搭建
  build() {
    // 堆叠容器控件
    Stack({
      alignContent: Alignment.BottomEnd // 小括号内为Stack的属性设置
    }) { // 花括号内是包裹的子容器
      Text("边距点击问题测试demo")
        .fontSize(50)
        .fontWeight(FontWeight.Bold)

      IconView().zIndex(1)

      Row() {
      }
      .height('100%')
      .width('100%')
      .backgroundColor(Color.Blue)
      // 点击事件
      .onClick(() => {
        // 点击事件回调
        
        // 气泡
        promptAction.showToast({
          message: "点击!"
        })
      })
    }
    // 控件的属性,多是通过点的形式进行设置
    .height('100%')
    .width('100%')
  }
}

ArkUI-X
ArkUI - X 是华为推出的跨平台 UI 框架,旨在将 ArkUI 开发框架扩展到多个操作系统平台。目前还在起步中。

三、鸿蒙学习的步骤

不管是前端,移动端转鸿蒙。还是初学者学习鸿蒙。都可参考根据以下学习路线进行鸿蒙的学习。

首先需要确定你的开发方向,是OpenHarmoy or HarmonyOS。是应用开发,还是设备开发,亦或者是系统开发?

HarmonyOS
(1)知其然才能知其所以然,先进行鸿蒙整体概念的入门和学习
鸿蒙官方开发者学堂,针对鸿蒙相关知识点,进行视频类的讲解,对应还有习题与相关认证。
https://developer.huawei.com/consumer/cn/training/result?cour...
像鸿蒙初级和高级认证,应聘鸿蒙开发多会要求。

(2)通读鸿蒙学习文档
官方文档
有详细的功能调用接口说明:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...

目前最新的API是15,指南是针对系统API进行举例说明参考demo的入口。API主要是系统API对应的详细接口和参数说明。最佳实践是官方针对热点问题,提供解决方案参考的示例和说明。
在这里插入图片描述
鸿蒙开发者官方论坛
https://developer.huawei.com/consumer/cn/forum/communityHome
问答入口,是发帖子需求技术问题讨论的渠道,目前回复还是很及时。
在这里插入图片描述
还有各大博客平台的鸿蒙社区,可根据自己使用习惯和鸿蒙的活跃度进行选择。

(3)工欲善其事必先利其器,进行开发环境和功能开发的学习
综上所述,开发者学堂、官方文档都有入门的知识点,可根据习惯进行学习。也可参考:【HarmonyOS】HarmonyOS开发环境安装和配置 https://editor.csdn.net/md/?articleId=142208211

OpenHarmony
https://gitee.com/openharmony/docs/blob/master/zh-cn/readme.md
开源鸿蒙文档,分为应用和设备。整个开源鸿蒙源码也在该项目中可看到。
在这里插入图片描述

四、根据自身定位进行定向学习

目前市面上鸿蒙开发者,多是从前端,移动端开发转向鸿蒙。也有初学者学习鸿蒙的同学。

(1)针对前端方向
首先鸿蒙的声明式开发与响应式布局,和前端Vue,React等开发语言和框架类似。所以开发思路上的门槛并不大,除了鸿蒙知识的学习,更需要补充移动端开发的思想。

这是前端开发者的弱势。因为目前市面上的鸿蒙开发工作,多是从既有的移动端进行鸿蒙化迁移,需要能看懂Android或者IOS端的代码。并且移动端开发比前端开发,对性能,内存使用,代码效率的要求可能会更高一些,这也需要一定的学习成本。

Android代码语法的学习可从Android官网或者菜鸟笔记,哔哩哔哩等网站上免费进行学习。

(2) 针对移动端开发方向
如果是Android Compose ,IOS swiftUI转到鸿蒙,都是声明式开发,学习鸿蒙的门槛会很小。只是对鸿蒙平台的系统API和思想进行学习。若不是这两种,还是传统命令式编程方向转过来,那需要先对声明式开发与响应式布局的概念进行学习。转变开发思路。

深入了解鸿蒙系统的独特架构与设计理念,对比与移动端系统的差异。这样才能如指臂使。熟悉 HarmonyOS 的开发语言如 Java、Kotlin 或 JavaScript 等,掌握 ArkUI 等开发框架的使用。参考官方丰富的文档、教程和示例代码,动手实践经典案例与小型项目。逐步积累鸿蒙开发经验,实现技术转型。

(3)针对初学者方向
初学者应先了解鸿蒙系统的架构与特性,学习相关编程语言,通过官方文档、教程及实践项目掌握 ArkUI 等开发框架,多参与社区交流以不断提升开发能力。
重点是编程语言语法的基础,开发概念的熟悉,多参与应用开发积累项目经验。

五、持续学习,敏捷迭代知识框架

因为鸿蒙在快速成长,API迭代速度很快。很多组件,路由管理,状态装饰器都在快速进化中。有的就被废弃了,需要快速学习新的方案。所以对持续学习的要求很高。

建议进行知识框架的搭建,例如通过思维导图,个人知识库,定期学习官方文档进行知识的迭代。例如可参考:
https://editor.csdn.net/md/?articleId=131387729 OpenHarmony知识图谱

在工作开发中,经常自我总结,归纳鸿蒙相关的技能和解决方案。


GeorgeGcs
1 声望0 粉丝

历经腾讯,宝马,研究所,金融。 待过私企,外企,央企。 深耕大应用开发领域十年。 OpenHarmony,HarmonyOS,Flutter,H5,Android,IOS。 目前任职鸿蒙应用架构师。 HarmonyOS官方认证创作先锋。