ArkUI-X 跨平臺框架進一步將 ArkUI 開發(fā)框架擴展到了多個OS平臺,目前支持OpenHarmony、HarmonyOS、Android、 iOS,后續(xù)會逐步增加更多平臺支持。開發(fā)者基于一套主代碼,就可以構(gòu)建支持多平臺的精美、高性能應(yīng)用。
一、跨平臺框架有哪些?
1、React Native
-
React Native 是一個基于 JavaScript 和 React 的開源框架,由 Facebook 開發(fā)和維護。
-
它使用一種稱為 JSX 的語法,將組件的結(jié)構(gòu)和行為描述為聲明式的代碼。
-
React Native 提供了訪問設(shè)備原生功能的能力,通過使用內(nèi)置的原生組件和模塊,開發(fā)人員可以創(chuàng)建具有原生用戶體驗的應(yīng)用程序。
-
由于 React Native 的代碼可以在多個平臺上共享和重用,這使得開發(fā)和維護跨平臺應(yīng)用變得更加高效。
2、Flutter
-
Flutter 是一個由 Google 開發(fā)的開源框架,用于構(gòu)建高性能、跨平臺的移動應(yīng)用程序。
-
Flutter 使用 Dart 語言,它具有現(xiàn)代化的語法和特性,包括強類型、異步編程和熱重載。
-
Flutter 提供了自己的渲染引擎,可以實現(xiàn)高性能的用戶界面,并且可以在 iOS、Android 和 Web 平臺上運行。
-
通過使用 Flutter,開發(fā)人員可以通過一套代碼庫創(chuàng)建漂亮、響應(yīng)式且原生般的應(yīng)用程序。
3、Xamarin
-
Xamarin 是一個跨平臺移動應(yīng)用開發(fā)框架,由 Microsoft 推出。
-
它使用 C# 語言和 .NET 平臺,開發(fā)人員可以使用共享的代碼庫構(gòu)建原生應(yīng)用程序,包括 iOS、Android 和 Windows。
-
Xamarin 提供了對設(shè)備功能和原生 API 的訪問,開發(fā)人員可以使用 Xamarin.Essentials 來訪問常用的設(shè)備功能,如相機、傳感器等。
-
Xamarin 還提供了豐富的工具和組件庫,以提高開發(fā)效率并簡化跨平臺應(yīng)用程序的創(chuàng)建過程。
4、Ionic
-
Ionic 是一個基于 Web 技術(shù)的開源框架,用于構(gòu)建跨平臺的移動應(yīng)用程序。
-
它使用 HTML、CSS 和 JavaScript 來構(gòu)建應(yīng)用程序,并通過使用 WebView 在不同平臺上運行。
-
Ionic 結(jié)合了 Angular 框架和 Cordova 插件,提供了豐富的 UI 組件和原生功能的訪問能力。
-
通過 Ionic,開發(fā)人員可以使用一套代碼庫創(chuàng)建移動應(yīng)用程序,并在 iOS、Android 和 Web 平臺上進行部署。
5、NativeScript
-
NativeScript 是一個開源的跨平臺移動應(yīng)用框架,允許開發(fā)人員使用 JavaScript、TypeScript 或 Angular 構(gòu)建原生應(yīng)用程序。
-
它通過使用原生組件和 API,以及內(nèi)置的 JavaScript 運行時,將 JavaScript 代碼轉(zhuǎn)換為本機代碼。
-
NativeScript 提供了對設(shè)備功能的訪問,開發(fā)人員可以使用插件來擴展應(yīng)用程序的功能。
-
NativeScript 還支持 Angular、Vue.js 和 React 框架,以滿足開發(fā)人員的不同需求。
6、uniapp
-
UniApp 使用 Vue.js 作為主要的開發(fā)框架,并提供了一套基于 Vue.js 的組件和 API,使開發(fā)人員可以使用熟悉的開發(fā)方式構(gòu)建跨平臺應(yīng)用。開發(fā)人員可以編寫一次代碼,然后通過編譯和轉(zhuǎn)換過程,在不同平臺上生成對應(yīng)的原生應(yīng)用程序。
-
UniApp 提供了訪問設(shè)備功能和原生 API 的能力,開發(fā)人員可以使用插件或內(nèi)置的 API 來實現(xiàn)與設(shè)備的交互,如訪問相機、地理位置、傳感器等。此外,UniApp 還提供了一些特定平臺的擴展能力和優(yōu)化選項,以提供更好的用戶體驗和性能。
二、OpenHarmony的跨平臺ArkUI-X
1、采用 C++?編寫整體后端引擎代碼,保持在多平臺的可移植性,最小化平臺依賴,降低平臺移植成本。?
2、整體繪制采用自渲染機制,降低平臺依賴,同時進一步提升繪制效果的一致性。?
3、抽象出平臺適配層以及平臺橋接層,以便不同平臺的適配。
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
2、 安裝ArkUI-X的SDK
2.1 安裝OpenHarmony的API10
2.1?安裝ArkUI-X的SDK
3、 創(chuàng)建ArkUI-X項目
3.1 新建 =>?導(dǎo)入 => 導(dǎo)入示例工程
3.2?基于示例Hello World工程進行ArkUI-X進行開發(fā)
將Harmony改為OpenHarmony,然后選擇ArkUI-X下的示例工程
3.3 創(chuàng)建完成后,自動檢查系統(tǒng)環(huán)境,安裝依賴
4、?目錄說明
編譯完成后,直接將.arkui-x中的Android/IOS導(dǎo)入對應(yīng)的平臺即可
ArkUI-X應(yīng)用工程 ├── .arkui-x │ ├── android // Android平臺相關(guān)代碼 │ └── ios // iOS平臺相關(guān)代碼 ├── .hvigor ├── .idea ├── AppScope ├── entry ├── hvigor ├── oh_modules ├── build-profile.json5 ├── hvigorfile.ts ├── local.properties └── oh-package.json5
期待可以兼容更多的平臺,eg:Linux、Windows等...
三、擴展:XComponent(動態(tài)加載/EGL/OpenGLES渲染)
遇到一個好玩的組件,在開發(fā)掃一掃功能時用到了,記錄一下
XComponent組件作為一種繪制組件,通常用于滿足開發(fā)者較為復(fù)雜的自定義繪制需求,例如相機預(yù)覽流的顯示和游戲畫面的繪制。?
其可通過指定其type字段來實現(xiàn)不同的功能,主要有兩個“surface”和“component”字段可供選擇。
對于“surface”類型,開發(fā)者可將相關(guān)數(shù)據(jù)傳入XComponent單獨擁有的“surface”來渲染畫面。?
對于“component”類型則主要用于實現(xiàn)動態(tài)加載顯示內(nèi)容的目的。
名稱 | 描述 |
---|---|
SURFACE | 用于EGL/OpenGLES和媒體數(shù)據(jù)寫入,開發(fā)者定制的繪制內(nèi)容單獨展示到屏幕上。 |
COMPONENT | XComponent將變成一個容器組件,并可在其中執(zhí)行非UI邏輯以動態(tài)加載顯示內(nèi)容。 |
TEXTURE | 用于EGL/OpenGLES和媒體數(shù)據(jù)寫入,開發(fā)者定制的繪制內(nèi)容會和XComponent組件的內(nèi)容合成后展示到屏幕上。 |
說明:
type為COMPONENT(“component”)時,XComponent作為容器,子組件沿垂直方向布局:
垂直方向上對齊格式:FlexAlign.Start
水平方向上對齊格式:FlexAlign.Center文章來源:http://www.zghlxwxcb.cn/news/detail-807986.html
@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%')
}
}
動態(tài)加載@Builder的addText函數(shù)文章來源地址http://www.zghlxwxcb.cn/news/detail-807986.html
到了這里,關(guān)于【HarmonyOS開發(fā)】ArkUI-X 跨平臺框架(使用ArkTs開發(fā)Android&IOS)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!