《鸿蒙系统官方最全教程 4-8.生态案例:华为分布式日历应用开发实践.pdf》由会员分享,可在线阅读,更多相关《鸿蒙系统官方最全教程 4-8.生态案例:华为分布式日历应用开发实践.pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、华为分布式日历应用开发实践1、分布式应用架构遵循MVVM一套架构适配多设备形态2、分布式数据服务三步实现日程同步华为产品中的分布式日历应用应用架构要满足两点要求业务逻辑模块界面模块应用程序用户加工处理数据呈现、交互日历应用特点界面:易变更,产品定制性强业务逻辑:日历数据计算逻辑复杂,但多产品通用数据界面开发要简单、业务逻辑实现要健壮高效HarmonyOS 应用原生支持JS与Java两种语言HarmonyOS 日历应用Javascript FAJava PA界面业务逻辑声明式开发,纯粹做界面可使用Java强大类库及高性能可复用、可独立测试支持JS、Java混合编程,各取所长组件间接口RN、Vue
2、 应用Javascript界面业务逻辑JS:复杂运算速度较慢,代码的隐私性差Java界面Android 应用业务逻辑Java:界面命令式开发,能实现复杂的界面逻辑,但不够简单、灵活简单高效健壮Java PA一套架构适配多设备形态View视图层:多JS Page针对不同设备进行深度UI定制ViewModel视图模型层:JS与Java的数据绑定Model模型层:业务逻辑与数据分布式日程数据ViewJS Page-TVJS Page-WatchViewModel组件间接口 call&subscribeModel日历业务逻辑JS FA日程业务逻辑日历数据分布式日程数据HarmonyOS平台能力MVVM
3、分层,多设备界面适配只需要修改View层ModelModel层数据经过ViewModelViewModel传递到ViewView层界面生成月视图数据MonthData,提供给ViewModel1java.util.Calendar、TimeZone、Locale生成月视图数据MonthData,提供给ViewModel1ViewModel层序列化MonthData2ModelModel层数据经过ViewModelViewModel传递到ViewView层界面FeatureAbility.callAbility调用FeatureAbility.subscribeAbilityEvent订阅Vie
4、w与ViewModel双向绑定生成月视图数据MonthData,提供给ViewModel1ViewModel层序列化MonthData2通过FeatureAbility通信接口返回MonthData3AceInternalAbility机制,支持JS与Java互通ModelModel层数据经过ViewModelViewModel传递到ViewView层界面ViewView层做到多产品界面深度定制1、PageAbility、页面指定启动1、PageAbility、页面指定启动ViewView层做到多产品界面深度定制1、PageAbility、页面指定启动ViewView层做到多产品界面深度定制多
5、套HML设计支持产品深度定制快速完成新设备形态拓展2、calendar组件按需声明式开发1、PageAbility、页面指定启动ViewView层做到多产品界面深度定制分布式数据服务实践分布式数据云侧同步方案依赖远端的服务器,开发/维护成本高受限于数据流量及网络带宽,不适用于构建超级终端场景A设备服务器B设备C设备分布式特性 传统方式实现痛点A设备B设备C设备蓝牙/WIFI蓝牙/WIFI蓝牙/WIFIP2P近场共享传输硬件强相关,考虑多样传输协议面临1对多的组网、同步策略、多版本兼容性,技术难度高,编码量大应用层mon包API框架层设备A增删改数据分布式数据库初始化设备B通信适配层分布式数据库
6、初始化DB分布式数据服务日历App日历App日历分布式数据服务实践 多设备组网 安全认证 数据库信息同步 传输速率/稳定性同步组件通信适配层DB分布式数据服务同步组件订阅&查询数据KvManager.getKvStoreKvStore.putBatchKvStore.subscribekvStore.getResultSet分布式软总线1、设备A,B 分别初始化分布式数据库KVStore2、设备A 将日程数据序列化为Entry,并写入KvStore3、设备B 订阅及查询日程数据使用 HarmonyOS 分布式数据服务只需要3步开发者可以像操作本地数据库一样,不用关心数据如何同步日程数据Entry设备A设备B日程数据日程序列化为Entry对象EntryEntry中反序列化日程对象分布式数据服务putBatchgetResultSet日历分布式日程管理 效果展示总结1.UI与业务解耦,JS与Java混合编程,一套架构快速完成全场景设备的界面定制2.使用分布式数据服务能力KvStore接口,三步简单高效地完成分布式特性HarmonyOS应用开发在线体验HarmonyOS开发者微信公众号扫码在线体验HarmonyOSHarmonyOS应用开发