首页 > 其他分享 >鸿蒙 Harmony 的跨端技术方案

鸿蒙 Harmony 的跨端技术方案

时间:2024-03-05 17:47:05浏览次数:21  
标签:鸿蒙 适配 App 程序 跨端 开发者 FinClip Harmony

这两年要说技术上最火的关键字,我想肯定离不开“鸿蒙”两个字。

不管是技术社区还是身边的开发者多多少少都在关注鸿蒙的发展趋势,特别是 HarmonyOS NEXT 版本将进入独立生态体系,不再兼容安卓应用,在开发者和各个企业间激起了不小的话题。

HarmonyOS NEXT 系统底座作为华为完全自研的,是一个与 iOS、安卓将完全独立的多终端智能操作系统。摒弃了传统的 Linux 内核和 AOSP 等代码,仅支持鸿蒙内核和鸿蒙系统的应用。

最底层的原因还是华为设备的持续增长突破 7 亿大关以及官方政策的导向,企业已有的 App 需要及时构建一套基于鸿蒙原生 App 的服务,以保障鸿蒙用户的业务连续性。

但是对于企业或开发者来讲,成本确实巨大的。

终端系统的数量和种类不断增长,开发者面临着多平台开发的挑战。以往开发者一般只需要维护 iOS、Android、MacOS、Windows 几个主流核心终端操作系统即可,但是随着信创化的趋势,统信、麒麟、鸿蒙等操作系统也开始崛起,后续可能还会涌现 HyperOS、BlueOS 等等操作系统,如果这么多的操作系统终端,每个终端都用不同的语言维护,研发成本将是巨大的。

 

 

根据鸿蒙提供的信息,第一批兼容支持的跨平台框架会是 React Native、Flutter、Weex 等等,「目的也是为了提供开发生态中的历史资产复用,降低开发者的兼容门槛」,但是例如 React Native ,针对 Harmony 平台,software mansion 社区版本会新增一个 OpenHarmony Renderer 去将前端标签转化为 ArkUI 里的控件进行渲染,而在需要通过 JSI 沟通的 Plugin Module 场景,在 OpenHarmony 上会通过原生的 NAPI 去适配,可以看出来这是一个妥妥的苦力活,而适配 Openharmony 的 Flutter 版本现在由社区开发维护,这个版本的第三方 packages 也在逐渐迁移适配,这样的话可能会同时存在两个版本的 Flutter,而这两个版本间的插件生态的兼容性会比较麻烦。

那有没有更优的跨端技术选型呢?

FinClip 是一个行业领先的小程序容器技术,FinClip SDK 已全面适配鸿蒙 OS 原生开发(HarmonyOS NEXT),通过 FinClip 技术,任何企业或者开发者都可以将现有小程序场景直接上架至鸿蒙 App 中,实现场景快速迁移,同时,还能通过 FinClip Studio 将现存小程序反向生成鸿蒙 App。

 

 

而且 FinClip 完全拥抱微信生态,兼容微信语法, 也就是说企业或者开发者可以将已有微信小程序代码在 FinClip 中进行项目导入,从而导出为 Harmony OS 中可用的工程文件,并上架至鸿蒙应用市场。由于导出的工程文件自动集成了 FinClip SDK ,所以直接拥有小程序的运行能力,后续可在所导出的 App 上继续上架更多小程序,丰富 App 上的使用场景。

 

 

FinClip 为鸿蒙提供小程序运行能力,出于以下原因:

以 Web 类型技术实现应用,而不是以传统原生手段(例如在 iOS 上基于 Swift/ObjC、在 Android 上基于 Kotlin/Java),更符合市场刚需。鸿蒙在操作系统层面对 Web 技术的支持是原生的(例如开发语言采用 TypeScript,一种 JavaScript 的超集),用小程序替代原生 App 高度可行。

小程序天然跨端,对于各个平台都是由各平台原生语言开发,将各平台的差异抹平到同一水平线,然后由 webview 来承担页面的渲染,将各平台的差异降到最低。然后再在基础库这一层面做一些兼容逻辑,最后在上层的小程序开发者基本就感知不到平台的差异,可以专注于开发业务逻辑。

小程序作为应用程序,也将极大程度丰富鸿蒙的数字生态,也将帮助鸿蒙社区无缝对接海量的小程序技术开发工程师。

企业几乎都有自己的小程序内容,将可以无缝迁移到鸿蒙上,而无需再采用另一种技术去重新实现。企业在过去的多年里,自行在自己的融合型 App 中打造的融合 HTML5 碎片的“热更新”技术,其底层迁移至鸿蒙,依然需要重新开发与调试。在一个持续优化更新、本身还在快速发展的操作系统如鸿蒙上,此工作并不简单,开发人员需要重新培训,知识体系与 Android 并不一样。

现在留给我们的时间不多了,如果企业有鸿蒙 App 改造的需求,是不是可以将 App 鸿蒙化的改造排个优先级?先把关键的、需要适配的核心功能,自研团队集中精力适配了,其他核心业务场景通过小程序化改造,或者让第三方开发商提供小程序版本,以极低的门槛植入到自有 App 中,先保证关键业务能在鸿蒙 NEXT 中运行,后续再慢慢改造边缘场景呢?

标签:鸿蒙,适配,App,程序,跨端,开发者,FinClip,Harmony
From: https://www.cnblogs.com/finbird/p/18054536

相关文章

  • 【HarmonyOS】一文带你快速实现页面禁止截屏功能
    ​【关键字】HarmonyOS、禁止页面截屏、窗口、隐私模式、setWindowPrivacyMode 1、写在前面我们在开发HarmonyOS应用的过程中可能会遇到这样的需求:可能某一个页面中的数据对用户而言是非常重要的,因此需要针对该页面做相应的保护操作,常见的就是禁止该页面被截屏,那么在HarmonyO......
  • 【HarmonyOS NEXT】Map如何转JSON
    ​【关键字】HarmonyOSNEXT、Object.fromEntries 【问题背景】之前基于API9发过一篇文章【HarmonyOS】JSON格式化解析Map数据失败-开发者服务与平台部社区-3MS知识管理社区(huawei.com),里面提到用Object.fromEntries可将Map数据转为JSON数据,但是在NEXT版本上却被校验......
  • 【HarmonyOS NEXT】解决Scan Kit生成二维码不支持添加logo图片
    ​ 【关键字】HarmonyOS、ScanKit、二维码、logo图片、生成二维码 1、写在前面HarmonyOS的ScanKit提供了码图生成的能力,具体的使用方式可以参考开发指南:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/scan-barcodegenerate-0000001714658685现在有个......
  • 【HarmonyOS】如何实现数据持久化不会被应用卸载而清除
    【关键字】数据持久化,AssetStoreKit 【问题】最近在学习HarmonyOSpreivewer,遇到了一个场景,跟大家分享一下。核心的需求是需要做一个数据持久化的能力,但是将数据缓存在应用沙箱的files目录下后,每次重启应用确实能够查到存储的数据,一旦将应用卸载重装,或者清除应用数据后,就......
  • 鸿蒙开发填坑记录
    1、在DevEcoStudio中点击Previewer无法预览。出现Previewfailed.xxxxxx按照网上的检查local.properties文件中nodejs.dir路径是否和node.jshome是否一致。我的是一致的,此方法对我不管用 解决办法:1、先删除项目中的entry下的.preview文件夹。2、进入File下的Invalida......
  • 鸿蒙开发游戏(四)---大鱼吃小鱼(互吃升级)
    鸿蒙开发游戏(一)---大鱼吃小鱼(界面部署)鸿蒙开发游戏(二)---大鱼吃小鱼(摇杆控制)鸿蒙开发游戏(三)---大鱼吃小鱼(放置NPC)鸿蒙开发游戏(四)---大鱼吃小鱼(互吃升级)鸿蒙开发游戏(五)---大鱼吃小鱼(添加音效)鸿蒙开发游戏(六)---大鱼吃小鱼(称霸海洋) 前言:该篇对NPC进行了升级,这里可以投入多个......
  • 【HarmonyOS】聊一聊ArkUI中的Image组件缓存
    【关键字】image组件,缓存 【问题描述】给Image组件设置网络图片展示,业务将图片进行了下线处理,再次进入这个页面Image组件还是展示着这张图,而不是恢复了默认占位图。 【问题分析】这个问题显然是跟Image组件的缓存机制有关。目前Image组件的图片会有内存缓存机制,会统计到......
  • 【HarmonyOS】ArkUI中this指向的坑
    ​【关键字】this指向,.bind(this),TS到ArkTS的适配 随着HarmonyOSPreviewer版本的发布,笔者也是立马鸟枪换炮,想试一试鸿蒙的新特性,新功能。结果刚把老的工程代码导入,工程就无法编译了,让我们来看看是哪里报了错:​​bind方法居然不支持了。要知道在Api9的HarmonyOS开发过程中,我......
  • 【HarmonyOS】Button按钮设置带有渐变色的背景图片无效
    ​【关键字】Button、渐变色、背景图片、backgroundImage 【问题描述】在为Button组件设置背景图片时未生效,这里准备的背景图片是渐变色的,当在代码中设置完成之后,发现按钮并没有像预想的那样变成渐变色,代码如下:​效果是这样的:​这也太奇怪了,难道是Button按钮的背景图片不......
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit
    1.问题描述实时验证和非实时验证的区别是什么?解决方案相同点:“手机号快速验证”和“实时验证”都是为了向用户发起获取手机号信息的请求。最终目的都是为了获取到手机号。这两种获取方式都需要完成“获取您的手机号”的Scope权限申请。区别:实时验证手机号:每次调用都会拉起授......