鸿蒙应用开发从入门到入行

第一天 - HarmonyOS介绍

导读:在本篇文章里,您将了解到HarmonyOS是什么,以及有哪些振奋人心的特性。并且猫林老师会在本篇文章里给出结论:鸿蒙必能蚕食安卓份额,并给出原因分析。

HarmonyOS是什么

  • HarmonyOS,中文称鸿蒙系统或鸿蒙OS。很多人对鸿蒙系统还存在误解,以为鸿蒙其实类似于Android、iOS只是给手机、平板用的移动操作系统。其实不然,鸿蒙系统是华为推出的面向全场景的分布式操作系统。所谓面向全场景是指它将来不光是给予手机、平板搭载,而是会对诸如电脑、车机、手表、电视、音响、眼镜及各种家电家居等等多设备都能搭载的操作系统。这就是华为所宣导的全场景智慧生活战略1+8+N(手机+8种常用设备+万物,共同协作共同参与)

  • 正因此,为了覆盖这么多终端,必然需要对应的应用,所以鸿蒙系统将带来大量岗位。待到9.30左右HarmonyOS Next发布正式版面向普通用户,绝对是爆发之时。

HarmonyOS有哪些特点

  • 对于普通用户而言,其实不需要关注技术上有哪些特点。就好像大部分人是说不出iOS和安卓技术上有哪些区别,但能感觉出某些方面哪个系统更好用,这就是所谓的“用户体验”。但咱们可不“普通”,都是一群奋斗在一线的大牛(嗯,牛马的牛),所以一会有必要泛泛的从技术方向了解下鸿蒙系统的特点。在聊这些之前,猫林老师先表个态:我觉得鸿蒙系统能不能取代iOS不好说,但绝对能把安卓蚕食掉(别不信,当年也没人相信诺基亚的塞班会那么快被淘汰)。至于原因嘛, 各位同学耐心听完猫林老师给你分析鸿蒙系统的特点,就明白了。

  • 总体说来,HarmonyOS的特点,其实华为提炼出了三大特征:

    1. 一次开发,多端部署
    2. 可分可合,自由流转
    3. 统一生态,原生智能

一次开发,多端部署

  • 即一个工程、一次开发上架,即可用于所有设备(开发者能根据功能按需部署)

  • 搞过前端的同学都知道,一套代码完美运行于多个设备有多么难;光界面布局要想在各种设备上完美呈现就极其麻烦,很多同学一听响应式布局就头皮发麻。更何况还要功能适配、硬件适配……

  • 华为表示:别怕,大家选我做话事人,我让大家轻松完成多端适配。

  • 言归正传:华为又是怎么让实现一次开发,多端部署的呢?

    • 简而言之就是华为提供了一堆核心能力,把一些功能高度抽象出统一的接口让程序员调用,调用后即可在不同设备呈现不同效果(类似于面向对象里的多态)。当然这句话有点抽象,再讲直白一点,就好比是华为给你提供了一把智能凳子,对你而言,你只是要调用这把凳子。继而在不同的环境下,这把凳子自己有不同的功能。比如你在一个人工作环境下,凳子提供休息。当你在与产品经理面对面沟通需求环境下,它又能自动成为百兵之王,暗器之首!

  • 正儿八经解释;请看图

    • 华为提供界面级、特性级、代码级的一多能力,来实现一次开发,多端部署
    • 比如:一套界面如何保证多个终端下都能用?华为提供了自适应布局能力、响应式能力(而且大部分组件内置,几乎不写布局代码也能实现)保障界面美观。再比如交互事件归一:电脑上可能是鼠标点击,手机上可能是手指触摸,耳机上可能是拍打,而华为统一抽象成一种事件比如叫click,它会根据设备的不同自己识别成点击、触摸、轻拍等(这里不一定严谨,仅作举例)
    • 其他两个:特性级、代码级。这里就不解释了,随着学习。你会一步一步理解是什么

可分可合,自由流转

  • 这是我强烈想让大家知道的特性,也是我认为HarmonyOS能蚕食Android份额的一大原因。

  • 那,这个特性到底指的是什么呢?

  • 要解释可分可合之前,还得先给大家介绍一个东西叫元服务

  • 什么是元服务呢?

    • 微信小程序,想必大家都用过。而且是不是跟猫林老师一样,越用越顺手,越用越爽。能用小程序的地方,都不想再下载app来用了,特别是下单买咖啡之类的,对不?
    • 为什么微信小程序会越来越火?以至于几乎每个app都适配了一套小程序呢?最简单直接的原因就是:轻便!即用即走,甚至对用户而言感觉就好像没有多下载东西一样。
    • 那又为什么在解释元服务之前,猫林老师先给大家提炼了一下微信小程序呢?
      • 没错!因为元服务类似于微信小程序一样,最大的特点即:轻便
      • 对于用户而言,它也无需显式安装与卸载,即点即用,即用即走
    • 但元服务远远不止于轻便,它对比微信小程序还有如下优势
      1. 操作更便捷,微信小程序还需要先打开微信才能进入,元服务直接属于鸿蒙系统层的应用,无需打开其他载体就能打开
      2. 微信小程序无法做到实时系统级通知,但元服务可以!
        • 例如:你用小程序版的美团外卖点了餐后,无法实时追踪订单状态,骑手位置。要想看,必须再开微信再打开美团外卖小程序。而元服务因为是鸿蒙系统层的应用,因此更能提供系统通知,它可以以一张小卡片的形式给用户实时通知和更新订单状态、骑手位置等。
      3. 微信小程序因为属于某一个应用载体之上的2级程序,对于系统能力集的调用必然不如元服务
        • 例如:用户想用手机语音助手控制小程序功能,可能无法做到。但必然可以通过手机语音助手要求打开元服务以及直接语音控制使用元服务的某个功能。
      4. 一般情况下一款产品既有小程序版(功能单一),又有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。如果您不是这个版本,请记得升级。因为最新版绝对是越来越靠近最终正式发布的纯血鸿蒙,猫林老师也是基于最新版给予讲解。
  • 然后我们总结下今天给大家聊了什么。

    1. HarmonyOS是什么

      • 是一套分布式操作系统,可以用在1+N+8场景
    2. HarmonyOS特点是
      • 一次开发,多端部署

        • 一套工程代码,多端按需部署
      • 可分可合,自由流转
        • 整体解耦拆分成多个服务,也可以多个服务组合成一个app
        • 多个设备之间可以接续一个应用,或者多个应用共同协作
      • 统一生态,原生智能
        • 鸿蒙提供了统一的标准,以及内置了各种AI能力供程序员调用。

课后练习

  • 单选题

    1. 当用户希望能够在多个设备间来回切换、完成多个任务,开发者可以使用以下哪个核心能力,以便应用不间断地给用户提供服务的能力。

      A. 统一生态

      B. 可分可合

      C. 自由流转

      D. 原生智能

    2. 应用如需在多个设备上运行,需要适配不同的屏幕尺寸和分辨率、不同的交互方式(如触摸和键盘等)、不同的硬件能力(如内存差异和器件差异等),开发成本较高。鸿蒙开发提供了什么特性节约开发成本?

      A. 一次开发,多端部署

      B. 可分可合,自由流转

      C. 统一生态,原生智能

      D. 一套代码运行在不同虚拟机

    3. 如果开发者在原生应用版本的基础上,想要提供多种服务给用户,开发者选择开发场景的最优选是?

      A. 独立开发一个应用

      B. 开发多个元服务,按需组合为一个复杂的应用

      C. 独立开发一个元服务

      D. 同时开发应用和多个元服务

  • 多选题

    1. 用户使用应用的情境发生变化时(例如从室内走到户外、从办公室到车上等),之前使用的设备可能已经不适合继续当前的任务,或者周围有更合适的设备,此时,可以选择使用新的设备来继续当前的任务。以下哪些场景适合使用跨端迁移能力?

      A. 在外时手机上编辑邮件,到公司后在2in1设备上继续编辑

      B. 在外时手机玩游戏,到家后希望获取更好的视觉体验,在平板上继续玩

      C. 在家里智慧屏上看视频,当下需要出门时,可以手机上继续观看

      D. 手机视频通话中,到家后家中有智慧屏,可以更沉浸地视频聊天

  • 简答题:

    • 请简要说明一下什么是一次开发,多端部署
    • 请简要说明一下什么是可分可合,自由流转
    • 请简要说明一下什么是统一生态,原生智能
  • 判断题:

    • 猫林老师帅吗?

练习答案 - 请自己做完后再看

  • 单选题:

      1. C 2. A 3. B
  • 多选题:
    • ABCD
  • 简单题:
    • 1.略
    • 2.略
    • 3.略
    • 非常帅,这是标准答案

特别特别重要的事

  • 本系列教程未来的写作风格也类似于此,希望你能喜欢。如果你觉得教程通俗易懂且是你喜欢的风格,请一定要点赞、关注。您的每一次点赞是我保持更新以及更快更新的动力!

鸿蒙应用开发从入门到入行 - 篇1:HarmonyOS介绍——带你深入理解鸿蒙特性的更多相关文章

  1. Python Web自动化测试入门与实战,从入门到入行

    Python Web自动化测试入门与实战 购买地址 · 京东:https://item.jd.com/69239480564.html   天猫:https://detail.tmall.com/it ...

  2. LARK BOARD开发板入门学习-第2篇

    1. 本次主要研究下HDMI接口,使用芯片是CH7033,这个芯片可以接VGA和HDMI两种接口,和FPGA的接口是地址数据总线 2. 值得注意的地方,下图的D1,双二极管BAT54S在电路中一般用于 ...

  3. 「Android 开发」入门笔记

    「Android 开发」入门笔记(界面编程篇) ------每日摘要------ DAY-1: 学习笔记: Android应用结构分析 界面编程与视图(View)组件 布局管理器 问题整理: Andr ...

  4. 浅谈入行Qt桌面端开发程序员-从毕业到上岗(1):当我们说到桌面端开发时,我们在谈论什么?

    谈谈我自己 大家好,我是轩先生,是一个刚入行的Qt桌面端开发程序员.我的本科是双非一本的数学专业,22年毕业,只是部分课程与计算机之间有所交叉,其实在我毕业的时候并没有想过会成为一名程序员,也没有想过 ...

  5. PHP开发入行真功夫 三扬科技

    前言与目录 PHP开发入行真功夫 前言 PHP开发入行真功夫 目录   第2章 基本语法 2.1.1 判断闰年程序 2.1.2 我们现在能做的…… 2.2.1 PHP的语言概貌 2.2.2 为我们的程 ...

  6. 《开发专家 Visual C 开发入行真功夫》笔记

    智能感知的功能,输入 is 后,同时按下Alt + →这两个键就出现了供选择变量.方法.宏等的列表,继续输入 in 后,isInit就出来了. stdafx.h预编译头文件,.h应用程序主头文件,do ...

  7. [Intel Edison开发板] 03、Edison开发IDE入门及跑官方提供的DEMO

    一.启动Eclipse爱迪生开发板IDE eclipse开发环境在iss-iot-win_03-14-16中,但是一定每次都是点bat脚本启动,否则就会少东西(windows->preferen ...

  8. iOS 非ARC基本内存管理系列 -手把手教你ARC——iOS/Mac开发ARC入门和使用(转)

    手把手教你ARC——iOS/Mac开发ARC入门和使用 Revolution of Objective-c 本文部分实例取自iOS 5 Toturail一书中关于ARC的教程和公开内容,仅用于技术交流 ...

  9. .NET入行之工作后

    成长这条路上,有一些事已经渐渐的消失模糊的脑海里,而有一些事,则历历在目,终生铭记. 一切都是从大二下学期快结束的那段培训课程开始的,从此也算是入门了,这也是一条不归路. 在.NET入行之工作前一文中 ...

  10. 社群公会GangSDK:程序员入行AI领域需要哪些技能?

    作为一名Android开发工程师,身边总有些同行很焦虑,看着人工智能越来越火,总是担心Android要不行了,所以,我们需要转行么?Android还能走多久?其实,无论是对于Android还是iOS开 ...

随机推荐

  1. 如何解决使用 router.push 跳转路由第二次之后页面就不会刷新了

    router.push({ name:"monitor", query:{ deviceid:"1676156672197922816", // 设备 ID i ...

  2. wpf样式模板的使用

    <Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/200 ...

  3. 我们如何在 vue 应用我们的权限

    权限可以分为用户权限和按钮权限: 用户权限,让不同的用户拥有不同的路由映射 ,具体实现方法: 1. 初始化路由实例的时候,只把静态路由规则注入 ,不要注入动态路由规则 : 2. 用户登录的时候,根据返 ...

  4. Termux 使用笔记

    第一次安装完成后 发现这里面啥都没有 所以 更新源 apt update 也做不到 这是因为 源是国外 由于有墙 所以连接不上 下面这个命令可以 切换更新源 termux-change-repo 切换 ...

  5. [GXYCTF2019]BabyUpload 1

    打开靶机,上传文件抓包 后缀不能带ph,大小写也无法绕过,意味着phtml后缀也无法上传 对后缀只过滤ph,我们转变思路上传图片马,用.htaccess使图片马以php格式打开 上传图片马 上传失败, ...

  6. How To Remove the Oracle OLAP API Objects From 9i and 11g Databases (Doc ID 278111.1)

    How to remove the Oracle OLAP API objects from a 9i database We can consider like olap api objects: ...

  7. KubeSphere 在 vsleem 的落地实践

    作者:方忠,苏州威视通智能科技有限公司技术经理,开源技术爱好者,长期活跃于 dromara 开源社区并参与贡献. 公司介绍 公司简介 苏州威视通智能科技有限公司,是一家全球领先的全景 AI 平台提供商 ...

  8. Java高并发,ArrayList、HashSet、HashMap不安全的集合类

    首先是我们的ArrayList: 这次我们讲解的是集合的不安全,首先我们都知道ArrayList吧! List<String> list=new ArrayList<>(); ...

  9. python项目实战——一元线性回归预测模型

    文章目录 1.一元线性回归简介 2.环境准备 3.数据准备 4.可视化数据 5.构建线性回归模型 在数据科学领域,预测分析是一项核心技能.一元线性回归作为预测分析的基石,能够帮助我们理解一个自变量如何 ...

  10. att&ck学习笔记1

    一.环境搭建 1.1环境搭建测试 最近想要开始学习内网渗透,搜集了一些教程,准备先实验一个vulnstack靶机,熟悉一下内网渗透操作再学习基础知识. 靶场下载地址:http://vulnstack. ...