資訊速遞 | ArkUI-X 預覽版已正式開源!

OpenHarmony項目群技術指導委員會(以下簡稱“TSC”)-跨平臺應用開發框架TSG所孵化項目?——?ArkUI-X,近期已正式開源?,開發者基于一套主代碼,就可以將在OpenHarmony上開發的精美、高性能應用同時運行在Android、iOS等其它OS平臺上。ArkUI-X開源項目地址:https://gitee.com/arkui-x?。

01

ArkUI-X?誕生背景

隨著越來越多設備的智能化,新的場景以及新的需求越來越分散,包括各類屏幕的支持(不同分辨率、尺寸等)、各類交互模式的支持(觸控、語音,手勢等)、各類不同能力的設備、以及設備之間的連續交互等。對于應用開發者而言,如何滿足上述需求開發出精致流暢和一致體驗的應用,挑戰也越來越大。基于如上技術挑戰,OpenHarmony?TSC于2022年4月正式成立跨平臺應用開發框架TSG,成員包括華為、阿里、美的等多名資深技術專家。跨平臺應用開發框架TSG對業界相關的跨平臺應用開發框架所涉及的關鍵技術進行洞察分析,制定關鍵的演進策略,并開始構建跨平臺應用開發框架項目——ArkUI-X。

02

ArkUI-X?主要介紹

ArkUI-X是基于OpenHarmony官方原生框架ArkUI之上擴展的。ArkUI在架構設計之初就是把跨平臺作為一個重要特性考慮在內的,從代碼的架構上就對各個平臺做了解耦,可以方便地移植到不同的平臺。同時ArkUI使用的核心引擎、圖形引擎和ArkTS運行時等關鍵模塊都是可以跨平臺的。目的是讓開發者基于一套主代碼,就可以將在OpenHarmony上開發的精美、高性能應用同時可以運行在其它不同的OS平臺上。ArkUI-X開源項目的“X”可以理解為“Cross”,將ArkUI擴展到不同的平臺上,同時也代表了未來無限的可能。

ArkUI-X的應用工程和最新的OpenHarmony保持一致,當前支持構建OpenHarmony,Android以及iOS的應用程序。ArkUI-X的主要功能如下:

  • 支持最新的Stage開發模型:支持基礎的AbilityStage和UIAbility等能力,也支持多module的開發及運行。
  • 支持UI基礎組件跨平臺,并且支持完整的狀態管理能力。
  • Resource的資源格式也是跨平臺的,不需要考慮不同平臺下的資源處理,資源配置和訪問的方式是保持一致的,并且支持多語言等能力。
  • 對于開發時所使用的API,都是OpenHarmony生態的標準API,在跨平臺上,支持標準API按照插件的方式按需打包。
  • ArkUI-X還提供了輕量的跨語言橋接機制,方便開發者快速擴展對應平臺上已有的能力。
  • ArkUI-X還提供了和OpenHarmony一致的測試框架:測試工程的目錄結構,同樣也和OpenHarmony的工程保持一致。開發測試用例時,首先需要導入測試框架的API,其中包含了測試腳本的基礎流程以及UI模擬操作的API。

03

ArkUI-X?實踐案例

華為智慧生活應用內復雜單品詳情頁,之前在不同平臺(Android、iOS)是分別進行開發的,維護成本較高。使用ArkUI-X跨平臺項目后,復雜單品詳情頁代碼一次編寫支持運行到Android、iOS和HarmonyOS(OpenHarmony商用版)三個平臺,新增支持一個平臺成本反而下降,可復用跨平臺代碼占比高達75%,并且有較好的性能體驗。真正地做到了“代碼一次開發,三個平臺部署”。

04

ArkUI-X?開源社區

ArkUI-X是由OpenHarmony?TSC-跨平臺應用開發框架TSG所孵化的開源項目,更多關于基于ArkUI-X的應用開發手冊、框架開發手冊、ArkUI-X版本包、ArkUI-X?樣例代碼、社區Roadmap等信息,可在Gitee?ArkUI-X代碼倉查閱。

ArkUI-X代碼倉地址:ArkUI-X: ArkUI-X擴展ArkUI開發框架到多個OS平臺, 讓開發者基于一套主代碼, 就可以構建支持多平臺的精美、高性能應用。The ArkUI-X project extends the ArkUI framework to multiple OS platforms. This enables developers to use one main set of code to develop applications for multiple OS platforms.

ArkUI-X-v1.0.0-Canary1版本說明地址:?

zh-cn/release-notes/ArkUI-X-v1.0.0-canary1.md · ArkUI-X/docs - Gitee.com

歡迎開發者下載試用ArkUI-X預覽版,并參與ArkUI-X開源社區共建。

點擊關注了解更多OpenHarmony?TSC技術干貨內容

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/38731.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/38731.shtml
英文地址,請注明出處:http://en.pswp.cn/news/38731.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LNMP環境搭建wordpress以及跳轉后臺報404解決

基于上文配置好的LNMP環境繼續搭建wordpress 目錄 一.到官網下載tar.gz包,并上傳到Linux上,也可以通過復制鏈接地址進行下載 二. 將wordpress中的所有文件移動到你nginx.conf中指定目錄中 三.為wordpress配置數據庫 四.到瀏覽器進行注冊 1.剛開始…

maven編譯始終提示無效的目標發行版的解決方法

摘自個人印象筆記2021-05-07:https://app.yinxiang.com/fx/55e1d5f4-aeea-446a-a768-0f1a48195f5b(圖顯示不完整可查看原筆記內容)1:確保IDE中的編譯版本正確 在idea中,主要看項目屬性中和setting的java compiler中對應的jdk版本是否正確&…

好用的安卓手機投屏到mac分享

工具推薦:scrcpy github地址:https://github.com/Genymobile/scrcpy/tree/master mac使用方式 安裝環境,打開terminal,執行以下命令,沒有brew的先安裝brew brew install scrcpy brew install android-platform-too…

學習 Iterator 迭代器

今天看到一個面試題, 讓下面解構賦值成立。 let [a,b] {a:1,b:2} 如果我們直接在瀏覽器輸出這行代碼,會直接報錯,說是 {a:1,b:2} 不能迭代。 看了es6文檔后,具有迭代器的就一下幾種類型,沒有Object類型,…

404. 左葉子之和

給定二叉樹的根節點 root ,返回所有左葉子之和。 示例 1: 輸入: root [3,9,20,null,null,15,7] 輸出: 24 解釋: 在這個二叉樹中,有兩個左葉子,分別是 9 和 15,所以返回 24示例 2: 輸入: root [1] 輸出: 0提示: 節點…

【NetCore】09-中間件

文章目錄 中間件:掌控請求處理過程的關鍵1. 中間件1.1 中間件工作原理1.2 中間件核心對象 2.異常處理中間件:區分真異常和邏輯異常2.1 處理異常的方式2.1.1 日常錯誤處理--定義錯誤頁的方法2.1.2 使用代理方法處理異常2.1.3 異常過濾器 IExceptionFilter2.1.4 特性過…

go web框架 gin-gonic源碼解讀02————router

go web框架 gin-gonic源碼解讀02————router 本來想先寫context,但是發現context能簡單講講的東西不多,就準備直接和router合在一起講好了 router是web服務的路由,是指講來自客戶端的http請求與服務器端的處理邏輯或者資源相映射的機制。&…

react實現對數組做增刪改操作自定義hook

需求 實現對數組的增刪改操作。 實現 import { useState } from react;const useArray (currList) > {const [list, setList] useState(currList);// 增const addItem (item) > {setList([...list, item]);};// 刪const removeItem (idx) > {const _arr [...l…

實戰指南,SpringBoot + Mybatis 如何對接多數據源

系列文章目錄 MyBatis緩存原理 Mybatis plugin 的使用及原理 MyBatisSpringboot 啟動到SQL執行全流程 數據庫操作不再困難,MyBatis動態Sql標簽解析 從零開始,手把手教你搭建Spring Boot后臺工程并說明 Spring框架與SpringBoot的關聯與區別 Spring監聽器…

輕松解決docker容器啟動閃退

docker run -p 3306:3306 --name mysql8 \ -v /usr/local/mysql/log:/var/log/mysql \ -v /usr/local/mysql/data:/var/lib/mysql \ -v /usr/local/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD666 -d mysql:8.0.32執行這個命令的時候閃退,其實這個是命令是對你…

[cv] stable diffusion——2、公式

背景: 在圖像生成領域中,最常見的生成模型是GAN和VAE。然而,在2020年,提出了一種新的模型,即DDPM(Denoising Diffusion Probabilistic Model),也被稱為擴散模型(Diffusi…

基于eBPF技術構建一種應用層網絡管控解決方案

引言 隨著網絡應用的不斷發展,在linux系統中對應用層網絡管控的需求也日益增加,而傳統的iptables、firewalld等工具難以針對應用層進行網絡管控。因此需要一種創新的解決方案來提升網絡應用的可管理性。 本文將探討如何使用eBPF技術構建一種應用層網絡…

【CSS】禁用元素鼠標事件(例如實現元素禁用效果)

文章目錄 基本用法 基本用法 pointer-events 屬性指定在什么情況下 (如果有) 某個特定的圖形元素可以成為鼠標事件。實際運用中可以通過對auto 和none動態控制,來動態實現元素的禁用效果。 屬性描述auto與pointer-events屬性未指定時的表現效果相同,對…

【筆試題心得】排序算法總結整理

排序算法匯總 常用十大排序算法_calm_G的博客-CSDN博客 以下動圖參考 十大經典排序算法 Python 版實現(附動圖演示) - 知乎 冒泡排序 排序過程如下圖所示: 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。對每一對相鄰…

【LeetCode-簡單】劍指 Offer 29. 順時針打印矩陣(詳解)

題目 輸入一個矩陣,按照從外向里以順時針的順序依次打印出每一個數字。 示例 1: 輸入:matrix [[1,2,3],[4,5,6],[7,8,9]] 輸出:[1,2,3,6,9,8,7,4,5]示例 2: 輸入:matrix [[1,2,3,4],[5,6,7,8],[9,10,1…

互聯網發展歷程:速度與效率,交換機的登場

互聯網的演進就像一場追求速度與效率的競賽,每一次的技術升級都為我們帶來更快、更高效的網絡體驗。然而,在網絡的初期階段,人們面臨著數據傳輸速度不夠快的問題。一項關鍵的技術應運而生,那就是“交換機”。 速度不足的困境&…

CloudEvents—云原生事件規范

我們的系統中或多或少都會用到如下兩類業務技術: 異步任務,用于降低接口時延或削峰,提升用戶體驗,降低系統并發壓力;通知類RPC,用于微服務間狀態變更,用戶行為的聯動等場景; 以上兩種…

Go和Java實現解釋器模式

Go和Java實現解釋器模式 下面通過一個四則運算來說明解釋器模式的使用。 1、解釋器模式 解釋器模式提供了評估語言的語法或表達式的方式,它屬于行為型模式。這種模式實現了一個表達式接口,該接口 解釋一個特定的上下文。這種模式被用在 SQL 解析、符…

規劃性和可擴展性,助力企業全面預算管理的推進

對于當今社會經濟市場的不穩定狀況和不斷變化的消費者行為,企業業務也從未像今天這樣不可預測過。面對變化和變革,企業需要具備規劃性的預測能力,才能使得自身在競爭中保持領先地位。那些具備前瞻性的企業都嘗試在現階段通過更好的規劃不斷提…

基于Mysqlrouter+MHA+keepalived實現高可用半同步 MySQL Cluster項目

目錄 項目名稱: 基于Mysqlrouter MHA keepalived實現半同步主從復制MySQL Cluster MySQL Cluster: 項目架構圖: 項目環境: 項目環境安裝包: 項目描述: 項目IP地址規劃: 項目步驟: 一…