99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用一套代碼運行跨多操作系統(tǒng)應(yīng)用

HarmonyOS開發(fā)者 ? 來源:未知 ? 2023-02-09 21:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

跨平臺框架介紹

提到跨平臺,要先理解什么是“平臺”,這里的平臺,就是指應(yīng)用程序的運行環(huán)境,例如操作系統(tǒng),或者是Web瀏覽器,具體的像HarmonyOS、AndroidiOS、或者瀏覽器,都可以叫做平臺。

跨平臺框架,就是一個應(yīng)用的開發(fā)框架,開發(fā)者基于這個框架開發(fā)的應(yīng)用,可以分別在不同的平臺上運行,業(yè)界比較知名的比如:React Native、Flutter或者各種小程序框架,都可以稱之為跨平臺框架。

跨平臺的優(yōu)勢有以下三個方面:

1、可以減少開發(fā)者的學(xué)習(xí)成本;

2、增加代碼復(fù)用,節(jié)省開發(fā)的成本;

3、減少對各個平臺差異的適配。

a567c080-a879-11ed-bfe3-dac502259ad0.png

跨平臺框架

假設(shè)需求是要在三個平臺上開發(fā)同樣功能的應(yīng)用,如果每個平臺都需要10個單位的工作量,那么總共將花費30個單位的工作量。如果使用了跨平臺框架,通過代碼復(fù)用,那么可能只需要一半的工作量,甚至更少,這也是為什么開發(fā)者都在探索不同的跨平臺方案。

ArkUI跨平臺能力介紹

為滿足HarmonyOS應(yīng)用生態(tài)建設(shè)對于跨平臺開發(fā)的需求,我們正在和相關(guān)的合作伙伴定向開源構(gòu)建ArkUI的跨平臺能力,目標先支持HarmonyOS、OpenHarmony、Android、iOS平臺,后續(xù)還將逐步增加對更多平臺的支持。這樣,開發(fā)者基于一套主代碼,就可以構(gòu)建可支持多平臺的精美的高性能應(yīng)用。

ArkUI的定位包含以下幾個方面:

1、ArkUI作為HarmonyOS原生的應(yīng)用框架,能力將預(yù)置在HarmonyOS中;

2、ArkUI作為所有原子化服務(wù)的基礎(chǔ)運行環(huán)境,如各類服務(wù)及萬能卡片;

3、ArkUI也將作為一個通用的跨平臺框架來開發(fā)多平臺的應(yīng)用。

a57690a6-a879-11ed-bfe3-dac502259ad0.png

ArkUI跨平臺框架整體架構(gòu)

在ArkUI的架構(gòu)設(shè)計之初就把跨平臺作為一個重要的設(shè)計原則,從代碼的架構(gòu)上就對各個平臺的調(diào)用做了解耦,可以方便的移植到不同的平臺,同時使用的圖形引擎也是可以跨平臺的,所有基于它的組件都是自渲染的,所以有較好的性能和渲染一致性。同時使用了NAPI作為JS API的擴展機制,可以將相同定義的API擴展到不同平臺進行實現(xiàn)。

接下來將從組件支持度、應(yīng)用工程跨平臺、API能力邊界等6個緯度詳細介紹ArkUI具備的跨平臺能力。

1、跨平臺能力——組件支持度:

ArkUI跨平臺目前具備的一些組件能力,主要為以下兩方面:

1)OpenHarmony支持的基礎(chǔ)組件,都會進行支持。

2)提供一些高級組件能力,比如XComponent和它的相關(guān)機制。

2、跨平臺能力——應(yīng)用工程跨平臺:

對于一個完整的HarmonyOS應(yīng)用,要做到跨平臺運行,還需要業(yè)務(wù)邏輯和它使用的API、資源都能跨平臺。

a581659e-a879-11ed-bfe3-dac502259ad0.png

ArkUI支持跨平臺三個必要條件

對于業(yè)務(wù)邏輯,使用@ohos的標準API,跨平臺的目標是:使用這些API開發(fā)的邏輯盡可能的直接在不同平臺使用。

3、跨平臺能力——API能力邊界:

API大致分為以下幾類,支持策略也略有不同:

1)平臺無關(guān)的API,這部分是可以直接移植到不同平臺;

2)依賴平臺橋接的API,需要使用API擴展機制在不同平臺分別橋接;

3)不同平臺可能不是一一對應(yīng)的API,通用的基本能力部分可以在不同平臺分別橋接;

4)平臺專有的API,依賴系統(tǒng)的特有能力,無法做到跨平臺。

a58fbdce-a879-11ed-bfe3-dac502259ad0.png

平臺全局API

4、跨平臺能力——API擴展機制:

ArkUI提供了一套API的擴展機制,可以方便的去實現(xiàn)相同定義的API在不同平臺上使用。

擴展機制整體是復(fù)用NAPI機制,也是HarmonyOS上默認擴展API的機制,同時提供了JS->C++->Java/ObjectC的代碼互調(diào)的機制。這套機制也同樣適用于三方插件擴展或者開發(fā)者自己業(yè)務(wù)的擴展。

a5a471f6-a879-11ed-bfe3-dac502259ad0.png

API擴展機制

以下面代碼為例,通過標準的NAPI進行接口的擴展,同時也支持注冊一個Java的類,在接口調(diào)用時會動態(tài)加載這個類,最終調(diào)用到Java的實現(xiàn)中。

1//注冊插件,導(dǎo)出JS方法

2static napi_value TestPluginExport(napi_env env, napi_value exports)

3{

4static napi_property_descriptor desc[] =

5{ DECLARE_NAPI_FUNCTION("hello", JSTestPluginHello), };

6NAPI_CALL(env, napi_define_properties(

7env, exports, sizeof(desc) / sizeof(desc[0]), desc));

8return exports;

9}

10

11static napi_value JSTestPluginHello(napi_env env, napi_callback_info info)

12{

13auto plugin = TestPlugin::Create();

14plugin->Hello();

15…

16}

17

18static void TestPluginJniRegister()

19{

20const char className[] = "ohos.ace.plugin.testplugin.TestPlugin";

21OH_Plugin_RegisterPlugin(&TestPluginJni::Register, className);

22}

23

24extern "C" __attribute__((constructor)) void TestPluginRegister()

25{

26napi_module_register(&testPluginModule);

27OH_Plugin_RunTaskOnPlatform(&TestPluginJniRegister);

28}

(左右滑動,查看更多)

1// Java業(yè)務(wù)邏輯

2package ohos.ace.plugin.testplugin;

3

4public class TestPlugin {

5public TestPlugin(Context context) {

6...

7}

8

9public void hello() {

10Log.i(LOG_TAG, "hello from java");

11}

12}

(左右滑動,查看更多)

5、跨平臺能力——命令行工具

ArkUI還將提供一個命令行工具,可以支持Windows、Mac、Linux的開發(fā)環(huán)境,支持創(chuàng)建跨平臺工程,可以構(gòu)建出HarmonyOS、Android以及iOS的應(yīng)用程序,并可以生成目標平臺的開發(fā)工程,如Android Studio/XCode。

一些常用的命令如下,涵蓋了從創(chuàng)建工程到運行打包的常用功能:

a5be3d52-a879-11ed-bfe3-dac502259ad0.png

命令行工具

6、跨平臺能力——DevEco Studio跨平臺支持:

后續(xù)還將在DevEco Studio上加入對跨平臺的支持,增加能力如下:

1)創(chuàng)建工程時可以通過跨平臺模板創(chuàng)建一個支持跨平臺的工程;

2)可以支持編譯出Android/ iOS上的安裝調(diào)試包;

3)支持發(fā)現(xiàn)和連接不同設(shè)備真機和模擬器;

4)支持應(yīng)用工程導(dǎo)出為Android應(yīng)用工程和iOS應(yīng)用工程,方便原生能力擴充或混合開發(fā)。

如何使用ArkUI開發(fā)跨平臺應(yīng)用

了解了ArkUI的跨平臺能力之后,下面我們用“健康飲食”應(yīng)用開發(fā)具體案例介紹使用ArkUI開發(fā)跨HarmonyOS、Android及iOS三大平臺的完整流程。

a5d153c4-a879-11ed-bfe3-dac502259ad0.png

健康飲食

1、應(yīng)用工程創(chuàng)建:

首先創(chuàng)建一個跨平臺工程,我們以使用命令行工具為例。

1)先使用npm install安裝相關(guān)的依賴包;

2)通過ace check檢查運行環(huán)境,可以根據(jù)提示安裝相關(guān)依賴的軟件;

3)通過ace create創(chuàng)建跨平臺應(yīng)用的工程,可以支持類Web范式或聲明式范式。

創(chuàng)建好的工程的目錄結(jié)構(gòu)如下圖所示,可以看到不同平臺的工程文件,同時這里的source目錄下,存放的就是跨平臺通用的代碼結(jié)構(gòu)。

a5ddde50-a879-11ed-bfe3-dac502259ad0.png

跨平臺工程目錄結(jié)構(gòu)

2、開發(fā)及調(diào)試:

開發(fā)應(yīng)用的過程就和開發(fā)一個普通的HarmonyOS應(yīng)用一樣,進行UI界面與邏輯的設(shè)計,使用DevEco Studio進行開發(fā),然后實機運行及調(diào)試。

“健康飲食”開發(fā)

3、構(gòu)建與發(fā)布:

有兩種方式進行構(gòu)建,一是通過命令行“ace build”可以直接進行構(gòu)建;二是通過目標平臺的工程進行構(gòu)建,如下圖所示,可以直接通過Android Studio或XCode構(gòu)建出對應(yīng)平臺的安裝包。

a5eb49f0-a879-11ed-bfe3-dac502259ad0.png

使用Android Studio構(gòu)建

a5f82f80-a879-11ed-bfe3-dac502259ad0.png

使用XCode構(gòu)建

4、安裝與運行:

構(gòu)建完成后,可以通過“ace install”命令進行安裝運行,下面就是“健康飲食”同一個應(yīng)用在HarmonyOS端、Android端和iOS端上的運行效果。

總結(jié)與展望

上面提到的這些ArkUI跨平臺能力,將在近期進行開源,感興趣的開發(fā)者可以持續(xù)關(guān)注。接下來ArkUI會圍繞各平臺的能力進行構(gòu)建,進一步豐富跨平臺的組件,并持續(xù)對性能、內(nèi)存、包大小等方向進行優(yōu)化,不斷完善@ohos的API插件包,進一步提升開發(fā)者對跨平臺的訴求和體驗。

END

想了解更多HarmonyOS技術(shù)?

后臺留言給我們

立刻安排!


原文標題:如何用一套代碼運行跨多操作系統(tǒng)應(yīng)用

文章出處:【微信公眾號:HarmonyOS開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2126

    瀏覽量

    33097

原文標題:如何用一套代碼運行跨多操作系統(tǒng)應(yīng)用

文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    深度操作系統(tǒng)deepin 25端協(xié)同應(yīng)用升級

    在日常使用 deepin 辦公與生活中,設(shè)備協(xié)作的效率問題時常困擾著我們:設(shè)備間傳輸文件依賴社交工具,速度慢且大文件受限;多臺設(shè)備辦公時頻繁切換鍵鼠,打斷思路且易出錯;設(shè)備共享剪貼板內(nèi)容更是繁瑣,往往需要多次中轉(zhuǎn)
    的頭像 發(fā)表于 07-15 09:51 ?185次閱讀

    ArkUI-X平臺技術(shù)落地-華為運動健康()

    Android 和 iOS上面進行復(fù)用,實現(xiàn)“一套代碼,三端運行”。 在健康二級頁面上,數(shù)據(jù)來自于運動健康內(nèi)部的“數(shù)據(jù)平臺”,但是目前運動健康在三端上的“數(shù)據(jù)平臺”有各自單獨的實現(xiàn)(運動健康“數(shù)據(jù)平臺”可以
    發(fā)表于 06-18 22:53

    普華基礎(chǔ)軟件開源汽車操作系統(tǒng)新版本代碼上線

    小滿EasyXMen V25.04新版本代碼正式上線。開源小滿社區(qū)共建單位代表與生態(tài)伙伴共同見證開源車用操作系統(tǒng)里程碑時刻。
    的頭像 發(fā)表于 04-30 09:17 ?434次閱讀

    KaihongOS操作系統(tǒng):導(dǎo)入接口模塊介紹

    導(dǎo)入接口模塊 在KaihongOS中,接口模塊是指組定義了特定功能和行為的API(應(yīng)用程序編程接口)集合,它們允許開發(fā)者訪問和控制操作系統(tǒng)的特定功能或硬件特性。接口模塊是KaihongOS提供給
    發(fā)表于 04-25 08:16

    KaihongOS操作系統(tǒng):ArkTS語言基礎(chǔ)

    ArkTS語言基礎(chǔ) KaihongOS是面向全場景的萬物智聯(lián)技術(shù)底座,在OpenHarmony基礎(chǔ)上技術(shù)創(chuàng)新和系統(tǒng)能力增強的設(shè)備的操作系統(tǒng),它支持多種設(shè)備類型。ArkTS是KaihongOS
    發(fā)表于 04-23 06:31

    【「鴻蒙操作系統(tǒng)設(shè)計原理與架構(gòu)」閱讀體驗】02-華為鴻蒙設(shè)計理念

    Studio 的平臺開發(fā)功能,使得開發(fā)者可以基于同工程,高效構(gòu)建多端自動運行的 App,實現(xiàn)次開發(fā),多端部署 。這意味著開發(fā)者只需要編寫一套
    發(fā)表于 02-23 16:16

    ArkTS語言基礎(chǔ)介紹篇

    KaihongOS是個開源的、設(shè)備的操作系統(tǒng),它支持多種設(shè)備類型。ArkTS是KaihongOS應(yīng)用開發(fā)中使用的TypeScript超集,提供了一套豐富的API來構(gòu)建應(yīng)用界面和邏輯
    發(fā)表于 01-10 10:15

    VxWorks操作系統(tǒng)調(diào)節(jié)CPU的頻率

    最近遇到個問題,芯片發(fā)熱,想調(diào)節(jié)CPU的頻率,使用的芯片是ls1046a,如何用VxWorks操作系統(tǒng)調(diào)節(jié)CPU的主頻
    發(fā)表于 12-26 20:04

    名單公布!【書籍評測活動NO.53】鴻蒙操作系統(tǒng)設(shè)計原理與架構(gòu)

    問題 軟硬件能力割裂問題 設(shè)備交互割裂問題 其他需要解決的問題 (如何實現(xiàn)設(shè)備間的安全認證和數(shù)據(jù)保護、如何向用戶程序開發(fā)者提供一套支持設(shè)備的開發(fā)框架等) 和當前智能終端操作系統(tǒng)
    發(fā)表于 12-16 15:10

    如何在windows上emulate不同操作系統(tǒng)

    、虛擬化技術(shù)概述 虛擬化技術(shù)允許在單個物理機器上創(chuàng)建多個虛擬機,每個虛擬機都可以運行不同的操作系統(tǒng)。這使得我們可以在Windows系統(tǒng)上模擬其他
    的頭像 發(fā)表于 12-05 15:50 ?869次閱讀

    鴻道(Intewell)操作系統(tǒng)應(yīng)用于PC-Based擴展運控板卡項目案例

    本項目向客戶提供了一套基于國產(chǎn)化技術(shù)的高性能運動控制解決方案,采用了Windows與鴻道(Intewell)的混合架構(gòu)。通過鴻道Intewell-H實時擴展操作系統(tǒng),我們特別分配了個內(nèi)核運行
    的頭像 發(fā)表于 11-21 13:54 ?514次閱讀
    鴻道(Intewell)<b class='flag-5'>操作系統(tǒng)</b>應(yīng)用于PC-Based擴展運控板卡項目案例

    國產(chǎn)實時操作系統(tǒng):和RT-Linux,Zephyr的實時性對比

    RT-Thread在工業(yè)領(lǐng)域、高安全高可靠性領(lǐng)域,實時操作系統(tǒng)在其中發(fā)揮著重要的作用,從毫秒級,微秒級實時響應(yīng),決定著裝置系統(tǒng)能滿足何種嚴苛的要求。RT-ThreadSmart操作系統(tǒng)一套
    的頭像 發(fā)表于 11-12 01:07 ?2597次閱讀
    國產(chǎn)實時<b class='flag-5'>操作系統(tǒng)</b>:和RT-Linux,Zephyr的實時性對比

    一套電源ATE自動測試系統(tǒng)如何完成型號電源模塊測試?

    在使用NSAT-8000電源ATE測試系統(tǒng)后,鑒于不同型號的VPX電源生產(chǎn)工藝、參數(shù)有所不同,工程師可根據(jù)電源型號搭建相應(yīng)的測試項目和方案,一套系統(tǒng)便完成了該公司型號的電源模塊測試,
    的頭像 發(fā)表于 09-18 18:20 ?611次閱讀
    <b class='flag-5'>一套</b>電源ATE自動測試<b class='flag-5'>系統(tǒng)</b>如何完成<b class='flag-5'>多</b>型號電源模塊測試?

    如何設(shè)計出一套用于移動式綜合監(jiān)測站管理的軟件系統(tǒng)

    如何設(shè)計出一套用于移動式綜合監(jiān)測站管理的軟件系統(tǒng) 要設(shè)計并實現(xiàn)一套系統(tǒng),用于管理移動式綜合監(jiān)測站,并具備繪制其動態(tài)位置變化圖和部署時間分布圖的功能,我們需要從
    的頭像 發(fā)表于 09-10 18:15 ?445次閱讀

    Linux操作系統(tǒng)運行參數(shù)自動調(diào)整技術(shù)

    Linux操作系統(tǒng)運行參數(shù)的自動調(diào)整是個復(fù)雜而關(guān)鍵的技術(shù),它可以顯著提高系統(tǒng)性能、穩(wěn)定性和資源利用率。通過使用自適應(yīng)算法特別是內(nèi)核態(tài)的機器學(xué)習(xí)框架、性能監(jiān)控工具和配置管理工具,能夠在
    的頭像 發(fā)表于 08-22 09:53 ?793次閱讀
    Linux<b class='flag-5'>操作系統(tǒng)</b><b class='flag-5'>運行</b>參數(shù)自動調(diào)整技術(shù)