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系统上开发个更好玩的“抖音”