【HarmonyOS开发】ArkUI-X 跨平台框架(使用ArkTs开发Android&IOS)

这篇具有很好参考价值的文章主要介绍了【HarmonyOS开发】ArkUI-X 跨平台框架(使用ArkTs开发Android&IOS)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

arkui-x,HarmonyOS,harmonyos,android,ios

ArkUI-X 跨平台框架进一步将 ArkUI 开发框架扩展到了多个OS平台,目前支持OpenHarmony、HarmonyOS、Android、 iOS,后续会逐步增加更多平台支持。开发者基于一套主代码,就可以构建支持多平台的精美、高性能应用。

一、跨平台框架有哪些?

1、React Native

  • React Native 是一个基于 JavaScript 和 React 的开源框架,由 Facebook 开发和维护。

  • 它使用一种称为 JSX 的语法,将组件的结构和行为描述为声明式的代码。

  • React Native 提供了访问设备原生功能的能力,通过使用内置的原生组件和模块,开发人员可以创建具有原生用户体验的应用程序。

  • 由于 React Native 的代码可以在多个平台上共享和重用,这使得开发和维护跨平台应用变得更加高效。

2、Flutter

  • Flutter 是一个由 Google 开发的开源框架,用于构建高性能、跨平台的移动应用程序。

  • Flutter 使用 Dart 语言,它具有现代化的语法和特性,包括强类型、异步编程和热重载。

  • Flutter 提供了自己的渲染引擎,可以实现高性能的用户界面,并且可以在 iOS、Android 和 Web 平台上运行。

  • 通过使用 Flutter,开发人员可以通过一套代码库创建漂亮、响应式且原生般的应用程序。

3、Xamarin

  • Xamarin 是一个跨平台移动应用开发框架,由 Microsoft 推出。

  • 它使用 C# 语言和 .NET 平台,开发人员可以使用共享的代码库构建原生应用程序,包括 iOS、Android 和 Windows。

  • Xamarin 提供了对设备功能和原生 API 的访问,开发人员可以使用 Xamarin.Essentials 来访问常用的设备功能,如相机、传感器等。

  • Xamarin 还提供了丰富的工具和组件库,以提高开发效率并简化跨平台应用程序的创建过程。

4、Ionic

  • Ionic 是一个基于 Web 技术的开源框架,用于构建跨平台的移动应用程序。

  • 它使用 HTML、CSS 和 JavaScript 来构建应用程序,并通过使用 WebView 在不同平台上运行。

  • Ionic 结合了 Angular 框架和 Cordova 插件,提供了丰富的 UI 组件和原生功能的访问能力。

  • 通过 Ionic,开发人员可以使用一套代码库创建移动应用程序,并在 iOS、Android 和 Web 平台上进行部署。

5、NativeScript

  • NativeScript 是一个开源的跨平台移动应用框架,允许开发人员使用 JavaScript、TypeScript 或 Angular 构建原生应用程序。

  • 它通过使用原生组件和 API,以及内置的 JavaScript 运行时,将 JavaScript 代码转换为本机代码。

  • NativeScript 提供了对设备功能的访问,开发人员可以使用插件来扩展应用程序的功能。

  • NativeScript 还支持 Angular、Vue.js 和 React 框架,以满足开发人员的不同需求。

6、uniapp

  • UniApp 使用 Vue.js 作为主要的开发框架,并提供了一套基于 Vue.js 的组件和 API,使开发人员可以使用熟悉的开发方式构建跨平台应用。开发人员可以编写一次代码,然后通过编译和转换过程,在不同平台上生成对应的原生应用程序。

  • UniApp 提供了访问设备功能和原生 API 的能力,开发人员可以使用插件或内置的 API 来实现与设备的交互,如访问相机、地理位置、传感器等。此外,UniApp 还提供了一些特定平台的扩展能力和优化选项,以提供更好的用户体验和性能。

二、OpenHarmony的跨平台ArkUI-X

1、采用 C++ 编写整体后端引擎代码,保持在多平台的可移植性,最小化平台依赖,降低平台移植成本。 

2、整体绘制采用自渲染机制,降低平台依赖,同时进一步提升绘制效果的一致性。 

3、抽象出平台适配层以及平台桥接层,以便不同平台的适配。

arkui-x,HarmonyOS,harmonyos,android,ios

1、 下载DevEco Studo 4.0 beta2+

IDE下载地址width=device-width,initial-scale=1.0https://docs.openharmony.cn/pages/v4.0/zh-cn/release-notes/OpenHarmony-v4.0-release.md/#%E9%85%8D%E5%A5%97%E5%85%B3%E7%B3%BB

arkui-x,HarmonyOS,harmonyos,android,ios

2、 安装ArkUI-X的SDK

2.1 安装OpenHarmony的API10

arkui-x,HarmonyOS,harmonyos,android,ios

2.1 安装ArkUI-X的SDK

arkui-x,HarmonyOS,harmonyos,android,ios

3、 创建ArkUI-X项目

3.1 新建 => 导入 => 导入示例工程

arkui-x,HarmonyOS,harmonyos,android,ios

3.2 基于示例Hello World工程进行ArkUI-X进行开发

Harmony改为OpenHarmony,然后选择ArkUI-X下的示例工程

arkui-x,HarmonyOS,harmonyos,android,ios

3.3 创建完成后,自动检查系统环境,安装依赖

arkui-x,HarmonyOS,harmonyos,android,ios

4、 目录说明

编译完成后,直接将.arkui-x中的Android/IOS导入对应的平台即可

ArkUI-X应用工程
  ├── .arkui-x
  │   ├── android                 // Android平台相关代码
  │   └── ios                     // iOS平台相关代码
  ├── .hvigor
  ├── .idea
  ├── AppScope
  ├── entry
  ├── hvigor
  ├── oh_modules
  ├── build-profile.json5
  ├── hvigorfile.ts
  ├── local.properties
  └── oh-package.json5

arkui-x,HarmonyOS,harmonyos,android,ios

期待可以兼容更多的平台,eg:Linux、Windows等...

三、扩展:XComponent(动态加载/EGL/OpenGLES渲染)

遇到一个好玩的组件,在开发扫一扫功能时用到了,记录一下

XComponent组件作为一种绘制组件,通常用于满足开发者较为复杂的自定义绘制需求,例如相机预览流的显示和游戏画面的绘制。 

其可通过指定其type字段来实现不同的功能,主要有两个“surface”和“component”字段可供选择。

对于“surface”类型,开发者可将相关数据传入XComponent单独拥有的“surface”来渲染画面。 

对于“component”类型则主要用于实现动态加载显示内容的目的。

名称 描述
SURFACE 用于EGL/OpenGLES和媒体数据写入,开发者定制的绘制内容单独展示到屏幕上。
COMPONENT XComponent将变成一个容器组件,并可在其中执行非UI逻辑以动态加载显示内容。
TEXTURE 用于EGL/OpenGLES和媒体数据写入,开发者定制的绘制内容会和XComponent组件的内容合成后展示到屏幕上。

说明:

type为COMPONENT(“component”)时,XComponent作为容器,子组件沿垂直方向布局:

  • 垂直方向上对齐格式:FlexAlign.Start

  • 水平方向上对齐格式:FlexAlign.Center

@Builder
function addText(label: string): void {
  Text(label)
    .fontSize(40)
}

@Entry
@Component
struct Index {
  @State message: string = 'Hello XComponent'
  @State messageCommon: string = 'Hello World'
  build() {
    Row() {
      Column() {
        XComponent({ id: 'xcomponentId-container', type: 'component' }) {
          addText(this.message)
          Divider()
            .margin(4)
            .strokeWidth(2)
            .color('#F1F3F5')
            .width("80%")
          Column() {
            Text(this.messageCommon)
              .fontSize(30)
          }
        }
      }
      .width('100%')
    }
    .height('100%')
  }
}

动态加载@BuilderaddText函数文章来源地址https://www.toymoban.com/news/detail-807986.html

到了这里,关于【HarmonyOS开发】ArkUI-X 跨平台框架(使用ArkTs开发Android&IOS)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开发跨平台APP,是用Flutter还是React Native开发框架?

     随着移动互联网的飞速发展,对于开发人员而言,如何快速地开发出兼容不同平台(iOS、Android)的应用,成为了一个重要的问题。 跨平台应用程序开发框架的好处: 1. 一个App适用于多个设备; 2. 一个App适用于多个平台; 3. 一个App可以在多个应用商店中发布; 4. 只需编写

    2024年02月15日
    浏览(77)
  • 跨平台的桌面应用程序开发框架Electron | 开源日报 0906

    Stars: 109.3k License: MIT Electron 是一个基于 Node.js 和 Chromium 的开源框架,允许使用 JavaScript、HTML 和 CSS 编写跨平台的桌面应用程序。它被 Atom 编辑器等众多应用程序所采用。该项目具有以下核心优势: 跨平台:Electron 提供了 macOS、Windows 和 Linux 三个主要操作系统的二进制文件。

    2024年02月09日
    浏览(60)
  • 基于Avalonia 11.0.0+ReactiveUI 的跨平台项目开发1-通用框架

    Avalonia是.NET的一个跨平台UI框架,提供了一个灵活的样式系统,支持广泛的操作系统,如Windows、Linux、macOS,并对Android、iOS和WebAssembly提供了实验性支持。 之前已经了解了基于Avalonia的项目在国产麒麟系统中运行的案例。正是Avalonia在跨平台的出色表现,学习和了解Avalonia这个

    2024年02月16日
    浏览(59)
  • Android:手把手带你入门跨平台UI开发框架Flutter

    定义:一款Google出品开源的移动客户端UI开发框架(SDK) 作用:用一套代码同时在Android、iOS上快速构建高质量、高性能的原生用户界面 开发语言:Dart语言(高开发效率、高性能等) 2. 特点 Flutter的主要特点包括:使用自身的高性能渲染引擎进行渲染 Dart编程语言语言 具体介

    2024年04月13日
    浏览(68)
  • 界面开发框架DevExpress XAF v24.1新版预告 - 跨平台应用UI(二)

    DevExpress XAF是一款强大的现代应用程序框架,允许同时开发ASP.NET和WinForms。XAF采用模块化设计,开发人员可以选择内建模块,也可以自行创建,从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。 本文中的内容概述了XAF跨平台.NET应用UI和DevExpress .NET App、Web A

    2024年04月23日
    浏览(59)
  • 界面开发框架DevExpress XAF v24.1新版预告 - 跨平台应用UI(一)

    DevExpress XAF是一款强大的现代应用程序框架,允许同时开发ASP.NET和WinForms。XAF采用模块化设计,开发人员可以选择内建模块,也可以自行创建,从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。 本文中的内容概述了XAF跨平台.NET应用UI和DevExpress .NET App、Web A

    2024年04月13日
    浏览(64)
  • Android:手把手带你入门跨平台UI开发框架Flutter,渣本Android开发小伙如何一步步成为架构师

    3.1 框架结构 Flutter框架主要分为两层:FrameWork层、Engine层,如下图所示: 说明:开发时,主要基于Framework层;运行时,则是运行在 Engine上。每层的具体介绍如下: 3.2 原理概述 开发时,主要基于Framework层;运行时,则是运行在 Engine上 Engine是Flutter的独立虚拟机,由它适配 提

    2024年04月16日
    浏览(71)
  • 【QT+QGIS跨平台编译】之三:【OpenSSL+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

    OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。 SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。SSL能使用户/服务器应用

    2024年01月22日
    浏览(93)
  • 【QT+QGIS跨平台编译】之七:【libjpeg+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

    libjpeg是一个广泛使用的jpeg图像压缩和解压的函数库,采用 C 语言开发。 2013年1月,Independent JPEG Group发布了版本9,对新引入的无损编码模式进行了改进。2022年1月,发布了版本9e,是唯一真正的源参考JPEG编解码器。 【libjpeg跨平台编译】:Windows环境下编译成果(支撑QGIS跨平台

    2024年01月25日
    浏览(66)
  • 【QT+QGIS跨平台编译】之八:【zstd+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

    【libzstd跨平台编译】:Windows环境下编译成果(支撑QGIS跨平台编译,以及二次研发) 【libzstd跨平台编译】ÿ

    2024年01月25日
    浏览(99)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包