ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【HarmonyOS开发】ArkUI-X 跨平台框架(利用ArkTs开发Android&IOS) [打印本页]

作者: 宁睿    时间: 2024-7-11 00:36
标题: 【HarmonyOS开发】ArkUI-X 跨平台框架(利用ArkTs开发Android&IOS)

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

1、React Native


2、Flutter


3、Xamarin


4、Ionic


5、NativeScript


6、uniapp


二、OpenHarmony的跨平台ArkUI-X

   1、接纳 C++ 编写整体后端引擎代码,保持在多平台的可移植性,最小化平台依靠,降低平台移植本钱。 
  2、整体绘制接纳自渲染机制,降低平台依靠,同时进一步提升绘制效果的一致性。 
  3、抽象出平台适配层以及平台桥接层,以便不同平台的适配。
  

1、 下载DevEco Studo 4.0 beta2+

IDE下载地点width=device-width,initial-scale=1.0
https://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


2、 安装ArkUI-X的SDK

2.1 安装OpenHarmony的API10



2.1 安装ArkUI-X的SDK



3、 创建ArkUI-X项目

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



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

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


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



4、 目录说明

编译完成后,直接将.arkui-x中的Android/IOS导入对应的平台即可
  1. ArkUI-X应用工程
  2.   ├── .arkui-x
  3.   │   ├── android                 // Android平台相关代码
  4.   │   └── ios                     // iOS平台相关代码
  5.   ├── .hvigor
  6.   ├── .idea
  7.   ├── AppScope
  8.   ├── entry
  9.   ├── hvigor
  10.   ├── oh_modules
  11.   ├── build-profile.json5
  12.   ├── hvigorfile.ts
  13.   ├── local.properties
  14.   └── oh-package.json5
复制代码


期待可以兼容更多的平台,eg:Linux、Windows等...
三、扩展:XComponent(动态加载/EGL/OpenGLES渲染

遇到一个好玩的组件,在开发扫一扫功能时用到了,记载一下
   XComponent组件作为一种绘制组件,通常用于满足开发者较为复杂的自界说绘制需求,比方相机预览流的表现和游戏画面的绘制。 
  其可通过指定其type字段来实现不同的功能,主要有两个“surface”和“component”字段可供选择。
  对于“surface”类型,开发者可将相关数据传入XComponent单独拥有的“surface”来渲染画面。 
  对于“component”类型则主要用于实现动态加载表现内容的目的。
  名称形貌SURFACE用于EGL/OpenGLES和媒体数据写入,开发者定制的绘制内容单独展示到屏幕上。COMPONENTXComponent将酿成一个容器组件,并可在其中实行非UI逻辑以动态加载表现内容。TEXTURE用于EGL/OpenGLES和媒体数据写入,开发者定制的绘制内容会和XComponent组件的内容合成后展示到屏幕上。   说明:
  type为COMPONENT(“component”)时,XComponent作为容器,子组件沿垂直方向布局:
  
  1. @Builder
  2. function addText(label: string): void {
  3.   Text(label)
  4.     .fontSize(40)
  5. }
  6. @Entry
  7. @Component
  8. struct Index {
  9.   @State message: string = 'Hello XComponent'
  10.   @State messageCommon: string = 'Hello World'
  11.   build() {
  12.     Row() {
  13.       Column() {
  14.         XComponent({ id: 'xcomponentId-container', type: 'component' }) {
  15.           addText(this.message)
  16.           Divider()
  17.             .margin(4)
  18.             .strokeWidth(2)
  19.             .color('#F1F3F5')
  20.             .width("80%")
  21.           Column() {
  22.             Text(this.messageCommon)
  23.               .fontSize(30)
  24.           }
  25.         }
  26.       }
  27.       .width('100%')
  28.     }
  29.     .height('100%')
  30.   }
  31. }
复制代码
动态加载@BuilderaddText函数

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4