您当前的位置:首页 > 电脑百科 > 程序开发 > 移动端 > 鸿蒙

成为华为鸿蒙OS开发者,应该学习什么编程语言?

时间:2021-06-24 11:14:12  来源:  作者:鸿蒙开发者老王

华为开发者大会已经结束不久,我想大家应该都知道鸿蒙系统是基于什么语言开发的了。实际上大部分操作系统的开发基本上离不开C/C++、汇编语言、JAVA这三种编程语言。不过,我相信有大部分朋友应该不知道成为鸿蒙系统的开发者,这些编程语言发挥着什么作用?应用在鸿蒙系统里的哪一方面?如果你是一名开发者,要通过哪些书籍升华知识呢?

成为华为鸿蒙OS开发者,应该学习什么编程语言?

 

linux

我们都知道鸿蒙系统是基于Linux开发的,它的源码是C++语言。由于Linux可以运行在多种硬件平台上,所以基于此开发的鸿蒙系统可以尽可能的兼容适配更多的硬件设备,开发者在上面开发应用相对来说也会更简单一些。而且鸿蒙操作系统的组成是由四部分组成的:Linux内核+麒麟处理器的运行库+编译器+虚拟机,这样Linux自然就是首选了。

C/C++

成为华为鸿蒙OS开发者,应该学习什么编程语言?

 


成为华为鸿蒙OS开发者,应该学习什么编程语言?

 


成为华为鸿蒙OS开发者,应该学习什么编程语言?

 

我们再来看看华为鸿蒙的方舟编译器,从上面的图片资料我们可以得知:

鸿蒙系统与方舟编译器的思路是相似的,直接使用机器语言编写App,取消Android/ target=_blank class=infotextkey>安卓系统的ART虚拟机,直接编译为二进制机器码。这样子做有优点也有缺点,缺点是必须有大量的静态方案、内存空间的要求更高了,优点是不需要中转,执行的速度更快了。

其次,鸿蒙OS是用C/C++进行编写软件,所以对APP开发人员的要求提高了,这也就提高了鸿蒙建设生态链的技术要求。

Java

这是我培训鸿蒙的一个课程内容思维导图,从下面的图片,我们可以明显的看出来Java是经常会使用或要接触到的编程语言,且鸿蒙2.0发布会表明鸿蒙OS用 JavaScript 开发鸿蒙应用。那我就主要跟大家简单分析一下鸿蒙JavaScript GUI 技术栈~

成为华为鸿蒙OS开发者,应该学习什么编程语言?

 

  • JS 框架层,可理解为一个大幅简化的 Vue 式 JavaScript 框架
  • JS 引擎与运行时层,可理解为一个大幅简化的 WebKit 式运行时
  • 图形渲染层,可理解为一个大幅简化的 Skia 式图形绘制库

这三个构成了一套面向嵌入式硬件的 GUI 技术栈。我个人认为对于 GUI 部分,国内凡是接触过目前主流 Hybrid 式跨端方案或 JS 运行时研发的一线开发者,都很容易从源码出发来理解它。下面我就逐层对其做一些解读和分析。

JS 框架层

从最顶层的视角出发,要想用「鸿蒙 2.0」渲染出一段动态的文本,你只需要编写如下的 HML(类 XML)格式代码:

<!-- hello.hml -->
<text onclick="boil">{{hello}}</text>

之后在同级目录编写这样的 JavaScript:

// hello.js
export default {
  data: {
    hello: 'PPT'
  },
  boil() {
    this.hello = '核武器';
  }
}

这样只要点击文本,就会调用boil方法,让PPT变成 核武器。

JS 引擎与运行时层

JS引擎和运行时之间,有什么区别与联系呢?JS引擎一般只需符合ECMA-262规范,其中没有对任何带「副作用」的平台API的定义。从setTimeout到document.getElementById到console.log再到fs.readFile,这些能执行实际IO操作的功能,都需要由「将引擎API和平台API胶合到一起」的运行时提供。

那么在「鸿蒙 2.0」里,JS运行时是怎么搭建出来的?

  • JS引擎选择了JerryScript,这是一款由三星开发的嵌入式JS引擎。
  • 每种形和<text>和<div>的XML标签组件,都对应一个绑定到JerryScript上的C++ Component 类,如TextComponent和DivComponent等。
  • 除UI原生对象外,还有一系列在JS中@system为前缀的 built-in 模块,它们提供了JS中可用的Router / Audio / File等平台能力(参见ohos_module_config.h)。

图形绘制层

JS运行时中的各种Component对象,是如何被绘制为手表等设备上的像素的呢?这就有关于「鸿蒙 2.0」中的另一个graphic_lite仓库了。可以说,这里才是真正执行实际绘制的GUI。像之前的TextComponent等原生组件,都会对应到这里的某种图形库View。它以一种相当经典的方式,在C++层实现并提供了「Canvas风格的立即模式GUI」和「DOM风格的保留模式GUI」两套API体系。总的来说,这个图形子系统的要点大致如下:

  • 图形库提供了UIView这个C++控件基类,其中有一系列形如OnClick /OnLongPress/OnDrag的虚函数。基本每种JS中可用的原生Component类,都对应于一种UIView的子类。
  • 除了各种定制化View之外,它还开放了一系列形如DrawLine/DrawCurve/DrawText等命令式的绘制方法。
  • 这个图形库具备名为GFX的GPU加速模块,但它目前似乎只有象征性的FillArea矩形单色填充能力。

为了帮助大吉尽快的熟悉了解鸿蒙OS开发应用,我给大家推荐了几本编程语言经典入门书籍,大家可以去看一看~

1.C程序设计语言

鸿蒙OS是用C/C++进行编写软件,而且在计算机发展史上,没有哪一种程序设计不用C语言。我们所熟知的“hello,world”就是这本书首次引入的,并且这一程序已经是众多程序员设计语言的第一选择!

成为华为鸿蒙OS开发者,应该学习什么编程语言?

 

2.《汇编语言》

这本书采用了全新的结构对课程的内容进行组织,对知识进行很小化分割,为读者构造了循序渐进的学习线索。汇编语言就是把0与1的集合用特殊的字母或者符号来表示,比如说01000001代表的是A,01100001代表a,于是就有字母和符号来表达一大堆的0与1,比如0100000101100001直接使用Aa来表示即可,所以汇编大大简化了二进制代码,给我们编写代码带来了极大的方便!但是计算机是不认识这些字母和符号的,所以需要一个专门的程序来把这些字母和符号来转换成0与1的代码,计算机才会执行,这个转换的程序就是编译器~

成为华为鸿蒙OS开发者,应该学习什么编程语言?

 

3.《JavaScript权威指南》

《JavaScript权威指南》主要介绍JavaScript语言的核心内容,以及web浏览器中实现的遗留和标准的DOM。比较适合有经验的开发者~

成为华为鸿蒙OS开发者,应该学习什么编程语言?

 

4.《Java从入门到精通》

顾名思义,这本书适合初学者翻阅,里的语言通俗易懂,并且有丰富的案例,全书详细介绍了使用Java语言进行程序开发要用到的知识。由浅入深,实战演练叙述:基本知识→关键技术→高级运用→新项目实战演练,合乎认知能力规律性。包含初识Java,了解Eclipse开发环境,Java語言基本,步骤操纵,字符数组,数组,类和对象,包裝类等内容。

成为华为鸿蒙OS开发者,应该学习什么编程语言?

 

5.《Linux内核设计与实现》

安卓系统是基于Linux开发,苹果IOS系统是基于Unix开发,而华为自主研发的鸿蒙系统基于Linux开发,由此可见,Linux语言的重要性。这本书诠释了Linux内核的设计与实现。想了解鸿蒙系统的开发者可以通过这本书受益匪浅,帮助他们更了解操作系统,而且提高编码中的效率和生产率。

成为华为鸿蒙OS开发者,应该学习什么编程语言?

 

6.《第一行代码Android》

《第一行代码Android》被誉为安卓开发者的学习经典,整本书一步一步、全面的介绍了安卓开发的知识和经验技巧。

成为华为鸿蒙OS开发者,应该学习什么编程语言?

 

《华为HMS生态与应用开发实战》

这本书是基于华为终端服务多年的技术积累和对移动应用生态发展的理解,结合HMS典型的开放能力和实际的业务场景,通过实战方式详细描述如何使用HMS开放能力快速完成移动应用的开放和上架。

这本书前面两章介绍HMS Core生态发展历程和HMS Core生态整体架构及接入机制等,适合所有人阅读!后面几章介绍Kit快速集成,搭建实战环境,深入讲解每个Kit的功能原理,并通过一个支撑所有Kit集成业务的场景,详解每个Kit的实战环节,包括Account Kit、IAP Kit、Push Kit、Location Kit等,以帮助开发者了解如何快速接入HMS开放的各项能力。

成为华为鸿蒙OS开发者,应该学习什么编程语言?

 

最后,我觉得成为鸿蒙OS的开发者,学什么语言不如去进行系统化学习。想成为一名鸿蒙开发者最好是有一个系统的培训,如果是自学会比较吃力,当然不是老王不推荐自学,只是系统化的学习知识会更加牢固,而且学习的速度也会比较快,节省时间~而且自学考鸿蒙应用开发证书的路途太坎坷了,不一定能拿到证书,想要进入鸿蒙OS应用开发的相关公司工作,证书是一个门槛,所以我推荐大家系统学习!

大家有想要进行系统化学习鸿蒙系统的话,可以私聊我哈。

——————

原创:老王丨鸿蒙hms开发者高级认证持证人!学习更多鸿蒙OS相关开发技术可以关注我的公众号:鸿蒙开发者老王



Tags:鸿蒙OS   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
消息称华为鸿蒙OS 3.0正式版系统将在7月下旬正式推送,而首批适配机型也正式公布,其中包括:华为P50系列、Mate 40系列、和Mate 50系列,平板方面只有华为MatePad Pro 12.6英寸2021...【详细内容】
2022-06-30  Tags: 鸿蒙OS  点击:(33)  评论:(0)  加入收藏
近一段时间,几个事情又将华为拉到了大家的眼前,一个是华为终于要出新机了,华为Nova10系列已经得到官宣,预计六月底上市,还有就是华为mate50系列的消息越来越多,从曝光的消息来看发...【详细内容】
2022-06-14  Tags: 鸿蒙OS  点击:(98)  评论:(0)  加入收藏
相信大家都知道,在最近一段时间,有网友曝光了鸿蒙OS3.0更新日志,在鸿蒙OS系统3.0版本发布前夕,意外曝光了新版鸿蒙OS系统更新日志,那么将10月下旬发布新版鸿蒙OS系统究竟都有哪些...【详细内容】
2021-10-22  Tags: 鸿蒙OS  点击:(1236)  评论:(0)  加入收藏
华为开发者大会已经结束不久,我想大家应该都知道鸿蒙系统是基于什么语言开发的了。实际上大部分操作系统的开发基本上离不开C/C++、汇编语言、Java这三种编程语言。不过,我相...【详细内容】
2021-06-24  Tags: 鸿蒙OS  点击:(271)  评论:(0)  加入收藏
声明:本文不涉及任何系统破解、软件破解!全部软件均使用官方应用商店正规发布的APP,目的是让华为手机用户也能使用谷歌应用服务,方便国内用户出国或者海外华为用户工作学习使用...【详细内容】
2021-06-18  Tags: 鸿蒙OS  点击:(1722)  评论:(0)  加入收藏
当华为公司公布鸿蒙OS系统存在的那一刻,国内就有众多人开始关注这一新系统了,不仅仅华为手机用户非常重视,就连普通的网友也很感兴趣,因为鸿蒙OS系统不像华为此前基于安卓深度优...【详细内容】
2021-05-13  Tags: 鸿蒙OS  点击:(131)  评论:(0)  加入收藏
鸿蒙OS系统自发布后,得到了广大网友的关注,最近也有不少华为手机用户,也收到了鸿蒙OS系统2.0.0.53开发者版本的更新,从网友分享的系统更新截图来看,此次版本的更新,主要在应用软件...【详细内容】
2021-05-12  Tags: 鸿蒙OS  点击:(220)  评论:(0)  加入收藏
最近,伴随着华为鸿蒙 OS2.0开发版开始推出的内测版本接近尾声,距离公开内测还有两天的结束了。但网络上还有很多关于有关鸿蒙 OS2.0操作系统铺天盖地的新闻。除了 iOS, Androi...【详细内容】
2021-04-29  Tags: 鸿蒙OS  点击:(283)  评论:(0)  加入收藏
大家好我是南极风,两年内国外对中国的封锁打压日益严重,基本芯片系统都被掐脖子,国内对系统芯片重视起来,PC桌面系统:统信UOS系统生态逐步完善,能瞒住日常上网办公使用能替代WIN系...【详细内容】
2021-03-29  Tags: 鸿蒙OS  点击:(260)  评论:(0)  加入收藏
很快就要进入4月份,按照华为消费者业务CEO余承东的说法,届时,华为旗舰手机可陆续升级鸿蒙OS。现在,华为鸿蒙OS 2.0手机更新官方适配计划曝光。 根据博主@菊厂影业Fans 爆料称,最...【详细内容】
2021-03-26  Tags: 鸿蒙OS  点击:(327)  评论:(0)  加入收藏
▌简易百科推荐
近日,HarmonyOS 2推出全新版本,本次带来了AI隐私保护、图库、服务中心等众多特性新升级,欢迎大家体验。 鸿蒙系统现在越来越完善,适配的机型也越来越多,大家赶快看看自己的机...【详细内容】
2022-05-11  中关村在线    Tags:鸿蒙系统   点击:(105)  评论:(0)  加入收藏
在开始本章正式内容之前先补充讲一下前面章节没有讲到的一个小细节问题。在我们每次关闭DevEco Studio不要直接点击右上角的关闭按钮,而是选择菜单“文件 > 关闭项目” 这样...【详细内容】
2022-04-12  李景能    Tags:JavaScript UI   点击:(222)  评论:(0)  加入收藏
下载开发工具:https://developer.harmonyos.com从链接 https://developer.harmonyos.com/cn/docs/documentation/doc-guides/document-outline-0000001064589184获得开发指南...【详细内容】
2022-02-16  活力行动    Tags:HarmonyOS   点击:(118)  评论:(0)  加入收藏
今天继续分享有关 HarmonyOS 系统的开发组件布局类的知识,我们将在此系统上进行 App 应用开发,主要内容是讲常用的组件布局类有哪些以及它们的使用方式。分享的逻辑是先学习布...【详细内容】
2022-02-07  Candy.W    Tags:HarmonyOS   点击:(113)  评论:(0)  加入收藏
今天我们来谈谈当下最火爆的万物互联的操作系统&mdash;Harmony OS,这是国人的骄傲,也是每一个中华儿女值得去学习和研究的国产操作系统。在这里主要是想通过自己所写的一个小...【详细内容】
2022-02-04  Candy.W    Tags:HarmonyOS   点击:(266)  评论:(0)  加入收藏
百度地图开放平台现在也开始推出自己的HarmonyOS地图SDK轻量版,这表示我们的百度地图开发者也能在HarmonyOS系统开发环境中接入百度地图的地图服务功能,而且安卓开发工程师也...【详细内容】
2021-12-30  猪小P数码空间    Tags:鸿蒙APP   点击:(440)  评论:(0)  加入收藏
在上一篇帖子《使用Python开发鸿蒙设备程序(1-GPIO外设控制)》中,已经成功的使用 Python 对 GPIO 上的外设进行了控制。这其实不是什么大不了的事,从功能的角度也着实不值得炫耀...【详细内容】
2021-09-23  鸿蒙开发者老王  微信公众号  Tags:开发鸿蒙   点击:(208)  评论:(0)  加入收藏
鸿蒙编程要用到Java,现在还是菜鸟阶段,先练基础吧。而且白天要工作,只能晚上学习,希望能坚持下去。根据教程,这次提供了一个for语句,以前大学时学过,感觉应该比较简单,先打开记事本...【详细内容】
2021-06-25  浮云终散尽    Tags:鸿蒙系统   点击:(293)  评论:(0)  加入收藏
华为开发者大会已经结束不久,我想大家应该都知道鸿蒙系统是基于什么语言开发的了。实际上大部分操作系统的开发基本上离不开C/C++、汇编语言、Java这三种编程语言。不过,我相...【详细内容】
2021-06-24  鸿蒙开发者老王    Tags:鸿蒙OS   点击:(271)  评论:(0)  加入收藏
鸿蒙开始于 2012 年,虽一开始定位于物联网方向,但到如今,已经发展为一款可兼容 Android 应用的跨平台操作系统. 最新的 2.0 的官方描述是: HarmonyOS 是新一代的智能终端操...【详细内容】
2021-06-18  燚磕工作室    Tags:HarmonyOS   点击:(592)  评论:(0)  加入收藏
站内最新
站内热门
站内头条