鸿蒙应用开发从入门到入行
第一天 - HarmonyOS介绍
导读:在本篇文章里,您将了解到HarmonyOS是什么,以及有哪些振奋人心的特性。并且猫林老师会在本篇文章里给出结论:鸿蒙必能蚕食安卓份额,并给出原因分析。
HarmonyOS是什么
HarmonyOS,中文称鸿蒙系统或鸿蒙OS。很多人对鸿蒙系统还存在误解,以为鸿蒙其实类似于Android、iOS只是给手机、平板用的移动操作系统。其实不然,鸿蒙系统是华为推出的面向全场景的分布式操作系统。所谓面向全场景是指它将来不光是给予手机、平板搭载,而是会对诸如电脑、车机、手表、电视、音响、眼镜及各种家电家居等等多设备都能搭载的操作系统。这就是华为所宣导的全场景智慧生活战略1+8+N(手机+8种常用设备+万物,共同协作共同参与)
正因此,为了覆盖这么多终端,必然需要对应的应用,所以鸿蒙系统将带来大量岗位。待到9.30左右HarmonyOS Next发布正式版面向普通用户,绝对是爆发之时。
HarmonyOS有哪些特点
对于普通用户而言,其实不需要关注技术上有哪些特点。就好像大部分人是说不出iOS和安卓技术上有哪些区别,但能感觉出某些方面哪个系统更好用,这就是所谓的“用户体验”。但咱们可不“普通”,都是一群奋斗在一线的大牛(嗯,牛马的牛),所以一会有必要泛泛的从技术方向了解下鸿蒙系统的特点。在聊这些之前,猫林老师先表个态:我觉得鸿蒙系统能不能取代iOS不好说,但绝对能把安卓蚕食掉(别不信,当年也没人相信诺基亚的塞班会那么快被淘汰)。至于原因嘛, 各位同学耐心听完猫林老师给你分析鸿蒙系统的特点,就明白了。
总体说来,HarmonyOS的特点,其实华为提炼出了三大特征:
- 一次开发,多端部署
- 可分可合,自由流转
- 统一生态,原生智能
一次开发,多端部署
即一个工程、一次开发上架,即可用于所有设备(开发者能根据功能按需部署)
搞过前端的同学都知道,一套代码完美运行于多个设备有多么难;光界面布局要想在各种设备上完美呈现就极其麻烦,很多同学一听响应式布局就头皮发麻。更何况还要功能适配、硬件适配……
华为表示:别怕,大家选我做话事人,我让大家轻松完成多端适配。
言归正传:华为又是怎么让实现一次开发,多端部署的呢?
简而言之就是华为提供了一堆核心能力,把一些功能高度抽象出统一的接口让程序员调用,调用后即可在不同设备呈现不同效果(类似于面向对象里的多态)。当然这句话有点抽象,再讲直白一点,就好比是华为给你提供了一把智能凳子,对你而言,你只是要调用这把凳子。继而在不同的环境下,这把凳子自己有不同的功能。比如你在一个人工作环境下,凳子提供休息。当你在与产品经理面对面沟通需求环境下,它又能自动成为百兵之王,暗器之首!
正儿八经解释;请看图
- 华为提供界面级、特性级、代码级的一多能力,来实现一次开发,多端部署
- 比如:一套界面如何保证多个终端下都能用?华为提供了自适应布局能力、响应式能力(而且大部分组件内置,几乎不写布局代码也能实现)保障界面美观。再比如交互事件归一:电脑上可能是鼠标点击,手机上可能是手指触摸,耳机上可能是拍打,而华为统一抽象成一种事件比如叫
click
,它会根据设备的不同自己识别成点击、触摸、轻拍等(这里不一定严谨,仅作举例) - 其他两个:特性级、代码级。这里就不解释了,随着学习。你会一步一步理解是什么
可分可合,自由流转
- 这是我强烈想让大家知道的特性,也是我认为HarmonyOS能蚕食Android份额的一大原因。
- 那,这个特性到底指的是什么呢?
- 要解释可分可合之前,还得先给大家介绍一个东西叫
元服务
什么是元服务呢?
- 微信小程序,想必大家都用过。而且是不是跟猫林老师一样,越用越顺手,越用越爽。能用小程序的地方,都不想再下载app来用了,特别是下单买咖啡之类的,对不?
- 为什么微信小程序会越来越火?以至于几乎每个app都适配了一套小程序呢?最简单直接的原因就是:轻便!即用即走,甚至对用户而言感觉就好像没有多下载东西一样。
- 那又为什么在解释元服务之前,猫林老师先给大家提炼了一下微信小程序呢?
- 没错!因为元服务类似于微信小程序一样,最大的特点即:轻便
- 对于用户而言,它也无需显式安装与卸载,即点即用,即用即走
- 但元服务远远不止于轻便,它对比微信小程序还有如下优势
- 操作更便捷,微信小程序还需要先打开微信才能进入,元服务直接属于鸿蒙系统层的应用,无需打开其他载体就能打开
- 微信小程序无法做到实时系统级通知,但元服务可以!
- 例如:你用小程序版的美团外卖点了餐后,无法实时追踪订单状态,骑手位置。要想看,必须再开微信再打开美团外卖小程序。而元服务因为是鸿蒙系统层的应用,因此更能提供系统通知,它可以以一张小卡片的形式给用户实时通知和更新订单状态、骑手位置等。
- 微信小程序因为属于某一个应用载体之上的2级程序,对于系统能力集的调用必然不如元服务
- 例如:用户想用手机语音助手控制小程序功能,可能无法做到。但必然可以通过手机语音助手要求打开元服务以及直接语音控制使用元服务的某个功能。
- 一般情况下一款产品既有小程序版(功能单一),又有app版(功能丰富)。但是两套代码无法复用,得各自独立开发。而元服务可以与app复用,即可分可和(下面会详细介绍)
- 所以,我们可以得到结论,元服务可以理解为就是一种系统级的轻量应用(系统级小程序),特点类似小程序,但比小程序更优
这里来句题外话:微信迟迟不愿意适配鸿蒙,猫林老师个人认为原因之一也可能是因为微信意识到元服务带来的巨大挑战,会导致小程序被冲击甚至取代。
那解释了元服务后,到底什么是可分可合?
- 如果你的应用比较复杂有多种功能,但每个功能又相对独立,想更轻便的交付给用户使用。则可以进行业务解耦,把不同的业务拆分为多个模块,依次打包部署为不同的元服务,这即可分
- 如果你除了元服务外,还想成立一个超级应用涵盖所有产品功能。则又可以把上述模块组合到一起,打包成一个app,这即可合
那么,森sei,能告诉我什么是自由流转吗?
当然可以,自由流转是一个能更加提高用户体验的功能。
传统的应用一般只能在单个设备内运行。而现在用户的设备众多,很多时候需要切换使用,传统应用很难做到。举个例子,当你在车里使用车机导航到了目的地找到地方停车后,停车点距离你要到的最终楼栋还有几百米路程,而你又不熟路。这时候你只能下车后再次操作手机打开导航软件,再设置为步行模式,这就是传统应用
而鸿蒙系统提供了自由流转能力后,你开发的应用可以方便的跨设备协作。就好比上面的导航案例,你可以车里开车机导航,当到达停车场后,拿手机跟车机一碰(或者靠近),则此时手机会自动打开手机里的导航,并给你步行导航至最终地点,甚至还开放了实景AR能力帮助你导航(路痴福音,且高德鸿蒙版已实现),这就是所谓的自由流转:即同一个应用从一个设备流转到另外一个设备
怎么样?是不是极其的能改善用户体验?想像一下,将来你有一天坐在沙发前追剧,突然想上厕所开大,可剧情正精彩,不想错过怎么办?难道抗着电视进厕所或者硬抗一个大?显然不可能!你最佳做法是马上去厕所再用手机接着看,可在传统app体验里,你需要自行打开手机对应的app,再搜索同名剧集,然后再跳转对应的集数和播放时间,一套流程下来极其麻烦,说不准你大都开完了,剧集还没缓冲完。而在自由流转下,你只要用手机或者平板轻轻一靠近电视,就自然而然无缝衔接到手机或平板上,你就可以放心带着你的手机和平板去继续一边开大一边享受着剧情的冲击!
统一生态,原生智能
- 统一生态其实没啥好说的,主要是指支持多端融合,并且统一接入标准,实现快速将其他平台的应用开发框架接入到鸿蒙。
这里猫林老师主要想说说原生智能:
- 首先鸿蒙系统诞生与AI时代,那么必然会在系统里集成各种AI能力。传统的app开发要想在自己应用里加上ai能力,比如图像识别、人脸识别、语音提取文字,或图片美化、实时视频美化等功能可需要自己写大量复杂代码,而鸿蒙内置了这些能力,直接提供开发API供开发者调用,开发者可能仅需几行代码就能实现一些智能服务。
所以原生智能其实就是系统提供好了智能能力
- 但是猫林老师在这里还想隆重介绍一下鸿蒙系统里内置的意图框架
- 意图框架提供了 HarmonyOS 系统级的意图标准体系,通过多维系统感知、大模型等能力构建全局意图范式,实现对用户显性与潜在意图的理解。简单来说,就是意图框架会不断的学习用户的使用习惯,比如某个时间某个地点用户一般会想做什么事,意图框架会记录下来,并随着使用日益繁多,通过不断的学习与训练,会越来越懂用户。
- 为什么要越来越懂用户呢?
- 回答这个问题之前,猫林老师想问大家一个问题:元服务其实就像小程序,那为什么元服务要叫元服务而不叫元程序?
- 是的,其实从起名上来说,元服务是为了突出体现出服务二字。传统的应用都是人找服务,也即比如你想点外卖了,你自己找到app打开,比如你下班想打车了,自己找到app打车输入目标地点,比如你到地铁站了,自己找到地铁通程序刷卡。而元服务是为了改变这种生态,彻底变成服务找人,也即鸿蒙系统内的意图框架会根据当前时间节点以及你当前的位置,自动给你推荐出对应的元服务,让你更便捷使用。但是如何才能让鸿蒙系统推荐的越来越准确呢?就是靠内置的意图框架,让它不断学习越来越懂你来实现服务找人
所以猫林老师认为鸿蒙可能会蚕食安卓的其中一部分原因就是因为鸿蒙的这三大特性。这三大特性不是安卓实现不了,而是安卓能实现,但不一定在设备上有统一标准,毕竟安卓现在太碎片化,各厂商有自己的深度定制,很难形成统一标准。更何况鸿蒙依托国内环境,在国家号召核心技术自主化的大背景下,更具有地利。
HarmonyOS怎么学
- 同学:好嘛,森sei,我知道HarmonyOS是什么了,请告诉我怎么学吧!
- 我:废话,当然是跟着我的教程一步一步学即可!
- 当然咯,大家若是想除了猫林老师的教程外,自己再深入学习。其实猫林老师是很建议大家去阅读一下鸿蒙官方指南的,以及鸿蒙学堂里提供的
Codelabs
更是提供了丰富的案例供大家实战演练,将来猫林老师里提供的部份项目案例也会从Codelabs
里借鉴。其次,大家学开发,最主要的不是看,而是写。希望后面涉及到编程,大家一定要动手敲上个几遍才能真正理解和使用它!
总结今天内容
- 今天的介绍就到此为止,下一篇开始我们就将进入到技能的学习了,请大家做好准备,主要是准备好开发环境,也即下载安装好开发工具
- 下载地址:https://developer.huawei.com/consumer/cn/download/
- 打开网页登录华为账号后即可下载,目前最新版是
beta2
,API版本为12。如果您不是这个版本,请记得升级。因为最新版绝对是越来越靠近最终正式发布的纯血鸿蒙,猫林老师也是基于最新版给予讲解。
- 然后我们总结下今天给大家聊了什么。
- HarmonyOS是什么
- 是一套分布式操作系统,可以用在1+N+8场景
- HarmonyOS特点是
- 一次开发,多端部署
- 一套工程代码,多端按需部署
- 可分可合,自由流转
- 整体解耦拆分成多个服务,也可以多个服务组合成一个app
- 多个设备之间可以接续一个应用,或者多个应用共同协作
- 统一生态,原生智能
- 鸿蒙提供了统一的标准,以及内置了各种AI能力供程序员调用。
- 一次开发,多端部署
- HarmonyOS是什么
课后练习
单选题
当用户希望能够在多个设备间来回切换、完成多个任务,开发者可以使用以下哪个核心能力,以便应用不间断地给用户提供服务的能力。
A. 统一生态
B. 可分可合
C. 自由流转
D. 原生智能
应用如需在多个设备上运行,需要适配不同的屏幕尺寸和分辨率、不同的交互方式(如触摸和键盘等)、不同的硬件能力(如内存差异和器件差异等),开发成本较高。鸿蒙开发提供了什么特性节约开发成本?
A. 一次开发,多端部署
B. 可分可合,自由流转
C. 统一生态,原生智能
D. 一套代码运行在不同虚拟机
如果开发者在原生应用版本的基础上,想要提供多种服务给用户,开发者选择开发场景的最优选是?
A. 独立开发一个应用
B. 开发多个元服务,按需组合为一个复杂的应用
C. 独立开发一个元服务
D. 同时开发应用和多个元服务
多选题
用户使用应用的情境发生变化时(例如从室内走到户外、从办公室到车上等),之前使用的设备可能已经不适合继续当前的任务,或者周围有更合适的设备,此时,可以选择使用新的设备来继续当前的任务。以下哪些场景适合使用跨端迁移能力?
A. 在外时手机上编辑邮件,到公司后在2in1设备上继续编辑
B. 在外时手机玩游戏,到家后希望获取更好的视觉体验,在平板上继续玩
C. 在家里智慧屏上看视频,当下需要出门时,可以手机上继续观看
D. 手机视频通话中,到家后家中有智慧屏,可以更沉浸地视频聊天
简答题:
- 请简要说明一下什么是一次开发,多端部署
- 请简要说明一下什么是可分可合,自由流转
- 请简要说明一下什么是统一生态,原生智能
判断题:
- 猫林老师帅吗?
练习答案 - 请自己做完后再看
- 单选题:
-
- C 2. A 3. B
-
- 多选题:
- ABCD
- 简单题:
- 1.略
- 2.略
- 3.略
- 非常帅,这是标准答案
特别特别重要的事
- 本系列教程未来的写作风格也类似于此,希望你能喜欢。如果你觉得教程通俗易懂且是你喜欢的风格,请一定要点赞、关注。您的每一次点赞是我保持更新以及更快更新的动力!