12月26日,华为消费者BG软件部开源中心与51CTO Harmony OS技术社区携手,共同主办了主题为“Harmony OS 应用开发落地实践”的 Harmony Go 技术沙龙。

作为HarmonyOS 2.0 手机开发者 Beta 版发布后的首场技术沙龙,本次活动邀请了旗点科技创始人连志安、美的HarmonyOS FA开发负责人梁振华、Harmony OS课程开发者孙洋、宝宝巴士资深架构师杨清山、安徽微游互娱CTO张志斌几位不同领域的业内专家,围绕Harmony OS应用开发,为开发者答疑解惑。

基于HarmonyOS,打造智能安防系统

HarmonyOS是面向万物互联而诞生的系统,它不仅可以运行在手机上,也可以运行在较小型设备上,比如智能手环、安防报警器等。基于HarmonyOS多端适用的特性,旗点科技创始人连志安老师带来一个与狄泰软件学院创始人唐佐林老师共同开发的安防场景应用项目,并做了详细的技术解读。

这个基于HarmonyOS的安防项目具有完整性、统一性、可扩展性和开源的特点,后续还可以在此基础上开发增加一些其他场景,扩展出一些新的功能。

旗点科技创始人连志安老师

整个安防项目系统的架构设计包括无线传感器、无线模块、HarmonyOS设备、HarmonyOS应用、局域网和云服务。无线传感器负责收集数据,然后通过无线模块将数据传递到HarmonyOS设备;HarmonyOS设备可以通过局域网或者云服务与HarmonyOS应用进行通信。这样便形成一条从传感器到HarmonyOS应用的通信链路。

在此链路下,系统状态主要分工作状态和警报状态两种。工作状态下整个系统会进入一个高等级的戒备,当主人不在家时,门窗传感器被触发,系统便会发出报警,并通过手机应用做提醒,这是布防状态。但是如果主人在家时,系统便会进入一种低等级的撤防状态,即使传感器被触发,系统也不会给发出报警。

整个安防系统中HarmonyOS 应用和HarmonyOS设备的交互主要分为四大流程:

● 首先是设备发现流程:让HarmonyOS应用去发现HarmonyOS设备;

● 其次是设备上报流程:HarmonyOS设备能够把数据上传到HarmonyOS应用上;

● 第三是设备控制流程:HarmonyOS应用能够控制系统中的设备;

● 最后是应答流程:应用和设备间发送的数据和指令可以相互应答,保证通信完整。

为了满足系统的应用场景,系统中用TLV协议作为通信协议。它的数据格式主要分为三大部分,第一部分是协议标题,大概有12个字节,往下是数据长度,占了4个字节,接下来是数据内容。数据内容采用了JSON的数据格式。

设备发现流程主要是分为两种情况,在HarmonyOS应用没有设备信息时,它会在局域网对外发送一个广播,然后HarmonyOS设备收到广播后,会把设备ID和一些相关信息返回给应用,最后应用去发动一个连接的请求,设备这边响应请求。如果HarmonyOS应用有设备信息时,它就可以直接发送请求,设备做相应的应答即可。

设备上报流程也很简单,设备上报一个JSON字段的数据解析给到应用,应用做相应的应答即可。通过应用还可以控制系统中的设备,例如控制灯的打开和关闭。

在整个安防系统中,设备开发有三个比较重要的点。一个是无线技术,保证HarmonyOS设备可以和无线传感器进行通信;第二个是传感器,例如烟感、红外等;第三是网络通信能力,让设备和应用进行通信。

设备开发流程分为设备启动并初始化,初始化后创建串口线程和网络线程。串口线程的作用是和无线模块进行通信,判断传感器的类型,然后把传感器信息上报给应用。网络线程主要是接收应用发来的数据,读取网络数据,然后解析数据格式,执行相应的指令。

应用开发流程主要分为UI界面和后台服务两个路线。UI界面包括日志存储、系统的状态和设置功能。后台服务包括网络通信和后台通知功能

方便快捷,一碰开启智慧生活

HarmonyOS是面向未来的分布式系统,同一套系统能力即可适配多种终端形式。例如手机、智慧屏、车机、手表等。在未来的智慧生活中,用户与物联网设备间的交互也会更加的简洁高效。本次沙龙上,美的HarmonyOS FA开发负责人梁振华分享了基于Harmony OS开发物联网产品的经验。

目前Harmony应用分为FA和PA,使用装有HarmonyOS模组的美的设备时,通过 HarmonyOS的NFC贴入口,即可下载HarmonyOS FA,然后打开进行设备的控制和配网。

美的HarmonyOS FA开发负责人梁振华老师

配网模式有NAN模式配网和AP模式配网。为了让用户快速配网,美的和华为合作,开发了NAN秒配网控制的新模式,手机和设备一碰,即可实现配网,并且通过配网通道,正在配网的过程中就已经能够对设备进行控制。而AP模式配网需要通过WiFi进行点对点的控制,配上网之后才能进行控制。

分布式助力,实现多设备联动

分布式软总线是HarmonyOS的一大特性,基于这一特点,Harmony OS课程开发者孙洋为开发者分享了多设备联动的开发案例。

Harmony OS课程开发者孙洋老师

在这个案例中,分布式软总线主要体现有三方面,第一方面是硬件虚拟化,第二方面是分布式调度,第三方面是音乐播放器demo。硬件虚拟化是概念性的东西,实现起来需要一定的技术手段。而利用分布式调度这个技术,便可以把各个设备连接在一起,形成一个虚拟的超级终端。

分布式软总线不仅把物理上隔离的各个设备连接在一起,而且还保证了传输速度,打破PCB板上的硬件能力约束。本案例中的两部手机可看作设备A和设备B,开发者在应用层进行开发,调用底层分布式硬件的虚拟化接口,便可实现设备A控制设备B的能力。

跨屏互动,增加亲子交流

HarmonyOS的分布式特性,不仅会让智能家居操作简单,还可让教育场景中融入亲子互动。宝宝巴士资深架构师杨清山从亲子互动的角度切入,为开发者分享了基于HarmonyOS分布式能力的跨屏互动案例。

本案例中利用HarmonyOS分布式特性,将多个设备连接起来,这里采用的组网方式是二维码进行组网,首先在大屏上生成二维码,然后手机扫描连接。技术上只需引入一个包,然后初始化数据模型,即可创建类似的服务端和客户端操作。

宝宝巴士资深架构师杨清山老师

10分钟开发一个分歧终端机

在家居、教育后,HarmonyOS的分布式特性还可运用在娱乐上,这次微游互娱CTO张志斌分享的分布式分歧终端机游戏案例便是基于HarmonyOS的分布式特性上开发。分布式分歧终端机主要包含游戏的输入、游戏的数据和游戏的状态功能模块。游戏的状态包括加入和退出、获取玩家的输入、显示游戏的数据和状态。

微游互娱CTO张志斌老师

HarmonyOS中提供了一个RemoteObject的接口和对象,通过这个对象对传输的请求码和输入参数封装,来保证两个模块间的通信。以此来解决数据传输过程存在的问题。在HarmonyOS中,当你创建调用connect Ability时,想要连接的设备就会先建立起调取的动作, 然后再去创建这个连接,达到自动调取和连接的一个步骤。

这是分布式技术一个比较有趣的设定,其实HarmonyOS已经把连接做到系统层面了,我们开发调取时,只需考虑应用层面的问题。应用层面需要考虑的是系统当前环境下面有多少设备,需要进行怎样的交互。

所以基于分布式软总线,我们可以去添加连接多个设备,只要它能够连进去,这便不需要我们再额外进行任何开发的工作量。

沙龙现场特别设置了有奖问答和调研等多个互动活动,一方面收集开发者的意见建议,另一方面也引导大家学习现场各位老师分享的精华内容。此外,开发者们还可以随时登陆51CTO HarmonyOS技术社区学习老师们更多精彩的课程。

本次沙龙是Harmony Go全国技术沙龙巡展第二站,也是2020年社区线下活动的收官之作,2021年,Harmony Go将走进上海、南京、广州等多座城市,继续与开发者面对面交流HarmonyOS开发经验,输送有深度、有干货的HarmonyOS技术新知。

社区近期免费公开课-火热报名中:

1月7日 20:00-22:00 使用python进行鸿蒙设备开发

1月9日 20:00-22:00 在HarmonyOS系统上开发个更好玩的“抖音”

1月14日 20:00-22:00 HarmonyOS组件的分布式适配和应用畅想

1月16日 20:00-22:00 HarmonyOS实现无云端家人协同记账

鸿蒙HarmonyOS应用开发落地实践,Harmony Go 技术沙龙落地北京的更多相关文章

  1. 最全华为鸿蒙 HarmonyOS 开发资料汇总

    开发 本示例基于 OpenHarmony 下的 JavaScript UI 框架,进行项目目录解读,JS FA.常用和自定义组件.用户交互.JS 动画的实现,通过本示例可以基本了解和学习到 JavaS ...

  2. Dubbo Mesh 在闲鱼生产环境中的落地实践

    本文作者至简曾在 2018 QCon 上海站以<Service Mesh 的本质.价值和应用探索>为题做了一次分享,其中谈到了 Dubbo Mesh 的整体发展思路是“借力开源.反哺开源” ...

  3. [转载]DevOps在传统企业的落地实践及案例分享

    内容来源:2017年6月10日,优维科技高级解决方案架构师黄星玲在“DevOps&SRE 超越传统运维之道”进行<DevOps在传统企业的落地实践及案例分享>演讲分享.IT 大咖说 ...

  4. DEVOPS落地实践分享

    DEVOPS落地实践分享 转载本文需注明出处:微信公众号EAWorld,违者必究. 引言: DevOps的理念已经说了很多年,其带来的价值逐渐被接受,很多企业也逐渐引入了DevOps.目前普元DevO ...

  5. SpringCloud落地实践

    这几年微服务架构越来越火.伴随着微服务概念的提示,越来越多的组织为了方便开发,结合实际提供很多微服务机构, 之前工作中一直使用dubbo作为微服务框架, dubbo只是专注于服务之间的通讯,所以更灵活 ...

  6. python coding style guide 的高速落地实践

    python coding style guide 的高速落地实践 机器和人各有所长,如coding style检查这样的可自己主动化的工作理应交给机器去完毕,故发此文帮助你在几分钟内实现coding ...

  7. python coding style guide 的快速落地实践——业内python 编码风格就pep8和谷歌可以认作标准

    python coding style guide 的快速落地实践 机器和人各有所长,如coding style检查这种可自动化的工作理应交给机器去完成,故发此文帮助你在几分钟内实现coding st ...

  8. 手把手带你体验鸿蒙 harmonyOS

    wNlRGd.png 前言 本文已经收录到我的 Github 个人博客,欢迎大佬们光临寒舍: 我的 GIthub 博客 学习导图 image.png 一.为什么要尝鲜 harmonyos? wNlfx ...

  9. 鸿蒙的js开发模式19:鸿蒙手机下载python服务器端文件的实现

    目录:1.承接上篇鸿蒙客户端上传文件2.域名通过内网穿透工具3.python服务器端代码4.鸿蒙手机的界面和业务逻辑5.<鸿蒙的js开发模式>系列文章合集 1.承接上篇鸿蒙客户端上传文件, ...

随机推荐

  1. 转:【Python3网络爬虫开发实战】3.1.2-处理异常

    [摘要] 前一节我们了解了请求的发送过程,但是在网络不好的情况下,如果出现了异常,该怎么办呢?这时如果不处理这些异常,程序很可能因报错而终止运行,所以异常处理还是十分有必要的. urllib的erro ...

  2. javascript中 fn() 和 return fn() 的区别

    在js中用return和不用return,输出结果有的时候傻傻搞不清,之前在网上看到个例子挺经典,不过讲的不清楚,上例子: var i = 0; function fn(){    i++;   if ...

  3. Java并发编程的艺术(二)——volatile、原子性

    什么是volatile Java语言允许线程访问共享变量,为了确保共享变量能够被准确一致地更新,如果一个字段被声明为volatile,那么Java内存模型将会确保所有线程看到这个变量时值是一致的.保证 ...

  4. 2020传智博黑马python课

      网上花钱买来的资源,免费分享给冷冷的兄弟们! 已经把相关网站广告后缀名全部替换修改,现在文件已经全部没有广告了, 不过就是课件的压缩包需要密码,已经在该文件夹说明,大家放心使用, 文件清爽,文件名 ...

  5. 图的遍历BFS

    图的遍历BFS 广度优先遍历 深度优先遍历 可以进行标记 树的广度优先遍历,我们用了辅助的队列 bool visited[MAX_VERTEX_NUM] //访问标记数组 //广度优先遍历 void ...

  6. Linux端口被占用解决

    有时候关闭软件后,后台进程死掉,导致端口被占用.下面以JBoss端口8083被占用为例,列出详细解决过程. 解决方法: 1.查找被占用的端口 netstat -tln netstat -tln | g ...

  7. Redis 基础知识点总结

    关系型数据库 VS 非关系型数据库(NoSQL) 关系型数据库 我们过去使用的 mysql.Oracle 都属于关系型数据库.关系型数据库的特点是数据表之间可以存在联系,表内每列数据也存在关联,同时支 ...

  8. 一种简单的吉布斯采样modify中应用

    这是主函数clc; clear all; close all; %% 生成初始序列 sequenceOfLength = 20; sequenceOfPop = 4; sequence = produ ...

  9. 解决[BScroll warn]: Can not resolve the wrapper DOM. Vue better-scroll

    在开发项目过程中,使用better-scroll插件中遇到了滚动一次重复提示相同错误 [BScroll warn]: Can not resolve the wrapper DOM. Vue bett ...

  10. CentOS7 实战源码安装mysql5.7.17数据库服务器

    CentOS7 实战源码安装mysql5.7.17数据库服务器 简介:实战演练mysql数据库服务器的搭建  mysql简介: mysql是一个开源的关系型数据库管理系统,现在是oracle公司旗下的 ...