本文主要介绍看了就会的Harmony APP开发。 java
openharmony.gitee.com/openharmonygit
华为鸿蒙系统,Harmony OS,是能够在不一样类型的终端设备上部署的分布式操做系统。 19年华为开发者大会正式公布,20年华为开发者大会发布2.0版本并开源。编程
部署于手机的鸿蒙系统应该明年初正式面世。ubuntu
“考虑到开发效率、编译效率、运行效率、学习成本、编译后包体积,华为想要追求一个平衡,咱们也是在探索中。”——华为专家windows
对于开发者而言,Harmony应用开发和Android应用开发区别不大,甚至能够说是看了就会。安全
IDE:DevEco Studio,基于IntelliJ IDEA,目前仅有Windows版本。markdown
开发语言:Java、JS、C++!框架
具体如何进行鸿蒙应用开发,能够参考论坛当天的截图。mvvm
工程目录结构能够说和Android一模一样: 一样采用配置清单+java+xml的模板:
xml布局实现:
生命周期:
触摸事件:
跨设备流转:
项目目录结构:
编程语言
相信在座各位Android开发者们已经大概知道如何进行Harmony APP开发了。能够说几乎和Android开发一致,我的认为华为这样设计是共赢的:
与咱们平常接触的Android App开发不一样的是,Harmony App开发多了一个“跨设备流转”——其实基本上能够把HarmonyOS当作一个物联网操做系统,因此华为在论坛上花了很大篇幅介绍软总线,较详细地介绍了Harmony APP在多设备之间通讯的协议模型和开发方式,并展现了部分API,反复强调“一行代码”搞定设备无缝通讯。
协议模型: 开发模型:
API示例:
这三种市面上很是主流的编程语言在安卓也是占据了最重要的位置:
而根据华为专家的介绍,在HarmonyOS中,这三种语言在应用开发过程当中的使用场景和Android相似,但也有所区别:
华为以前就推出了方舟编译器,提供了全新的系统及应用的编译和运行机制,从动态编译变为静态编译,将Java直接编译成机器码,完全消除了虚拟机动态编译的额外开销,实现了开发和运行效率的兼容并举。
根据专家介绍,方舟编译器将来会支持编译JS代码,因此在Harmony应用开发中,JS既不是用于H5,也不一样于React-Native这种JS调原生的机制,JS会被编译成字节码运行在华为自行研发的VM上。
有点矛盾,明明说方舟编译器将高级语言直接编译成机器码,为何又说JS会编译成字节码运行在VM上,华为专家的说法是两者结合起来:
两种编译流派的优缺点基本互补,方舟编译器可能采用”结合式“的编译方案。
现场也有同窗问及华为是否考虑在鸿蒙上提供自研的新编程语言,专家的说法是目前用于Harmony应用开发的Java+JS都更像是现有编程语言的一种子集加强版本,而不是一种新语言。
关于自研新编程语言,华为须要基于HarmonyOS的发展状况再做考虑:编程语言须要考虑开发效率、编译效率、运行效率、学习成本、编译后包体积等等,而华为想要追求一个平衡,目前也是在探索中。
在自研操做系统、编译器的过程当中,华为老是强调”结合“、”平衡“,感受也是比较有野心,想要创造出比现有技术更牛逼的一套体系。
HarmonyOS能够兼容Android App的运行,专家说是两个操做系统并在一块儿运行,我的推测就是在鸿蒙下面开个模拟器,相似于windows电脑也能够开个ubuntu。
但纯鸿蒙应用是确定没法运行在Android系统上的。
但考虑到HarmonyOS在多设备上的各类颇具吸引力的新特性(暂时只在PPT里看到效果),假如往后HarmonyOS有至关的市场占有率,那么部分APP确定会有迁移至鸿蒙的必要性,华为提供了两种移植思路:
部分改造:将已有的某个模块功能 基于鸿蒙上从新实现,从而可让用户体验到APP在HarmonyOS的新特性。
增量改造:新增一些基于HarmonyOS实现的功能模块,好比提供手表等其余设备版本的应用等。
以上就是上周五周六参加华为开发者大会的HarmonyOS应用开发论坛的所见所闻,但愿能够帮助你们初步了解鸿蒙是怎么样的一个操做系统以及鸿蒙应用开发的方式。