【HarmonyOS 5】鸿蒙HarmonyOS —(cordova)研发方案详解

news2025/6/6 21:34:39

Android、Ios 和 HarmonyOS APP研发分析
Android研发语言Java、Ios研发语言objective-c, HarmonOS研发语言ArkTs和C/C++,写了第一句,就会有人反驳,Android和Ios也支持C/C++语言,封装成动态库so,然后调用就可以了,说的也没有错误,很多APP采用此方案。我这里主要分析的是官方提供的框架,Android的SDK只有Java语言编写的SDK,Ios提供的只有objective-c的sdk,鸿蒙则不同,在鸿蒙的开发者网站中,大部分接口不但提供ArkTs接口,同时也提供了C/C++接口,所以可以说鸿蒙是支持ArkTS和C/C++研发也不为过的,如果您精通C/C++就可以在harmonyOS平台上,大有作为的。我想说的重点不在这里,重点是三个研发平台采用的是不同的研发语言,对于一个移动端研发的程序员,如果要精通三个平台研发,确实很难,仅精通一个平台以实属不易了。然面对一个公司,开发和运营一款APP按照传统原生研发,APP的团队至少在3到5人的研发才可以胜任,粗略估算一年的团队费用在100万左右的投入,对于大厂5人以下的研发团队,完全可以接受,但是对于一个创业型的小公司,这个投入势必难以接受,在加上国内的政策性成本,APP研发的门槛已是很高了。使用原生研发,小型创业团队极难在短时间内收回研发的成本。

使用codova混合式研发
具以上原因,为了降低研发成本,如果一次研发能够同时在三个平台使用就好了,所以现在出现了不少框架来解决这个问题,然很多框架仍需要单独学习,且不够高效。我们所需要的是对于公司现有的开发团队,不需要学习新知识的情况下就可以在APP端研发,且研发的APP可以结合操作系统,直接调用原生API;目前能够满足这几个条件的只有cordova了。cordova是使用webview为UI交互,使用WEB技术的JS、CSS就可以完成研发,且可以调用原生API,也可以调用原生page页面,可以说现在所有的程序员都可以掌握这门技术,无需在多学习知识,公司无论大小,现有研发团队就可以胜任,哪怕研发团队只有一人也可以完成。对于公司来说极大的节省了成本,但是对于一个程序员,由于使用JS、CSS,就很不屑于使用这个技术研发APP,不过我可以肯定的说,现在大多APP都使用的混合研发的。所以对于小厂,直接使用后台的Java程序员就可以兼任前端的APP研发,并且支持三个平台。

Harmony-Cordova 研发方案是基于 Apache Cordova 框架,使开发者能够使用 HTML5、CSS 和 JavaScript 等 Web 技术为鸿蒙操作系统(HarmonyOS)开发应用程序的技术方案。其核心目标是实现跨平台应用的鸿蒙版本构建。以下是详细解析:

一、‌方案核心原理

  1. 统一开发语言‌:开发者使用通用的 Web 技术(HTML/CSS/JS)编写应用逻辑,Cordova 框架负责将代码封装为鸿蒙应用包 。
  2. 原生插件桥梁‌:通过 Java 编写的 Cordova 插件 调用鸿蒙原生能力(API 12+)。插件在 src/ohos/ 目录实现原生接口,并通过 plugin.xml 配置文件映射到 JavaScript 调用接口 。
  3. 鸿蒙 C-API 支持‌:区别于 Android/iOS,鸿蒙原生支持 C/C++ API,允许插件直接调用底层能力,提升性能并简化适配 。

二、‌开发流程与关键技术

  1. 环境搭建‌:
    • 安装 Node.js 及 Cordova CLI:npm install -g cordova 。
    • 创建项目:cordova create project_name com.example.app AppName 。
    • 添加鸿蒙平台支持:cordova platform add ohos(需基于支持鸿蒙的 Cordova 版本) 。
  2. 插件开发规范‌:
    • 目录结构示例‌:

      textCopy Code

      MyPlugin/ src/ohos/ → 鸿蒙原生代码(Java/C++) www/ → JS前端接口 plugin.xml → 插件配置 ``` :ml-citation{ref="5" data="citationList"}

    • plugin.xml 关键配置‌:

      xmlCopy Code

      <platform name="ohos"> <config-file target="config.json" parent="abilities"> <ability name="MyPluginAbility" /> </config-file> <source-file src="src/ohos/DeviceInfo.java" target-dir="src/ohos" /> </platform> ``` :ml-citation{ref="5" data="citationList"}

  3. 集成鸿蒙服务‌:
    • 登录 AppGallery Connect(AGC)创建项目并配置应用 。
    • 添加插件(如崩溃服务):cordova plugin add @cordova-plugin-agconnect/crash 。
    • 将鸿蒙配置文件(如 agconnect-services.json)放入指定目录 。

三、‌鸿蒙适配优势与挑战

  1. 优势‌:
    • 跨平台成本降低‌:复用 Web 技术栈,减少针对鸿蒙的单独开发投入 。
    • 原生性能支持‌:通过 C/C++ API 直接调用系统能力,性能接近原生 ArkTS 应用 。
    • 插件生态扩展‌:可兼容部分现有 Cordova 插件,或基于鸿蒙 API 定制新插件 。
  2. 挑战‌:
    • 组件兼容性‌:部分鸿蒙原生组件(如 Image 的圆形裁剪)需通过插件扩展实现 。
    • 平台差异处理‌:需处理鸿蒙与 Android/iOS 在事件机制、生命周期等层面的差异 。

四、‌典型应用场景

  • 快速迁移现有 Cordova 应用‌:将 Android/iOS 应用快速扩展至鸿蒙平台 。
  • 混合开发模式‌:在鸿蒙应用中嵌入 Web 模块,结合原生插件调用设备功能 。
  • AGC 服务集成‌:便捷接入崩溃分析、数据存储等华为云服务 。

总结

Harmony-Cordova 方案通过 Web 技术与原生插件桥接,显著降低了鸿蒙应用的开发门槛,尤其适合需兼顾多平台的团队。其成功依赖于对鸿蒙 C-API 的高效利用及定制化插件开发 。开发者应重点关注插件适配与平台特性优化,以平衡开发效率与应用性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2402139.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【物联网-TCP/IP】

物联网-TCP/IP ■ TCP/IP■■■ 添加链接描述 ■ TCP/IP ■ ■ ■

Halcon光度立体法

1、光度立体法&#xff0c;可用于将对象的三维形状与其二维纹理&#xff08;例如打印图像&#xff09;分离。需要用不同方向而且已知照明方向的多个光源&#xff0c;拍摄同一物体的至少三张图像。请注意&#xff0c;所有图像的相机视角必须相同。 物体的三维形状主要被计算为三…

cocos3.X的oops框架oops-plugin-excel-to-json改进兼容多表单导出功能

在使用oops框架的过程中&#xff0c;它的导出数据并生成数据结构的插件oops-plugin-excel-to-json有些小的坑点&#xff0c;为满足我个人习惯&#xff0c;对此部分进行了一个小的修改&#xff0c;有需要的拿去用&#xff0c;记录下供大家参考&#xff1b; 一、配置&#xff1a;…

每日八股文6.3

每日八股-6.3 Mysql1.COUNT 作用于主键列和非主键列时&#xff0c;结果会有不同吗&#xff1f;2.MySQL 中的内连接&#xff08;INNER JOIN&#xff09;和外连接&#xff08;OUTER JOIN&#xff09;有什么主要的区别&#xff1f;3.能详细描述一下 MySQL 执行一条查询 SQL 语句的…

Kubernetes (k8s)版本发布情况

Kubernetes (k8s)版本发布情况 代码放在 GitHub - kubernetes/kubernetes: Production-Grade Container Scheduling and Management https://github.com/kubernetes/kubernetes/releases 文档放在 kubernetes.io各个版本变更等: https://github.com/kubernetes/kubernet…

QT 5.9.2+VTK8.0实现等高线绘制

项目下载链接&#xff1a;QT5.9.2VTK8.0实现等高线绘制资源-CSDN文库 示例如下&#xff1a; 主要代码如下&#xff1a; #include "vtkRenderer.h" #include "vtkRenderWindow.h" #include "vtkRenderWindowInteractor.h" #include "vtkPo…

兼容老设备!EtherNet/IP转DeviceNet网关解决储能产线通讯难题

在新能源行业飞速发展的当下&#xff0c;工业自动化水平的高低直接影响着企业的生产效率与产品质量。JH-EIP-DVN疆鸿智能ETHERNET/IP和DEVICENET作为工业领域常用的通信协议&#xff0c;它们之间的转换应用在新能源生产线上发挥着关键作用。本文重点探讨ETHERNETIP从站转DEVICE…

LabVIEW自感现象远程实验平台

LabVIEW开发自感现象远程实验平台&#xff0c;通过整合 NI数据采集设备、菲尼克斯&#xff08;Phoenix Contact&#xff09;继电器模块及罗技&#xff08;Logitech&#xff09;高清摄像头&#xff0c;实现远程数据采集、仪器控制与实时监控三大核心功能。平台突破传统实验装置局…

Python----目标检测(《YOLOv3:AnIncrementalImprovement》和YOLO-V3的原理与网络结构)

一、《YOLOv3:AnIncrementalImprovement》 1.1、基本信息 标题&#xff1a;YOLOv3: An Incremental Improvement 作者&#xff1a;Joseph Redmon, Ali Farhadi 机构&#xff1a;华盛顿大学&#xff08;University of Washington&#xff09; 发表时间&#xff1a;2018年 代…

算法篇 八大排序(冒泡 插入 选择 堆 希尔 快排 归并 计数)

目录 引言 1.冒泡排序 思路 代码实现 2.选择排序 思路 代码实现&#xff08;存在易错点&#xff09; 3.插入排序 思路 代码实现 4.希尔排序 思路 代码实现 5.堆排序 思路 代码实现 6.快速排序&#xff08;快排&#xff09; 一.三路划分 思路 代码实现 二.自…

音视频之视频压缩编码的基本原理

系列文章&#xff1a; 1、音视频之视频压缩技术及数字视频综述 2、音视频之视频压缩编码的基本原理 一、预测编码&#xff1a; 1、预测编码的基本概念&#xff1a; 预测法是最简单、实用的视频压缩编码方法&#xff0c;经过压缩编码后传输的并不是像素本身的取样值&#xff0…

IDEA 包分层显示设置

方法一&#xff08;用的IntelliJ IDEA 2024.1.4版本&#xff09;&#xff1a; 找到项目视图设置入口&#xff1a;在左侧Project&#xff08;项目&#xff09;面板的顶部&#xff0c;有个三个点...的按钮 &#xff0c;点击它。 进入树形外观配置&#xff1a;在弹出的菜单中&…

深度学习和神经网络 卷积神经网络CNN

1.什么是卷积神经网络 一种前馈神经网络&#xff1b;受生物学感受野的机制提出专门处理网格结构数据的深度学习模型 核心特点&#xff1a;通过卷积操作自动提取空间局部特征&#xff08;如纹理、边缘&#xff09;&#xff0c;显著降低参数量 2.CNN的三个结构特征 局部连接&a…

PlayWright | 初识微软出品的 WEB 应用自动化测试框架

Playwright是微软大厂背书的跨平台 WEB 应用自动化测试框架&#xff0c;支持多开发语言&#xff08;TypeScript、JavaScript、.Net、Python、Java&#xff09;及多浏览器&#xff08;Chromium、WebKit、Firefox&#xff09;&#xff0c;同时支持移动端测试。 安装 playwright …

Mac电脑_钥匙串操作选项变灰的情况下如何删除?

Mac电脑_钥匙串操作选项变灰的情况下如何删除&#xff1f; 这时候 可以使用相关的终端命令进行操作。 下面附加文章《Mac电脑_钥匙串操作的终端命令》。 《Mac电脑_钥匙串操作的终端命令》 &#xff08;来源&#xff1a;百度~百度AI 发布时间&#xff1a;2025-06&#xff09;…

2025前端微服务 - 无界 的实战应用

遇饮酒时须饮酒&#xff0c;得高歌处且高歌 文章目录 什么是前端微服务主流框架概述无界 - 腾讯乾坤 - 阿里Micro-app Vue3项目引用⑴. 项目依赖安装⑵. main.ts 文件配置⑶. 路由配置⑷. 页面设置 隐藏子应用菜单及顶部信息栏子应用样式冲突问题虚拟路由⑴. 路由⑵. 页面 跨域…

【设计模式-4.8】行为型——中介者模式

说明&#xff1a;本文介绍行为型设计模式之一的中介者模式 定义 中介者模式&#xff08;Mediator Pattern&#xff09;又叫作调节者模式或调停者模式。用一个中介对象封装一系列对象交互&#xff0c;中介者使各对象不需要显式地互相作用&#xff0c;从而使其耦合松散&#xf…

行列式的性质

1 行列式使用如下性质定义 1&#xff09;单位矩阵行列式值为 1&#xff0c; &#xff0c;对于任意单位矩阵均成立&#xff1b; 2&#xff09;当矩阵交换一行后&#xff0c;行列式值改变符号&#xff0c;如置换矩阵的行列式值为 &#xff08;根据行交换次数决定&#xff09;&…

联软NSPM自动化策略管理 助力上交所加速国产化替代提升运维效率

在金融行业核心基础设施国产化浪潮与网络安全强监管的双重背景下&#xff0c;上海证券交易所&#xff08;以下简称“上交所”&#xff09;积极拥抱变革&#xff0c;携手长期合作伙伴联软科技&#xff0c;成功部署了联软安全策略管理系统&#xff08;NSPM&#xff09;。该项目不…

Flask + ECharts+MYSQL物联网数字化大屏

基于Flask+ECharts的物联网数字化大屏系统,包含中国地图实时数据更新功能。这个系统模拟了物联网设备在全国范围内的分布和运行状况,并实时更新数据。 一、系统架构设计 技术栈 后端:Flask(轻量级路由+API支持) 前端:ECharts(地图+动态图表)、WebSocket(实时更新)…