扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
根据华为鸿蒙的时间推进表,2021年6月2日,华为将举办鸿蒙操作系统及华为全场景新品发布会。根据华为此前的介绍,相对于鸿蒙 OS 1.0 来说,鸿蒙 OS 2.0 可登录更多智能终端设备,在功能和构架上也会有全新的变化。
创新互联公司2013年开创至今,是专业互联网技术服务公司,拥有项目做网站、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元康县做网站,已为上家服务,为康县各地企业和个人服务,联系电话:13518219792
2020年报显示,华为在全球的终端连接数已超10亿,其中手机存量用户突破7.3亿,其中大约90%的华为的存量和在售手机,都可以升级鸿蒙系统。#鸿蒙#
HarmonyOS是一款面向未来的全场景分布式智慧操作系统。
对于消费者而言,HarmonyOS用一个统一的软件系统从根本上解决消费者面对大量智能终端体验割裂的问题,为消费者带来统一、便利、安全的智慧化全场景体验。
HarmonyOS技术架构支撑1+8+N战略。
在该战略中,1是手机,8包括平板、PC、穿戴、智慧屏、AI音箱、耳机、VR、车机,N是指万物互联。通过通信连接和应用打通,从手机的优势向外围延展,HarmonyOS技术架构起到了巨大的支撑作用。
在5月21日举行的华为生态大会2021中,华为轮值董事长徐直军强调:华为计划2021年将国内1+8的设备全面升级到Harmony OS,预计到2021年年底整体会超过2亿台。
鸿蒙操作系统的重要商业价值在于,提供了更多的“连接”,从而提升了华为硬件生态的附加值和内涵,将会实现华为系列硬件产品的互联乃至智慧城市的万物互联,并带动华为软硬件生态持续繁荣。
IoT是华为在产业物联网时代的重要布局,华为主要聚焦于基础设施领域。海量低成本终端设备连接需要保证连接可管可控,且全网连续覆盖,以及端侧(终端)、传输、云端安全。
华为已在云侧和端侧拥有升腾、鲲鹏、麒麟等芯片,具备强大算力,叠加鸿蒙操作系统高效、灵活的执行能力,将培育大量高价值应用。
鸿蒙操作系统与华为“云+端”芯片形成强大合力,形成杀手锏应用。
从技术、生态两角度看,操作系统对于ICT厂商而言具有重要意义,鸿蒙操作系统的推出,对华为、对我国自主可控进程的意义不言而喻。
借助鸿蒙操作系统,华为将在生态、硬件、先发+持续创新三方面体现竞争优势,成为5G+IoT产业领军。
1、基于微内核、分布式及跨终端的特性,HarmonyOS能更好的适应物联网时代的需求。
HarmonyOS是一款基于微内核的全场景(移动办公、运动 健康 、社交通信、媒体 娱乐 等)分布式操作系统。
鸿蒙操作系统最重要的特性就是“分布式”,即同一个操作系统可以在不同类型的终端上运行。
通过“分布式多端协同身份认证”来保证“正确的人”、通过“在分布式终端上构筑可信运行环境”来保证“正确的设备”、通过“分布式数据在跨终端流动的过程中,对数据进行分类分级管理”来保证“正确地使用数据”。
在IoT硬件领域,HarmonyOS革命性的分布式技术,还能帮助硬件厂商实现“产品即服务”的产业升级。对应用开发者而言,鸿蒙更加方便快捷。
目前,华为单系统的安全能力已经做到极致,成为业界第一个且唯一在微内核领域通过了CCEAL5+认证的厂家。
2、开源吸引更多生态伙伴加入
华为从2012年开始研发鸿蒙操作系统,鸿蒙OS以打造生态为目标,服务于华为的硬件产品。
2019年8月9日,华为正式发布HarmonyOS,同时余承东宣布,HarmonyOS实行开源。
HarmonyOS采用Apache licence开源协议,该协议不仅鼓励代码共享,还尊重原作者的著作权,更容易吸引商业进入。
全球开发者均可以使用鸿蒙开源工具包开发各式应用。同时华为也拿出10亿美金作为基金,帮助全球开发者开发创新应用。
此前三星、微软、诺基亚均在闭源操作系统的尝试中失败,而选择开源路线的google,其安卓系统成功抵抗住苹果的iOS系统,成为目前移动端用户最多的开源系统。
3、华为技术积累和海量生态是HarmonyOS发展的保障。
鸿蒙从与硬件的捆绑协同来看,亦类似于苹果;从免费开源的角度看,与安卓相像。
从财报拆分来看,苹果尽管不直接销售操作系统,但是它通过操作系统产生的增值收入超过了150亿美金;谷歌通过操作系统相关的增值业务收入和授权收入超过几十亿美金。
HarmonyOS 2.0与IOS及安卓的区别:
无论是谷歌的安卓还是苹果的IOS,实现收入主要是通过广告和APP销售额提成两种模式。目前阶段鸿蒙系统能达到安卓70 80%水平,HMS生态已经成为全球第三大应用生态。随着后续HMS生态的逐渐成熟,凭借HarmonyOS庞大的终端数量,HMS生态有望成为华为新的收入引擎。
鸿蒙操作系统有望在物联网时代加速国产化方案整合与整体落地进度,国产软硬件自主可控动能加速释放,华为自主可控阵营的合作伙伴有望在鸿蒙生态体系的快速扩张路径中持续受益。
HarmonyOS生态已经发展了美的、九阳、老板、润和软件和中科创达等1000多个智能硬件合作伙伴,50多个模组和芯片解决方案合作伙伴,包括家居、出行、教育、办公、运动 健康 、政企、影音 娱乐 等多个领域的合作伙伴。
目前华为与全球TOP 200的APP厂商也在沟通合作,旨在为他们带来全新的跨终端设备的体验。
京东、百度、优酷、科大讯飞、金山办公等120多家知名应用厂商已开始基于HarmonyOS进行创新,让消费者获得颠覆性的智慧生活体验。
华为生态及整体自控主题相关公司包括金山办公,用友网络,金蝶国际等。东方通(中间件)、中科创达(系统开发),润和软件(多芯片平台适配)、常山北明(ISV)、诚迈 科技 (软件开发)、北信源(移动安全)、高伟达(金融云)等。
华为智慧生活APP活跃用户超过5,400万,智慧生活APP每日请求数超过10.8亿次,连接设备超过10亿台。随着HiLink与HarmonyOS的进一步统一,这或许有望进一步提升鸿蒙接入设备的数量。
鸿蒙OS未来将会承担起华为一系列包括电视、音箱、路由器、智能 汽车 等硬件产品的互联,乃至智慧城市的万物互联,组成更大的华为软硬件生态。
鸿蒙系统十年磨一剑,如今终于和大家见面,作为里程碑一般的存在,鸿蒙2.0在大范围推广的同时,还在贯穿华为的全场景体系,如今终极框架也揭开面纱,但是华为之志 不仅是手机。
一直以来,华为研发鸿蒙最主要的目的,就是为了带给消费者跨终端最好的体验,致力于通过鸿蒙将手机 电脑等,多种智能设备连接在一起, 是华为的一个重要的战略性布局,更是一个长期规划,首次提出这个策略,是在2012年9月,华为的一个专家座谈会上,任正非提出要做终端操作系统,他认为这样可以防患于未然,可以在面临断粮危机的时候,让鸿蒙挑起大梁,2017年 鸿蒙系统1.0完成技术验证,并开始了2.0的研发,在2019年1.0正式亮相时,这一系统的关键模块已经全部实现自研,到了2020年,升级过的鸿蒙系统,还增加了通用微内核架构等功能, 说到鸿蒙的框架,主要包括内核层 系统服务层,框架层以及应用层,今天熊猫君就为大家详解,鸿蒙系统的终极框架。
首先是内核层,它包含着内核与驱动两个子系统,在当前的框架中,鸿蒙是一个多内核管理的系统,在面对不同的设备时,可以选择不同的内核, 因为内核可以提供调度和通信的服务,安卓系统使用的是宏内核,而鸿蒙系统使用的是微内核,与安卓的内核不同的是,微内核可以与多套系统服务共存,更适合多处理器的系统设计,通过内核抽象层,就能将底层不同内核的差异屏蔽,从而提供统一的接口,而驱动子系统则可以提供驱动开发,与管理框架,是鸿蒙生态开放的基础,另外核心能力的集合,就是系统服务层,主要包括基本能力 基础软件服务,增强软件服务以及硬件服务4个子系统,可以通过框架层,为应用程序提供这些系统,将分布式应用在多个设备上,还能进行调度和迁移,是鸿蒙系统主要能力的集合,接着是框架层,可以为鸿蒙系统的应用开发,提供多种语言用户程序,和多个框架,而这最后一层就是应用层了,因为鸿蒙属于开源性的操作系统,它的软件应用层则存在于,系统应用和第三方非系统应用中,从以上的分析来看, 鸿蒙系统的框架与普通的操作系统相比,最大的区别就是,它管理的是所有设备的功能,那么它的价值与意义也有所不同。
就拿熊猫君来说,本人并不是喜欢玩电子设备的人,平时也更愿意用笔写字,但是随着 社会 的不断发展,熊猫君发现, 科技 发展的作用就是延伸人的能力范围,因此鸿蒙系统就带来了无限的可能性,可以催生出不同的应用方式和生活方式,这也是它最有价值的意义所在,此前熊猫君一直认为,鸿蒙系统只是一款智能手机操作系统,但现在熊猫君知道,它不仅是华为的一个可以面向多种智能终端,以及全场景的一个操作系统,还是可以连接手机和其他智能家居的设备,为实现万物互联提供了最重要的前提,在华为手机升级为鸿蒙系统后,就可以随意连接鸿蒙的系统设备,不过这还只是最基本的操作,可以随时调用不在身边的鸿蒙设备,才是它最重要的作用,这对我们消费者来说,无疑是更加便利的存在,即使不在家也可以为孩子打开台灯,对于懒癌患者来说,躺在床上就能把厨房里的豆浆打好,是一件非常幸福的事情,这也就表明,鸿蒙系统是一个以华为产品为基础,可以连接所有支持鸿蒙系统设备的一个平台,熊猫君觉得,鸿蒙与安卓 苹果相比,最独特的地方就在于,它可以用在手机 车机,以及电视等多种硬件设备上,而安卓和苹果只是一个简单的,面向智能手机终端的一个操作系统, 至于鸿蒙为什么叫做分布式操作系统,其实是基于它要处理的4件事,那就是输入 输出 计算以及存储。
其实在此之前,分布式并没有被用来形容过操作系统,大多都是分布式存储 分布式计算,现在华为不仅要实现这两个分布式操作,还要将分布式输入和输出一起实现, 这四个操作结合在一起,就形成了鸿蒙这个分布式操作系统,这样一来,不管是在哪个设备上,都能随时调用其他设备上的资源,就好像自己拥有的一样,举个例子,比如我们正在使用电脑,但是老板突然说要开会,这个时候我们就会一边走向会议室,一边用手机把刚刚的工作完成,这时手机就可以随时把个人计算机接入,用来做存储设备,省去传递文件的过程,还有华为的发布会曾演示过的,无人机与手机的互动,就是把无人机的摄像头,作为手机的输入设备,手机的屏幕就成了无人机的输出设备, 所以分布式操作系统,就是在统一的用户账号下,所有设备的输入和输出设备,另外鸿蒙在实现完全开源后,它是安卓套壳的谣言也不攻自破了。
一直以来我国主要的手机系统,都是安卓和苹果,并且从2017年开始到2019年,安卓系统在我国的市场份额,从原来的90.7%直接上升到了91.1%,就是因为安卓系统的开源性,帮助系统在软件应用上实现多元化的作用,比苹果系统更加突出, 只是也有消费者更愿意选择知名度更高的,手机产品终端厂商,所以苹果手机的市场份额也得到了提升,但是鸿蒙操作系统的出现,也许会改变整个物联网,据熊猫君了解,鸿蒙系统依靠分布式技术,可以实现多种类设备之间,硬件互助和资源共享的目标,让各种不同类型的设备,都能按照需求选择到最合适的部署方案,在2020年华为举办的发布会上,余承东就曾表示,华为万物互联的发展战略,是在5G时代到来之际,为了打造出全场景的智慧生活,从而制定出来的重要部署,并不只是单纯的取代安卓系统。从2016年开始到现在,华为的销售收入增长了快4千亿,主要是全球领先的5G带来了不菲的收入,并且在涉及道德领域中,芯片 基站 信息安全等领域,都处于业内领先水平, 有相关媒体报道,鸿蒙系统今年的覆盖目标是3亿台,并且截止到今年3月,已经有将近300家企业加入,作为一款国产的操作系统,熊猫君也预祝华为早日突破芯片难关,鸿蒙系统未来可期。
之前测试过使用华为DevEco开发智能电视应用。前几天华为发布了手机的测试版,不能免俗,抓紧尝试一下。
手头没有华为手机测试系统,现在试一下开发环境跑模拟器感受一下。
以前DevEco里是没有手机选项的,现在该选项可以看到了:
这里测试一下Business Card Ability(Java)开发。
DevEco和Android Studio一样基于开源的Idea版本开发的,其结构与安卓开发环境非常像,熟悉安卓的小伙伴应该能很快上手。
入口程序是一个MyApplication,从AbilityPackage继承。
它首先找到了连接的荣耀手机,但这个手机不是鸿蒙系统。
编译是成功了,但提示设备无法使用:
点击Tools - HVD Manager
首先提示登陆华为账号,登陆后,选择一个模拟器运行:
启动以后长这个样:
点击设置,先看看关于:
上面显示大大的HarmonyOS。但感觉画面很模糊,不知道模拟器到底是运行在本地的,还是云端的。但DevEco上显示是Remote Device字样。
鸿蒙OS版本号 2.0.0 Developer Beta1。
再点运行,在指定的模拟器上运行程序。
不过仍然运行失败:
鸿蒙OS版本与平板是一致的,
程序终于跑起来了:
看起来安卓程序好像真能在鸿蒙直接运行,安装一个快手试试:
还真能看:
我真分不清这是安卓还是鸿蒙了 。
不同应用在各自独立的进程中运行。当应用以任何形式启动时,系统为其创建进程,该进程将持续运行。当进程完成当前任务处于等待状态,且系统资源不足时,系统自动回收。
在启动应用时,系统会为该应用创建一个称为“主线程”的执行线程。该线程随着应用创建或消失,是应用的核心线程。UI界面的显示和更新等操作,都是在主线程上进行。主线程又称UI线程,默认情况下,所有的操作都是在主线程上执行。如果需要执行比较耗时的任务(如下载文件、查询数据库),可创建其他线程来处理。
如果应用的业务逻辑比较复杂,可能需要创建多个线程来执行多个任务。这种情况下,代码复杂难以维护,任务与线程的交互也会更加繁杂。要解决此问题,开发者可以使用“TaskDispatcher”来分发不同的任务。
TaskDispatcher是一个任务分发器,它是“能力”分发任务的基本接口,隐藏任务所在线程的实现细节。
为保证应用有更好的响应性,我们需要设计任务的优先级。在UI线程上运行的任务默认以高优先级运行,如果某个任务无需等待结果,则可以用低优先级。
线程优先级:
① 高优先级 HIGH
② 默认优先级 DEFAULT
③ 低优先级 LOW
TaskDispatcher具有多种实现,每种实现对应不同的任务分发器。在分发任务时可以指定任务的优先级,由同一个任务分发器分发出的任务具有相同的优先级。
系统提供的任务分发器有:
① 全局并发任务分发器 GlobalTaskDispatcher
② 并发任务分发器 ParallelTaskDispatcher
③ 串行任务分发器 SerialTaskDispatcher
④ 专有任务分发器 SpecTaskDispatcher
3.1,全局并发任务分发器,由Ability执行getGlobalTaskDispatcher()获取。适用于任务之间没有联系的情况。一个应用只有一个GlobalTaskDispatcher,它在程序结束时才被销毁。
3.2,并发任务分发器,由Ability执行createParallelTaskDispatcher()创建并返回。与GlobalTaskDispatcher不同的是,ParallelTaskDispatcher不具有全局唯一性,可以创建多个。开发者在创建或销毁dispatcher时,需要持有对应的对象引用 。
3.3,串行任务分发器,由Ability执行createSerialTaskDispatcher()创建并返回。由该分发器分发的所有的任务都是按顺序执行,但是执行这些任务的线程并不是固定的。如果要执行并行任务,应使用ParallelTaskDispatcher或者GlobalTaskDispatcher,而不是创建多个SerialTaskDispatcher。如果任务之间没有依赖,应使用GlobalTaskDispatcher来实现。它的创建和销毁由开发者自己管理,开发者在使用期间需要持有该对象引用。
3.4,专有任务分发器,绑定到专有线程上的任务分发器。目前已有的专有线程为UI线程,通过UITaskDispatcher进行任务分发。
UITaskDispatcher:绑定到应用主线程的专有任务分发器, 由Ability执行getUITaskDispatcher()创建并返回。 由该分发器分发的所有的任务都是在主线程上按顺序执行,它在应用程序结束时被销毁。
参考 鸿蒙官方文档(点击传送门) ,做一下流程梳理简化,及踩坑记录
华为将真机调试分成物理真机和远程真机。这里说的都是物理真机(手机、平板)。鸿蒙真机调试巨复杂,不像Android那么容易方便。
贴一下官方的调试流程图:
总结一下:
上面这个流程可以忽略,没讲到重点。真机调试是需要在 AppGallery Connect 中创建应用的,调试应用需要的cer和p7b文件是从这里生成的。
先决条件:
1. 鸿蒙手机通过USB连接电脑,并开启USB调试。
2. 一个华为开发者账号,实名认证
3. APP开发工具DevEco-Studio
关键流程:
1. Studio创建应用
2. 如果未登录过,File Project Structure Project Signing Configs签名配置页,点击“Sign In”
3. AppGallery创建应用(包名和Studio创建的一样)
4. 官方文档到这在签名配置页就点Try Again可以自动签名,我试了不行,以下全是手动
5. Studio中Build Generate key and CSR 生成p12和csr文件
6. 获取手机udid,命令行hdc shell bm get -udid(下一步设备管理要用)
7. AppGallery主页 用户与访问 左侧设备管理添加udid的设备(生成p7b时要用)
8. AppGallery主页 用户与访问 左侧证书管理生成cer文件(生成p7b和签名配置要用)
9. AppGallery主页 我的项目 左侧HarmonyOS应用 HAP provision profile,生成p7b文件
10. 最后在签名配置页配好 p12、p7b、cer等参数,运行鸿蒙应用到真机就行了
开发前可以了解下鸿蒙: [鸿蒙开发 序]华为鸿蒙操作系统(HarmonyOS)简介及开发环境搭建
开发前的准备:「鸿蒙开发 1」华为鸿蒙应用集成开发环境DevEco Studio安装和设置
了解鸿蒙应用开发的基本开发流程:「鸿蒙开发 2」第一个华为鸿蒙(HarmonyOS)应用程序(App)
本章目标:
1 了解华为鸿蒙应用开发的可视化(低代码)方式
2 通过构建一个简单的具有页面跳转功能的应用
低代码开发方式,即通过可视化界面开发方式快速构建布局、编辑UI界面,可有效降低用户的上手成本并提升用户构建UI界面的效率。
1 打开DevEco Studio,创建一个新工程,选择支持Phone / Tablet / Wearable(手机 / 平板 / s可穿戴)的模板,我们在此直接选择Empty Ability
Project name工程名称填SuperVisual
Development mode开发方式选择Super Visual
其它的可以使用默认设置,点击完成,进入编辑界面
1 在Project(项目)窗口,删除工程运行默认的入口文件夹:“entry src main js default pages index”文件夹
2 在Project窗口,选择工程中的“entry src main js default pages”,单击鼠标右键,选择“New JS Visual”
JS visual name填first,点击完成,进入编辑界面
创建完成后,可以看到“entry src main supervisual default pages page page.visual”的文件目录结构
3 第一个页面内有一个容器、文本和一个按钮,通过Div、Text和Button组件来实现
(1)分别选中first.visual画面中的Text、Div组件,单击鼠标右键,选择Delete删除
(2)选中UI Control中的Div组件,将其拖至画布
点击右侧属性样式栏中的通用样式图标(General),设置Div组件的高度Height为100%,使其占满屏幕
点击右侧属性样式栏中的样式图标(Flex),设置Div组件的FlexDirection样式为column,使Div的主轴垂直;设置Div组件的JustifyContent样式为center,使得其子组件在主轴上居中显示;设置Div组件的AlignItems样式为center,使得其子组件在交叉轴上居中显示
(3)选中UI Control中的Text组件,将其拖至Div组件的中央区域
点击右侧属性样式栏中的属性图标(Properties),设置Text组件的Content属性为 “ Hello World ”
点击右侧属性样式栏中的通用样式图标(General),设置Text组件的宽(width)为100%,高(height)为100px
点击右侧属性样式栏中的样式图标(Feature),设置组件的FontSize样式为60px,使得其文字放大;设置组件的TextAlign样式为center,使得组件文字居中显示
(4)选中UI Control中的Button组件,将其拖至Text组件下面
点击右侧属性样式栏中的属性图标(Properties),设置Button组件的Value属性为 “ Next ”,
点击右侧属性样式栏中的通用样式图标(General),设置按的宽(width)为40%,高(height)为60px
点击右侧属性样式栏中的样式图标(Feature),设置组件的FontSize样式为40px
至此,第一个页面创建完成
我们可以在预览窗口中看效果,点击右侧边栏的Preview打开预览窗口
1 在Project窗口,选择工程中的“entry src main js default pages”,单击鼠标右键,选择“New JS Visual”
Visual配置界面,JS visual name填second,回车(Enter键)或者点击完成,进入编辑界面
2 第二个页面中有一个容器和文本,通过Div、Text组件实现,现在编辑器已经为我们创建好了,我们就来修改下它们的属性(你也可以删除原有的自己创建,具体步骤参考本章第二节“二 创建第一个页面”)。
选中Text组件,点击右侧属性样式栏中的属性图标(Properties),设置Text组件的Content属性为 “ Hi,I'm always here. ”
点击右侧属性样式栏中的通用图标(General),设置组件的宽(width)为100%,高为60px
点击右侧属性样式栏中的样式图标(Feature),设置组件的FontSize样式为36px,TextAlign样式为center
这样我们的第二个页面创建成功了
1 在Project窗口,打开工程中的“entry src main js default pages first first.js”, 导入router模块,页面路由router根据页面的uri来找到目标页面,从而实现跳转。示例代码如下:
2 打开或者切换到first.visual页面,选中画布上的Button组件,点击右侧属性样式栏中的事件图标(Events),鼠标点击Click事件的输入框,选择launch事件
3 在预览窗口中查看项目效果,点击Next按钮后发现我们的页面成功跳转了。
到此,本章的目标就完成了。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流