chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

跨平臺(tái)框架介紹

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

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

跨平臺(tái)的優(yōu)勢(shì)有以下三個(gè)方面:

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

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

3、減少對(duì)各個(gè)平臺(tái)差異的適配。

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

跨平臺(tái)框架

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

ArkUI跨平臺(tái)能力介紹

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

ArkUI的定位包含以下幾個(gè)方面:

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

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

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

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

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

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

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

1、跨平臺(tái)能力——組件支持度:

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

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

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

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

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

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

ArkUI支持跨平臺(tái)三個(gè)必要條件

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

3、跨平臺(tái)能力——API能力邊界:

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

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

2)依賴平臺(tái)橋接的API,需要使用API擴(kuò)展機(jī)制在不同平臺(tái)分別橋接;

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

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

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

平臺(tái)全局API

4、跨平臺(tái)能力——API擴(kuò)展機(jī)制:

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

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

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

API擴(kuò)展機(jī)制

以下面代碼為例,通過標(biāo)準(zhǔn)的NAPI進(jìn)行接口的擴(kuò)展,同時(shí)也支持注冊(cè)一個(gè)Java的類,在接口調(diào)用時(shí)會(huì)動(dòng)態(tài)加載這個(gè)類,最終調(diào)用到Java的實(shí)現(xiàn)中。

1//注冊(cè)插件,導(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}

(左右滑動(dòng),查看更多)

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}

(左右滑動(dòng),查看更多)

5、跨平臺(tái)能力——命令行工具

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

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

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

命令行工具

6、跨平臺(tái)能力——DevEco Studio跨平臺(tái)支持:

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

1)創(chuàng)建工程時(shí)可以通過跨平臺(tái)模板創(chuàng)建一個(gè)支持跨平臺(tái)的工程;

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

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

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

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

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

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

健康飲食

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

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

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

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

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

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

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

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

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

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

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

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

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

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

使用Android Studio構(gòu)建

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

使用XCode構(gòu)建

4、安裝與運(yùn)行:

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

總結(jié)與展望

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

END

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

后臺(tái)留言給我們

立刻安排!


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

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


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

    關(guān)注

    80

    文章

    2153

    瀏覽量

    35987

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    操作系統(tǒng)體系結(jié)構(gòu)

    內(nèi)核。   大內(nèi)核系統(tǒng)操作系統(tǒng)的主要功能模塊都作為個(gè)緊密聯(lián)系的整體運(yùn)行在核心態(tài),從而為應(yīng)用提供高性能的系統(tǒng)服務(wù)。因?yàn)楦鞴芾砟K之間共
    發(fā)表于 01-15 08:19

    操作系統(tǒng)的發(fā)展及分類

    手工操作階段(此階段無操作系統(tǒng))   用戶在計(jì)算機(jī)上算題的所有工作都要人工干預(yù),如程序的裝入、運(yùn)行、結(jié)果的輸出等。隨著計(jì)算機(jī)硬件的發(fā)展,人機(jī)矛盾(速度和資源利用)越來越大,必須尋求新的解決辦法
    發(fā)表于 01-15 08:00

    操作系統(tǒng)運(yùn)行機(jī)制

    不同的層次上。些與硬件關(guān)聯(lián)較緊密的模塊,諸如時(shí)鐘管理、中斷處理、設(shè)備驅(qū)動(dòng)等處于最底層。其次是運(yùn)行頻率較髙的程序,諸如進(jìn)程管理、存儲(chǔ)器管理和設(shè)備管理等。這兩部分內(nèi)容構(gòu)成了操作系統(tǒng)的內(nèi)核。這部分內(nèi)容的指令
    發(fā)表于 01-15 07:12

    從內(nèi)核到生態(tài):次看懂HarmonyOS 6如何重寫操作系統(tǒng)的“基礎(chǔ)代碼

    在移動(dòng)操作系統(tǒng)競爭進(jìn)入“深水區(qū)”的當(dāng)下,用戶對(duì)于系統(tǒng)體驗(yàn)的期待早已不再局限于功能的簡單疊加,而是追求種從底層架構(gòu)革新帶來的全方位飛躍。HarmonyOS 6的正式發(fā)布,正是這樣次對(duì)
    的頭像 發(fā)表于 12-31 09:09 ?251次閱讀
    從內(nèi)核到生態(tài):<b class='flag-5'>一</b>次看懂HarmonyOS 6如何重寫<b class='flag-5'>操作系統(tǒng)</b>的“基礎(chǔ)<b class='flag-5'>代碼</b>”

    何用一套驅(qū)動(dòng)搞定不同尺寸屏幕的RGBWY燈光適配?

    、調(diào)試周期長,效率大打折扣。針對(duì)這一多屏幕適配難題,我們近期在項(xiàng)目中實(shí)踐了一套驅(qū)動(dòng)設(shè)計(jì)方案,本文將分享具體實(shí)現(xiàn)思路與效果。01常見困擾尺寸切換即重調(diào):從1.3寸屏切
    的頭像 發(fā)表于 12-18 09:28 ?285次閱讀
    如<b class='flag-5'>何用</b><b class='flag-5'>一套</b>驅(qū)動(dòng)搞定不同尺寸屏幕的RGBWY燈光適配?

    FLASH中的代碼是如何得到運(yùn)行的呢

    環(huán)節(jié)包含了加載程序。就像Windows操作系統(tǒng)存儲(chǔ)在硬盤中,開機(jī)的時(shí)候,操作系統(tǒng)代碼會(huì)加載到內(nèi)存條(RAM)中。 PC指針:無論什么單片機(jī)或者SOC,都有個(gè)PC寄存器,這個(gè)寄存器
    發(fā)表于 12-04 08:06

    嵌入式實(shí)時(shí)操作系統(tǒng)的特點(diǎn)

    實(shí)時(shí)嵌入式操作系統(tǒng)(Real-Time Embedded Operating System)是專門設(shè)計(jì)用于嵌入式系統(tǒng)的實(shí)時(shí)操作系統(tǒng)。嵌入式系統(tǒng)
    發(fā)表于 11-13 06:30

    怎么實(shí)現(xiàn)一套容器運(yùn)行時(shí),并符合OCI規(guī)范?

    如題,怎么實(shí)現(xiàn)一套容器運(yùn)行時(shí),并符合OCI規(guī)范
    發(fā)表于 10-10 07:35

    分支、云也,網(wǎng)絡(luò)又慢又燒錢?一套方案全搞定!

    、成本控制與運(yùn)維效率的多重壓力。面對(duì)這些挑戰(zhàn),是否有一套網(wǎng)絡(luò)架構(gòu)能夠“全搞定”?答案是肯定的?;谛袠I(yè)實(shí)踐與技術(shù)演進(jìn),我們逐漸形成了一套以SD-WAN+云網(wǎng)融合平臺(tái)+
    的頭像 發(fā)表于 08-28 14:25 ?1190次閱讀
    分支<b class='flag-5'>多</b>、云也<b class='flag-5'>多</b>,網(wǎng)絡(luò)又慢又燒錢?<b class='flag-5'>一套</b>方案全搞定!

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

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

    ArkUI-X平臺(tái)技術(shù)落地-華為運(yùn)動(dòng)健康()

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

    鴻道Intewell操作系統(tǒng):人形機(jī)器人底層操作系統(tǒng)

    操作系統(tǒng)的實(shí)時(shí)性賦能東土科技的鴻道(Intewell)工業(yè)操作系統(tǒng)作為國內(nèi)唯通過汽車、工業(yè)控制、醫(yī)療、軌道交通四項(xiàng)功能安全認(rèn)證的系統(tǒng),為標(biāo)準(zhǔn)體系中的技術(shù)層架構(gòu)提供了底層支持。其微內(nèi)核
    的頭像 發(fā)表于 05-16 14:44 ?748次閱讀

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

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

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

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

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

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