华为鸿蒙用什么编程语言

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

华为鸿蒙用什么编程语言

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

文章插图
华为鸿蒙用什么编程语言

文章插图
华为鸿蒙用什么编程语言

文章插图
我们再来看看华为鸿蒙的方舟编译器,从上面的图片资料我们可以得知:
鸿蒙系统与方舟编译器的思路是相似的,直接使用机器语言编写APP,取消安卓系统的ART虚拟机,直接编译为二进制机器码 。这样子做有优点也有缺点,缺点是必须有大量的静态方案、内存空间的要求更高了,优点是不需要中转,执行的速度更快了 。
其次,鸿蒙OS是用C/C++进行编写软件,所以对APP开发人员的要求提高了,这也就提高了鸿蒙建设生态链的技术要求 。
Java
这是我培训鸿蒙的一个课程内容思维导图,从下面的图片,我们可以明显的看出来Java是经常会使用或要接触到的编程语言,且鸿蒙2.0发布会表明鸿蒙OS用 Javascript 开发鸿蒙应用 。那我就主要跟大家简单分析一下鸿蒙Javascript GUI 技术栈~
华为鸿蒙用什么编程语言

文章插图
  • JS 框架层,可理解为一个大幅简化的 Vue 式 Javascript 框架
  • JS 引擎与运行时层,可理解为一个大幅简化的 WebKit 式运行时
  • 图形渲染层,可理解为一个大幅简化的 Skia 式图形绘制库
这三个构成了一套面向嵌入式硬件的 GUI 技术栈 。我个人认为对于 GUI 部分,国内凡是接触过目前主流 Hybrid 式跨端方案或 JS 运行时研发的一线开发者,都很容易从源码出发来理解它 。下面我就逐层对其做一些解读和分析 。
JS 框架层
从最顶层的视角出发,要想用「鸿蒙 2.0」渲染出一段动态的文本,你只需要编写如下的 HML(类 XML)格式代码:
<!-- hello.hml --><text Onclick="boil">{{hello}}</text>之后在同级目录编写这样的 Javascript:
// hello.jsexport 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运行时是怎么搭建出来的?