【FFH】关于鸿蒙的一些事 原创

发布于 2022-1-26 11:22
浏览
1收藏

春节不停更,此文正在参加「星光计划-春节更帖活动」

引言

最近看了朱有鹏老师对鸿蒙的科普(链接在最底部),看下来感觉对一个开发者来说是非常有必要了解的,下面我总结了一部分内容,作为学习笔记,也欢迎与大家一起讨论。

什么是鸿蒙

平时我们谈到的鸿蒙,其实包括了两个东西,一个是OpenHarmony,一个是HarmonyOS

OpenHarmony和HarmonyOS的区别

  • OpenHarmony是由开放原子开源基金会孵化及运营的开源项目,OpenHarmony不是华为的,华为只是OpenHarmony项目的主要贡献者和使用者。华为向OpenHarmony项目贡献了大量代码,未来也将持续为OpenHarmony开源项目贡献代码。
  • HarmonyOS 是华为基于开源项目OpenHarmony 开发的面向多种全场景智能设备的商用版本(不开源)。类比一下安卓的开源项目,不同手机品牌可以拿安卓这个开源项目进行定制,比如小米有自己的MIUI,华为有自己的EMUI系统。所以OpenHarmony就类似Android,HarmonyOS就类似EMUI。
    【FFH】关于鸿蒙的一些事-开源基础软件社区
    下面我们主要来了解一下HarmonyOS。

HarmonyOS 是什么?

  • HarmonyOS是一款智能硬件的操作系统。类比一下,Windows是桌面电脑的操作系统,ios,Android是手机的操作系统。这里有明显的区别,智能硬件是一类产品,而手机和电脑是一种产品。

  • HarmonyOS是一个完整的操作系统,不是一个内核。比如Linux就是一个kernal,而安卓和苹果系统就是一个完整的操作系统。

  • HarmonyOS还包括相关的IDE,认证体系,生态系统等周边元素。一个完整的操作系统其实包括了一个完整的运行生态。为保护华为现有手机和平板用户的数字资产,在遵循AOSP协议的开源许可的基础上HarmonyOS 实现了现有Android生态应用在部分搭载该系统设备上的运行。
    【FFH】关于鸿蒙的一些事-开源基础软件社区

HarmonyOS想做的事

为了做硬件智能化改造

  • 实现硬件之间的“智能联动”
  • 成为AIoT OS的先驱和主流OS生态

其次,利用多种分布式技术相与安卓和苹果三分智能手机天下。

HarmonyOS最大的创新点

  • 最大的特点是面向场景式编程,而不是传统的面向设备的编程。比如现在开发一个安卓的APP,我们可以确切的知道这个APP肯定式运行在安卓手机上的,而不是电视上,这就是面向设备编程。那什么是面向场景编程?比如现在我们要开发一个聊天交流的APP,聊天交流就是一个场景,在这个聊天过程中,我们可能坐在客厅,这时候我们可能会希望视频聊天界面是在电视上,又比如在办公室里,我们就会希望视频聊天界面在电脑上,当我们中途想要去上一个厕所,我们就希望聊天界面流转到手机上。这整个过程应用的场景没变,但是设备在不断变化,这就是面向场景式编程。
  • 对应用开发者而言:HarmonyOS的创新是采用了多种分布式技术,使应用开发与不同终端设备的形态差异无关,从而让开发者能够聚焦上层业务逻辑,更加便捷、高效地开发应用。

Harmony分布式操作系统的特点

  • 面向场景,场景中往往包含多个离散分布的设备,就像我刚刚举的聊天的例子。
  • 一次开发多端部署,应用开发的时候就考虑到了场景的多个设备,一次开发:指的是一个团队就把多个设备的适配开发好了。多端部署:最后形成一个APP,这个APP包含了所有设备的页面以及相关功能,可以部署到不同设备上。
  • 流转多端协同功能,流转:比如刚刚的聊天软件例子,在客厅到厕所发生地点转换的时候,聊天界面从电视自动切换到手机就是一个流转。多端协同:在客厅时,戴着鸿蒙系统的耳机,这时你不想被别人听见你的谈话内容,这时候就是电视显示聊天界面,但是不调用电视的功放外设,而调用耳机,使声音来自耳机。

超级虚拟终端

  • HarmonyOS可以通过“物理层通过WIFI + 系统层通过软总线 + 应用层通过app”将场景中多个独立的终端连接起来,实现互相调用、智能联动。刚刚的聊天软件例子,在实现不同设备的流程过程中,其实依靠的就是一个超级虚拟终端。
  • 场景中智能联动的多个独立终端,构成了虚拟的、逻辑上的“HarmonyOS超级终端”

HarmonyOS的南向和北向

  • HarmonyOS应用开发叫北向,HarmonyOS设备内部嵌入式开发叫南向
  • 北向是纯软件开发,一般用java、js等语言,注重业务逻辑,目标是实现应用功能,满足客户需求
  • 南向是软硬件结合的嵌入式开发,一般用C、C++,注重硬件操作和能力封装,目标是提供北向API的内部实现

hap和app

在HarmonyOS中,app和Android的定义还是有区别。

  • Harmony的app是面向场景的,对应的是一个场景,Android的app是面向设备的,对应的是手机等设备。
  • app对应场景和整体超级终端,而hap对应设备和个体终端
  • app中包含1个或多个hap
  • HarmonyOS应用开发者最终产出是app
  • 单个HarmonyOS设备中可运行的代码单位是hap

本博客根据朱有鹏老师的课程总结:

鸿蒙的十万个为什么【共26课时】_鸿蒙设备开发课程-51CTO学堂

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2022-1-26 19:42:27修改
5
收藏 1
回复
举报
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源 去关联
    相关推荐