国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

如何用一套代碼運行跨多操作系統應用

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

掃碼添加小助手

加入工程師交流群

跨平臺框架介紹

提到跨平臺,要先理解什么是“平臺”,這里的平臺,就是指應用程序的運行環境,例如操作系統,或者是Web瀏覽器,具體的像HarmonyOSAndroidiOS、或者瀏覽器,都可以叫做平臺。

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

跨平臺的優勢有以下三個方面:

1、可以減少開發者的學習成本;

2、增加代碼復用,節省開發的成本;

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

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

跨平臺框架

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

ArkUI跨平臺能力介紹

為滿足HarmonyOS應用生態建設對于跨平臺開發的需求,我們正在和相關的合作伙伴定向開源構建ArkUI的跨平臺能力,目標先支持HarmonyOS、OpenHarmony、Android、iOS平臺,后續還將逐步增加對更多平臺的支持。這樣,開發者基于一套主代碼,就可以構建可支持多平臺的精美的高性能應用。

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

1、ArkUI作為HarmonyOS原生的應用框架,能力將預置在HarmonyOS中;

2、ArkUI作為所有原子化服務的基礎運行環境,如各類服務及萬能卡片;

3、ArkUI也將作為一個通用的跨平臺框架來開發多平臺的應用。

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

ArkUI跨平臺框架整體架構

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

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

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

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

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

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

2、跨平臺能力——應用工程跨平臺:

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

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

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

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

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

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

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

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

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

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

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

平臺全局API

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

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

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

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

API擴展機制

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

1//注冊插件,導出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業務邏輯

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的開發環境,支持創建跨平臺工程,可以構建出HarmonyOS、Android以及iOS的應用程序,并可以生成目標平臺的開發工程,如Android Studio/XCode。

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

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

命令行工具

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

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

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

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

3)支持發現和連接不同設備真機和模擬器;

4)支持應用工程導出為Android應用工程和iOS應用工程,方便原生能力擴充或混合開發。

如何使用ArkUI開發跨平臺應用

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

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

健康飲食

1、應用工程創建:

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

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

2)通過ace check檢查運行環境,可以根據提示安裝相關依賴的軟件;

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

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

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

跨平臺工程目錄結構

2、開發及調試:

開發應用的過程就和開發一個普通的HarmonyOS應用一樣,進行UI界面與邏輯的設計,使用DevEco Studio進行開發,然后實機運行及調試。

“健康飲食”開發

3、構建與發布:

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

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

使用Android Studio構建

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

使用XCode構建

4、安裝與運行:

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

總結與展望

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

END

想了解更多HarmonyOS技術?

后臺留言給我們

立刻安排!


原文標題:如何用一套代碼運行跨多操作系統應用

文章出處:【微信公眾號:HarmonyOS開發者】歡迎添加關注!文章轉載請注明出處。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • HarmonyOS
    +關注

    關注

    80

    文章

    2153

    瀏覽量

    36037

原文標題:如何用一套代碼運行跨多操作系統應用

文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發者】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    操作系統體系結構

    內核。   大內核系統操作系統的主要功能模塊都作為個緊密聯系的整體運行在核心態,從而為應用提供高性能的系統服務。因為各管理模塊之間共
    發表于 01-15 08:19

    操作系統的發展及分類

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

    操作系統運行機制

    不同的層次上。些與硬件關聯較緊密的模塊,諸如時鐘管理、中斷處理、設備驅動等處于最底層。其次是運行頻率較髙的程序,諸如進程管理、存儲器管理和設備管理等。這兩部分內容構成了操作系統的內核。這部分內容的指令
    發表于 01-15 07:12

    從內核到生態:次看懂HarmonyOS 6如何重寫操作系統的“基礎代碼

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

    何用一套驅動搞定不同尺寸屏幕的RGBWY燈光適配?

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

    FLASH中的代碼是如何得到運行的呢

    環節包含了加載程序。就像Windows操作系統存儲在硬盤中,開機的時候,操作系統代碼會加載到內存條(RAM)中。 PC指針:無論什么單片機或者SOC,都有個PC寄存器,這個寄存器
    發表于 12-04 08:06

    嵌入式實時操作系統的特點

    實時嵌入式操作系統(Real-Time Embedded Operating System)是專門設計用于嵌入式系統的實時操作系統。嵌入式系統
    發表于 11-13 06:30

    怎么實現一套容器運行時,并符合OCI規范?

    如題,怎么實現一套容器運行時,并符合OCI規范
    發表于 10-10 07:35

    分支、云也,網絡又慢又燒錢?一套方案全搞定!

    、成本控制與運維效率的多重壓力。面對這些挑戰,是否有一套網絡架構能夠“全搞定”?答案是肯定的。基于行業實踐與技術演進,我們逐漸形成了一套以SD-WAN+云網融合平臺+
    的頭像 發表于 08-28 14:25 ?1207次閱讀
    分支<b class='flag-5'>多</b>、云也<b class='flag-5'>多</b>,網絡又慢又燒錢?<b class='flag-5'>一套</b>方案全搞定!

    深度操作系統deepin 25端協同應用升級

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

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

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

    鴻道Intewell操作系統:人形機器人底層操作系統

    操作系統的實時性賦能東土科技的鴻道(Intewell)工業操作系統作為國內唯通過汽車、工業控制、醫療、軌道交通四項功能安全認證的系統,為標準體系中的技術層架構提供了底層支持。其微內核
    的頭像 發表于 05-16 14:44 ?765次閱讀

    普華基礎軟件開源汽車操作系統新版本代碼上線

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

    KaihongOS操作系統:導入接口模塊介紹

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

    KaihongOS操作系統:ArkTS語言基礎

    ArkTS語言基礎 KaihongOS是面向全場景的萬物智聯技術底座,在OpenHarmony基礎上技術創新和系統能力增強的設備的操作系統,它支持多種設備類型。ArkTS是KaihongOS
    發表于 04-23 06:31