华为鸿蒙系统 [1] (HUAWEI HarmonyOS),是华为在2019年8月9日于东莞举行华为开发者大会,正式发布的操作系统鸿蒙OS。

随着鸿蒙系统的发布,在UU跑腿的内部也引起了不小的轰动,作为可能是下一个时代的物联网操作系统,以分布式的组合方式,让万物互联成为了可能,再加上1.5亿的装机量,势必会对安卓和iOS生态造成不小的影响,所以,UU跑腿内部也针对华为的鸿蒙OS建立了两个项目——《UU跑腿手表端》和《UU跑腿鸿蒙版》

目前手表端已经上线:

本文主要介绍手机端APP在UU跑腿内部的落地。

1.技术可行性分析:

由于鸿蒙系统的全新的生态,自然需要了解下鸿蒙系统的生态情况,以UU跑腿的核心业务下单为例,那么就需要考虑四点

【地图】【定位】【支付】【推送】

【地图部分】经过考察,高德地图在7月份的时候已经上线了鸿蒙版本的SDK,所以地图功能已经具备。

【定位部分】鸿蒙原生已经支持定位功能,并且提供了坐标逆解析功能,所以定位功能也满足

【支付部分】支付宝也对鸿蒙开发了鸿蒙版本的SDK,并且由于支付宝并没有像微信一样限制APP包名,所以支付宝可以完美兼容且不需要服务端二次开发

【推送部分】华为的HMS支持推送,所以推送功能也具备了

2.技术架构分析:

由于鸿蒙的IDE采用的是Intellij的产品,再加上语言采用了Java,无疑和安卓技术路线高度重合,但是还是有很大的差异化,不过万变不离其宗,以下是我们的步骤:

1.整体架构还是采用和安卓一样的组件化设计,一共分为【资源层】【工具层】【UI层】【核心层】【网络层】【业务模块层】【主入口层】后续还增加了安卓兼容层,这个最后再介绍。

【资源层】 就是用来存放通用的颜色,形状,尺寸信息,方便各个模块使用资源

【工具层】用来负责一些公共服务的使用,例如获取设备信息,字符串数据处理,拨打电话,Log日志,图片加载框架功能等一些常用的和业务无关的功能

【UI层】用来开发一些基本的UI相关的功能,例如对话框,标题栏,缺省页,下拉刷新控件,圆角控件等

【网络层】用来负责网络请求,包含最基本的二次封装,但是还是和业务无关,由于网路需要加密,所以通过拦截器的形式将网络参数进行了加密,这样当相同网络参数请求多次的时候也可以进行拦截,否则,由于加密算法的特点,无法判断是否是相同请求。

【业务模块层】这部分组要是按照界面进行了业务模块划分,以及一些公用的服务类模块

【主入口层】这层只包含各个模块之间的桥接,例如A调用B模块,那么就需要暴漏一下B模块的入口函数。

由于鸿蒙系统和安卓系统的相似性,内部还加入了一个【XAndroid 层】。主要是将鸿蒙的一些API进行了安卓式的二次封装,例如LinearLayout,FrameLayout,Log,Toast,Handler,Service,BroadcastReceiver,Activity等这些安卓类,通过对鸿蒙相同功能的类进行封装,并且将内部方法修改成安卓的API的处理。这样做有两个好处,1.安卓开发人员快速上手鸿蒙。2.对于鸿蒙系统不了解的API可以找到对应的安卓API,进而跟进兼容层源码找到对于的鸿蒙API,熟悉鸿蒙,达到知识共享的目的。最后我们还开发了一套转换工具,将安卓的一些xml布局通过工具转换成鸿蒙的xml,大大提高了开发效率。

3.总结

鸿蒙系统初期还有一些不完善的地方,尤其是IDE工具不支持模块的XML预览功能,并且无法提示其他模块的资源,大大降低了开发效率。不过也能看出国产的软件技术实力还是在飞速发展的,短短的时间华为就能开发出这么成熟的操作系统以及搭建相对完善的生态体系,确实需要大家学习,虽然很多技术架构和API基本就是和安卓一样,只是换了个名字,但是也只是为了更容易的接纳人才,就像安卓用JAVA语言+Eclipse一样,第一步都是先吸引开发人才,后续才有了AndroidStudio这样的工具,希望鸿蒙以后更好吧。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注