终于有人把鸿蒙OS讲明白了,大佬讲解!快收藏!
来自 | GitHub科技
本文面向的是开发人员,主要想通过科普让大家了解一下鸿蒙开发。接下来,我想给大家科普一下这个这么火的鸿蒙系统。
到底什么是鸿蒙 OS
在官网上看到鸿蒙 OS 的简介是,分布式能力造就新硬件、新交互、新服务,打开焕然一新的全场景世界。以及发布会提及最多是他的万物互连,全场景,分布式,微内核,软总线。
换句话说,鸿蒙OS 是为全场景,分布式设计的,微内核,软总线是他重要的实现。
C/C++的学习裙【七一二 二八四 七零五 】,无论你是小白还是进阶者,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
对于全场景,分布式理解,我们可以想一下华为自家的多屏协作,以及电脑,平板和手机可以很方便实现在电脑上操作平板,手机。
另外现在双 11 买到的一些新上市家电,上面可以看到鸿蒙的小 Logo,这些带上鸿蒙的家电,可以通过碰一碰无需安装 App 实现配置组网,也十分方便。
在华为开发者大会上,华为也展示了一些精彩的案例。大家有兴趣回头翻一翻。这些都是通过全场景,分布式特性做到的新交互和体验,十分让人期待。
到此应该有一个疑问,如果不用鸿蒙 OS,能不能实现以上交互?多屏协同,多设备协同?
答案是可以的,官方有提到,他们把鸿蒙 OS 一些能力,例如分布式提出来放到 EMUI 上。
我们在华为的开发平台上可以看到一些 kit 和鸿蒙有关的有设备虚拟化、HiCar、HiLink、碰一碰等。
这些 kit 是可以让设备在不上鸿蒙的情况下,实现全场景,分布式。他们做的类似做一个中间层,App 和设备端分别接入这些 kit 的 sdk。
那么和直接用鸿蒙 OS 有什么区别呢?开发会上官方给出了答案,不上鸿蒙也是可以实现的,不过鸿蒙 OS 的性能会更好一点。
聊一下 kit
在聊开发之前,我想聊一下华为提供一些有意思的 kit。
我比较感兴趣的是设备虚拟化能力和碰一碰。
设备虚拟化能力(DeviceVirtualization Engine),是通过虚拟化技术将相关设备或器件打造成手机器件或能力的延伸。
它可以将家中的电视、摄像头和音箱虚拟为手机的屏幕、Camera 和 Mic/Speaker,将穿戴设备作为手机的虚拟 Sensor,实现手机为中心的全场景体验。
此处又应该有疑问,这个设备虚拟化和我们平时用的投屏,蓝牙音箱有什么区别?
- 灵活性,投屏,蓝牙音箱,蓝牙话筒是实现单一功能设备。用户可以根据需要选择所需的设备。
- 应用级的,举个例子,可能开会需要,在会议 App 才需要话筒音箱。来电了依然是用手机上的话筒听筒。
- 可扩展性,,除了常见的多媒体。他这个还支持外接传感器,马达,消息通知等。
碰一碰能力(OneHop Engine)是通过 NFC 来解决 App 跨设备接续难、设备配网难、传输难的问题的一个方案。
他们定义了一些常见的场景下的功能方向以及两种集成方案:
例如,美的电器接入碰一碰可以做到免安装配网。这点十分方便,特别是家有老人。
之前的配网流程起码分成 3 步,安装 App,扫码,配置。而这套方案就只要 3 秒。
应用开发
鸿蒙 OS 目前开放了应用开发和设备开发。应用开发是我们的重头戏,可以为搭载鸿蒙的智慧屏,手表,车机开发应用。
通过华为提供的 DevEco IDE 建立应用开发项目,具体开发步骤有比较多的教程就不细说了。
开发可以使用 Java 和 JS 语言。Java 开发的话,跟 Android 开发差不多。
这里注意的是通过 JS 开发的话,但是通过 Htm 并非 html 来写 UI。在语法上类似 vue。
JS 引擎是 JerryScript,能够在内存少于 64KB 的设备上执行 ECMAScript 5.1 源代码。
那实际上下面要提到的设备开发逻辑是也可以部分用 JS 实现的。不过官方文档比较少,也没有 demo 提供。但个 js runtime 是可以作为组件一起编译烧录的。
应用开发中,我比较感兴趣的是跨设备调用,下面这个例子是从智慧屏 App 上调用其他设备页面的。
这里可以看到优点十分明显,在这里我们开发无需关心通信,以及传输安全问题。
在智慧屏上这么写,在手表上也是这么写。也就是他们说的一次开发多端部署,提供成熟方案,不用放更多精力在安全机制,组网连接和基础通信上。聚焦业务,快速完成原型开发。
但也有一些约束与限制:
- 支持主设备侧远程启动从设备侧 FA,不支持从设备远程启动主设备 FA。
- 需要同一局域网内。
- 需要认证,当前只支持拥有共同公钥信息的主从设备间 FA(即主从设备的 FA 使用相同华为证书)的拉起。
- 工具链还需完善,如果选择智能手表和智慧屏这两个平台进行 App 的开发,目前华为还没有开放基于 X86 的本地模拟器。因此,需要将编译后安装到远程的 ARM 处理器以运行代码,在本机上只能预览运行结果,而无法在本机上运行和调试代码。开发效率相对慢一点,相信华为后面应该会补齐。
设备开发
针对设备开发者,OpenHarmony 采用了组件化的设计方案,可以根据设备的资源能力和业务特征进行灵活裁剪,满足不同形态的终端设备对于操作系统的要求。
可运行在百 K 级别的资源受限设备和穿戴类设备,也可运行在百 M 级别的智能家用摄像头/行车记录仪等相对资源丰富的设备。
我先讲一下设备开发的限制,目前开源的仅支持 128k~128M 设备。而电视的运行内存一般在 2G 以上,普遍 3~4G。那实际上可以满足除了电视,手表 wear,手机的大部分设备。
开发流程是源码获取/组件管理→编码实现逻辑→编译→烧录,按官网教程走一遍就能在开发板板上跑起来了。
前面说到的一些 kit , 设备虚拟化和碰一碰也是可以用在设备开发上的。不过设备虚拟化,DVKit SDK 预计 2020 年 12 月底才提供。
还有碰一碰,以下是官方提供的一个打印机通过碰一碰实现文件传输的例子:
接下来聊一下华为的鸿蒙发布计划:明年中发布 4G 以下,4G 以下应该对应车机和 wear。
年底发布 4G 以上,这个应该是对应手机。手机的话大家都认为的意义不是很大,也不太可能成为主流,我也是这么认为。
我个人认为鸿蒙的发力点应该是在电视,穿戴,车机上,以及提供极致的生态体验!
C/C++应用于Windows操作系统,驱动、补丁,图像处理、音视频处理,工业控制软件、嵌入式(手机、智能机)等领域,C++ 已经成为了最受开发人员欢迎的语言之一,巩固了全球的系统和服务。
如果你想提升你的编程能力,以便更好从事编程类工作的话!
分享(源码、项目实战视频、项目笔记,基础入门教程)欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦! 点击进入学习基地
终于有人把鸿蒙OS讲明白了,大佬讲解!快收藏!的更多相关文章
- 终于有人把Elasticsearch原理讲透了!
终于有人把Elasticsearch原理讲透了! http://developer.51cto.com/art/201904/594615.htm 小史是一个非科班的程序员,虽然学的是电子专业,但是通 ...
- (转)终于有人把Elasticsearch原理讲透了!
终于有人把Elasticsearch原理讲透了! 小史是一个非科班的程序员,虽然学的是电子专业,但是通过自己的努力成功通过了面试,现在要开始迎接新生活了. 来源:互联网侦察 | 2019-04-08 ...
- 终于有人把elasticsearch原理讲通了
转自 小史是一个非科班的程序员,虽然学的是电子专业,但是通过自己的努力成功通过了面试,现在要开始迎接新生活了. 随着央视诗词大会的热播,小史开始对诗词感兴趣,最喜欢的就是飞花令的环节. 但是由于小史很 ...
- 好文推荐:终于有人把Elasticsearch原理讲透了
专注于Java领域优质技术,欢迎关注 作者:channingbreeze 转自公号:互联网侦察 小史是一个非科班的程序员,虽然学的是电子专业,但是通过自己的努力成功通过了面试,现在要开始迎接新生活了. ...
- 终于有人把Elasticsearch原理讲透了!学习的第一篇总览全局
诗词大会引出的话题 随着央视诗词大会的热播,小史开始对诗词感兴趣,最喜欢的就是飞花令的环节. 但是由于小史很久没有背过诗词了,飞一个字很难说出一句,很多之前很熟悉的诗句也想不起来. 倒排索引 吕老师: ...
- 【ZZ】终于有人把云计算、大数据和人工智能讲明白了!
终于有人把云计算.大数据和人工智能讲明白了! https://mp.weixin.qq.com/s/MqBP0xziJO-lPm23Bjjh9w 很不错的文章把几个概念讲明白了...图片拷不过来... ...
- 终于有人把O2O、C2C、B2B、B2C的区别讲透了!
终于有人把O2O.C2C.B2B.B2C的区别讲透了! 一.O2O.C2C.B2B.B2C的区别在哪里? O2O是online to offline分为四种运营模式: 1.online to offl ...
- 鸿蒙OS与微内核
目前主流面向个人端操作系统都不是像鸿蒙一样采用微内核的,或许在这些操作系统上诞生时面对的需求场景用微内核是行不通的.但在当前场景下是不是能走通要实际验证才知道.面对当前操作系统已成熟的市场生态.专利技 ...
- 华为鸿蒙OS能取代安卓吗?
先回答问题,不能,起码几年之内不存在这种可能.8月9日华为的开发者大会上,余承东说:鸿蒙是一款基于微内核的全场景分布式OS.鸿蒙OS的设计初衷是为满足全场景智慧体验的高标准的连接要求,为此华为提出了4 ...
随机推荐
- 跟我一起学.NetCore之MediatR好像有点火
前言 随着微服务的流行,而DDD(领域驱动设计)也光速般兴起,CRQS(Command Query Responsibility Seperation--命令查询职责分离).领域事件名词是不是经常在耳 ...
- SP1772 Find The Determinant II
题意 \(T\) 组数据,每组给定两个整数 \(n,k\),求 \(\det A\),其中 \(A\) 为一个 \(n\times n\) 的矩阵且 \(A_{i,j}=\gcd(i,j)^k\),对 ...
- python使用matplotlib画图,jieba分词、词云、selenuium、图片、音频、视频、文字识别、人脸识别
一.使用matplotlib画图 关注公众号"轻松学编程"了解更多. 使用matplotlib画柱形图 import matplotlib from matplotlib impo ...
- Spider Storage Engine
这个引擎可以完成MySQL的数据库分片
- uniapp微信小程序canvas隐藏
HTML 我是把canvas嵌套在view里并被view设置id <view id="canvas"> <canvas style="width: 35 ...
- 快进来!花几分钟看一下 ReentrantReadWriteLock 的原理!
前言 在看完 ReentrantLock 之后,在高并发场景下 ReentrantLock 已经足够使用,但是因为 ReentrantLock 是独占锁,同时只有一个线程可以获取该锁,而很多应用场景都 ...
- python爬虫04 Requests
接下来我们要来玩一个新的库 这个库的名称叫做 Requests 这个库比我们上次说的 urllib 可是要牛逼一丢丢的 毕竟 Requests 是在 urllib 的基础上搞出来的 通过它我们可以用更 ...
- 3.java设计模式之工厂模式
基本需求: 一个披萨店需要订购不同种类的披萨 传统方式: 实现思路 在订购类中根据用户不同的输入直接创建不同的披萨实体类进行返回 UML类图 代码实现 披萨类 // 抽象父类 public abstr ...
- js数组方法(管饱)
有一些数组方法是ECMAScript新增的,一定要注意浏览器的兼容!! Array对象属性: 属性 说明 constructor 返回对创建此对象的函数引用 length 返回集合内的元素的所有长度 ...
- haproxy 思考
通过代理服务器在两个TCP接连之间转发数据是一个常见的需求,然后通常部署的时候涉及到(虚拟)服务器.真实服务器.防护设备.涉及到多个ip地址相关联,改动一个IP就需要修改配置. 比如反向服务器部署的时 ...