当前位置: 首页 > news >正文

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

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.dtcms.com/a/225178.html

相关文章:

  • 仓颉鸿蒙开发:制作底部标签栏
  • 鸿蒙OS基于UniApp的WebRTC视频会议系统实践:从0到1的HarmonyOS适配之路#三方框架 #Uniapp
  • Spring Boot 中的 Web 应用与 Reactive Web 应用
  • React 路由管理与动态路由配置实战
  • Java中的JSONObject详解:从基础到高级应用
  • 【数据结构】图的存储(十字链表)
  • 什么是子查询?相关子查询的性能问题?
  • 高效Excel数据净化工具:一键清除不可见字符与格式残留
  • 批量导出CAD属性块信息生成到excel——CAD C#二次开发(插件实现)
  • 重读《人件》Peopleware -(14)Ⅱ 办公环境 Ⅶ 把门带上
  • 【解决】【亲测下载obsidian可行】打不开github.com 或者 加速访问 github
  • 从零开始的git学习
  • [ElasticSearch] RestAPI
  • Spring Boot,注解,@ConfigurationProperties
  • OpenFeign和Gateway集成Sentinel实现服务降级
  • 网络协议的原理及应用层
  • Vue-2-前端框架Vue基础入门之二
  • 《深度解构现代云原生微服务架构的七大支柱》
  • 儿童节快乐,聊聊数字的规律和同余原理
  • C++代码常见问题解析与优化(虚函数)
  • 从架构视角设计统一网络请求体系 —— 基于 uni-app 的前后端通信模型
  • 【设计模式-3.4】结构型——代理模式
  • QT-JSON
  • B站视频下载器 v1.0.4|免登录下载1080P视频
  • LabVIEW双光子显微镜开发
  • C++四种类型转换方式
  • 017搜索之深度优先搜索——算法备赛
  • 宝塔专属清理区域,宝塔清理MySQL日志(高效释放空间)
  • Azure Devops 系列之三- vscode部署function app
  • LeetCode算法题 (搜索二维矩阵)Day18!!!C/C++