HarmonyOS一次开发多端部署三巨头之功能级一多开发和工程级一多开发

功能级一多开发与工程级一多开发

引言

一次开发多端部署

定义:一套代码工程,一次开发上架,多端按需部署

目标:支撑开发者快速高效的开发多终端设备上的应用

为了实现一多开发的定义与目标,我们需要解决三个问题

  • 页面如何适配:不同设备间的屏幕尺寸,色彩风格等存在差异。
  • 功能如何兼容:不同设备的系统能力有差异,如智能穿戴设备,是否具有定位能力、智慧屏是否具有摄像头等。
  • 工程如何组织:如何实现同一套代码,同时能部署到多种不同的设备上。

这篇文章介绍的是功能级一多开发和工程级一多开发,界面级一多开发请锁定:
HarmonyOS一次开发多端部署三巨头之界面级一多开发

功能级一多开发

SysCaps机制介绍

HarmonyOS使用SysCap机制(即SystemCapability),可以帮助开发者仅关注设备的系统能力,而不用考虑成百上千具体的设备类型,降低应用的开发难度。

能力集

  • 系统能力集:操作系统中每一个相对独立的特性,如蓝牙,WIFI,NFC,摄像头等,都是系统能力之一。
  • 支持能力集:描述当前设备能够支持的那些功能。
  • 要求能力集:描述当前应用,具备哪些能力

通过设备支持能力集和应用要求能力集控制多设备应用的分发和安装

canlUse接口

在编码阶段,开发者可以通过canlUse接口,判断目标设备是否支持某种系统能力,进而执行不同的业务逻辑。通常当设备不支持某种能力时,运行到这部分代码后,给出友好弹窗,避免应用crash崩溃

typescript 复制代码
aboutToApper() {
    if(canIUse('SystemCapability.Communication.NFC.Core')) {
        controller.on('nfcStateChange', (err, nfcState)) => {
            this.message = 'nfcState' + nfcState
        })
    } else {
        this.message = 'This device does not support NFC.'
    }
}

工程级一多开发

三层架构规范

推荐在应用开发过程中使用如下的"三层工程结构",以方便代码复用及提升开发效率

  • commons(公共能力层):用于存放公共基础能力集合(如公共配置等)。commons层可编译成一个或多个HAR包或HSP包,其只可以被product和features依赖,不可以反向依赖
  • features(基础特性层):用于存放相对独立的UI及逻辑实现等。各个feature高内聚、低耦合、可定制,供产品灵活部署。不需要单独部署的feature通常编译为HAR包或HSP包,供products或其它feature使用。需要单独部署的feature通常编译为Feature类型的HAP包,和products下Entry类型的HAP包进行组合部署。其可以横向调用及依赖common层,但不能反向依赖prduct层。
  • product(产品定制层):用于针对不同设备形态进行功能和特性集成,作为应用主入口。。products层各个子目录各自编译为一个Entry类型的HAP包,作为应用主入口。product层不可以横向调用。

录各自编译为一个Entry类型的HAP包,作为应用主入口。product层不可以横向调用。

相关推荐
郑州光合科技余经理14 分钟前
本地生活系统:多业务订单字段怎么分账本导出
java·开发语言·前端·数据库·uni-app·php·ai编程
怕浪猫7 小时前
FDE 如何正确解决现场项目工程性的问题
前端·后端·ai编程
IT从业者张某某7 小时前
【鸿蒙PC命令行适配】GitUI 移植的工程实践:双 Git 引擎(libgit2/gitoxide)的鸿蒙适配之路
git·华为·harmonyos
lqj_本人7 小时前
WinPcap 鸿蒙 PC 适配全记录:从 NPF 原始抓包到 VPN_TUN 与 libpcap 双通路
qt·华为·harmonyos
西瓜太郎12347 小时前
外层模型卡片与分组详情成功率不一致,应该怎么排查?
前端·typescript·go·软件工程·react
GreenTea7 小时前
vLLM 与 SGLang KV Cache 底层实现机制深度调研报告
前端·后端·算法
●VON8 小时前
Flutter 鸿蒙插件适配实战:用 device_screen_brightness 2.0.0 控制并监听屏幕亮度
flutter·华为·harmonyos
ChinaDragon8 小时前
HarmonyOS:应用横竖屏切换
harmonyos
颜颜yan_9 小时前
ESP-IDF 鸿蒙 PC 适配全记录:打通 Python、构建工具链与 ESP32-P4 固件生成
python·华为·harmonyos
几何心凉10 小时前
没有万能模型:我用 AiiOnly Token Plan,把多款大模型的长处拼进同一个项目
前端