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

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

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

鴻蒙開發(fā)教程

王程 ? 來(lái)源:jf_75796907 ? 作者:jf_75796907 ? 2024-01-31 17:11 ? 次閱讀

去年8 月份華為發(fā)布會(huì)上,華為發(fā)布了HarmonyOS NEXT預(yù)覽版,宣布不再兼容安卓應(yīng)用。大家期待的純血鴻蒙終于要來(lái)臨了,next 預(yù)覽版本現(xiàn)在已經(jīng)開放申請(qǐng)渠道了,Next 開發(fā)者預(yù)覽版本目前只向三款手機(jī)開放, mate 60、mate60 pro 和 mate x5。

什么是鴻蒙,他是 android 套殼嗎?

鴻蒙是華為自研的操作系統(tǒng),發(fā)布之初發(fā)現(xiàn)它上面也能兼容安卓應(yīng)用,大家紛紛猜想鴻蒙系統(tǒng)可能又是廠商自己經(jīng)過(guò)改造 android 套個(gè)殼發(fā)布是自研系統(tǒng),尤其是他剛開始出那個(gè)鴻蒙開發(fā)的時(shí)候,大家發(fā)現(xiàn)代碼包括開發(fā)方式都跟安卓很像,xml 布局、獲取控件等等。鴻蒙系統(tǒng)之所以能夠兼容安卓是因?yàn)槠洳捎昧朔植际郊夹g(shù)架構(gòu),并且通過(guò)HarmonyOS Runtime虛擬機(jī)環(huán)境來(lái)支持運(yùn)行基于Java語(yǔ)言開發(fā)的安卓應(yīng)用程序。大家發(fā)現(xiàn)在鴻蒙 OS 上運(yùn)行的應(yīng)用比別的手機(jī)快呢,是因?yàn)轼櫭?OS采用微內(nèi)核+AOSP(安卓系統(tǒng))雙架構(gòu)。對(duì)ART(Android Runtime)模式做了一個(gè)重要的優(yōu)化升級(jí)。那就是方舟編譯器替代了AOT(提前編譯)編譯器。方舟編譯器是基于AOT編譯器開發(fā)而來(lái),但完全擺脫了java虛擬機(jī)的機(jī)制,將高級(jí)語(yǔ)言的字節(jié)碼提前編譯成二進(jìn)制代碼,讓CPU直接運(yùn)行二進(jìn)制機(jī)器碼,運(yùn)行速度提升了60%。以往 android 那套 dex 機(jī)制反而落后。

微內(nèi)核與宏內(nèi)核

HarmonyOS NEXT完全舍棄 AOSP 直接采用微內(nèi)核單架構(gòu)。微內(nèi)核和宏內(nèi)核大家可以自己去深入了解一下。我就簡(jiǎn)單的描述一下,android 就是傳統(tǒng)的宏內(nèi)核,它將所有的核心功能(文件系統(tǒng)、內(nèi)存管理、設(shè)備驅(qū)動(dòng)等)都放在一個(gè)單一的執(zhí)行空間內(nèi)。這意味著所有的系統(tǒng)服務(wù)和功能都運(yùn)行在內(nèi)核的上下文中,彼此之間共享同一個(gè)地址空間,這樣做的好處是所有的服務(wù)都在一起,交互更加直接,壞處就是一個(gè)服務(wù)崩潰會(huì)影響到其他所有 的服務(wù)?,F(xiàn)在鴻蒙 4.0 其實(shí)完全跟 android 脫鉤了,他只是有雙架構(gòu)支持一下跑一下 Android。鴻蒙采用的是微內(nèi)核。盡可能的保持內(nèi)核的功能最小化,只保留一些最基本的服務(wù),其他的系統(tǒng)功能和服務(wù)都放在用戶空間,這樣做的好處就是他的穩(wěn)定性和可靠性上來(lái)了。而且提供服務(wù)裁剪,在不同的設(shè)備上部署不同的服務(wù),微內(nèi)核雖然增加了一些性能開銷。但是在這個(gè)性能過(guò)剩的時(shí)代里面。其實(shí)這個(gè)開銷基本可以忽略

應(yīng)用程序框架(Stage 模型)

wKgZomW6DmuAd-4zAAQoLjbXW7Y454.png

HAP:OpenHarmony應(yīng)用編譯、分發(fā)、加載的基本單位。與開發(fā)態(tài)的module一一對(duì)應(yīng)。在應(yīng)用內(nèi),moduleName是其唯一標(biāo)識(shí);

Bundle:通過(guò)appid標(biāo)識(shí)的OpenHarmony應(yīng)用,Bundle可以包含多個(gè)HAP,每個(gè)應(yīng)用都有一個(gè)bundleName,但是bundleName并不能唯一標(biāo)識(shí)一個(gè)應(yīng)用,appid中包含bundleName以及其他的更多信息,能夠唯一標(biāo)識(shí)一個(gè)應(yīng)用;

AbilityStage:對(duì)應(yīng)HAP的運(yùn)行期對(duì)象,在HAP首次加載到進(jìn)程中時(shí)創(chuàng)建,運(yùn)行期開發(fā)者可見(jiàn);

Application:對(duì)應(yīng)Bundle的運(yùn)行期對(duì)象,運(yùn)行期開發(fā)者不可見(jiàn);

Context:提供運(yùn)行期開發(fā)者可以調(diào)用的各種能力,Ability組件和各種ExtensionAbility都有各自不同的Context類,他們都繼承自基類Context,基類提供包名、moduleName、路徑等信息;

Ability:提供生命周期回調(diào),持有AbilityContext,支持組件的跨端遷移和多端協(xié)同;

ExtensionAbility:基于場(chǎng)景的擴(kuò)展能力統(tǒng)稱,系統(tǒng)定義了多種場(chǎng)景的ExtensionAbility類,它們持有各自的ExtensionContext;WindowStage:本地窗口管理器;

Window:應(yīng)用窗口,持有一個(gè)ArkUI引擎實(shí)例;

ArkUI Page:基于ArkUI開發(fā)的用戶界面。

AbilityStage(開發(fā)者關(guān)注)

API9 之前是另外一種模型叫 FA 模型,這個(gè)我們先不講。我們來(lái)看 Ability,它 是 應(yīng)用程序框架中最基本的抽象單位,是能夠完成獨(dú)立功能的應(yīng)用組件。一個(gè)應(yīng)用可以是一個(gè) Ablity 也可以是多個(gè) Ability 組成。我們?cè)陂_發(fā)的過(guò)程通常都是分功能模塊來(lái)開發(fā)的,每一個(gè)功能模塊就是一個(gè) Ability。在鴻蒙開發(fā)里面每一個(gè) module 都是可以單獨(dú)打包成 HAP 文件獨(dú)立運(yùn)行,也可以多個(gè) hap 打包成一個(gè) app pack 來(lái)運(yùn)行。舉個(gè)例子,如果我們來(lái)開發(fā)抖音的短視頻模塊和電商模塊。電商模塊是比較獨(dú)立的一個(gè)功能,那我們可以用兩個(gè) Ability 來(lái)完成一個(gè)抖音應(yīng)用,也可以單獨(dú)發(fā)布一個(gè)純凈版的短視頻版 抖音,不包含電商的功能

很多人問(wèn)過(guò)我 Android 的 Activity跟鴻蒙的 UIAbility 是不是類似的東西,其實(shí)他們兩個(gè)的思想是類似的,都是用于用戶界面展示和用戶交互的組件,簡(jiǎn)單點(diǎn)理解可以認(rèn)為ArkUI Pgae就相當(dāng)于 Fragment,一個(gè) Ability 就是一個(gè) “Activity”,現(xiàn)在 Activity 放入一個(gè) fragment就相當(dāng)于Ability 在他的WindowStage創(chuàng)建的時(shí)候load 了一個(gè)ArkUI page

wKgaomW6DnSAe1j2AAWNst__3Lc301.png


Ability加載一個(gè) page
Ability 的層級(jí)比 Activity在 android 應(yīng)用里面的層級(jí)要高一個(gè)層級(jí),我們都知道每一個(gè) Activity 要在 manifest 里面去注冊(cè),而在我們的 Ability 里面,每一個(gè) page 是要注冊(cè)注冊(cè)在我們自己模塊下面的 main_pages.json下面的。Ability 的頁(yè)面跳轉(zhuǎn)是通過(guò)路由的方式來(lái)跳轉(zhuǎn)的,通過(guò)導(dǎo)入 router 包,調(diào)用 router.pushUrl(“頁(yè)面路由")來(lái)跳轉(zhuǎn)。同時(shí)各個(gè)頁(yè)面之前還可以進(jìn)行數(shù)據(jù)通訊,這么一看,好像鴻蒙里面的 ArkUI Page 是不是也像一個(gè) Activity。講到這里,大家應(yīng)該可能覺(jué)得Ablity 好像也承擔(dān)了一部分 Android 里面 Application 的功能。所以歸根到底它們倆不是同一個(gè)東西,正好印證了我們前面所說(shuō)的 Ability 是完成獨(dú)立功能的應(yīng)用組件。而不僅僅只是一個(gè)頁(yè)面,里面放了很多 View。有想了解更多的可以關(guān)注一下這篇文章,鏈接丟上來(lái)文章會(huì)被鎖,大家可以搜索這個(gè)關(guān)鍵詞

harmony(鴻蒙)Stage模型綜述

Harmony OS與 OpenHarmony

引用一下 ChatGpt上面的解釋

wKgaomW6DpeAMRD_AAg7r2juA34171.png

OpenHarmony是華為提取了Harmony OS 的基礎(chǔ)功能進(jìn)行開源的一個(gè)操作系統(tǒng),是 Harmony OS 的基礎(chǔ)版本。可以理解為它是 Android 的某一個(gè)版本,比如 Android 14.那么 Harmony OS 就是華為自己根據(jù) Android 14 定制的一個(gè)服務(wù)于自己手機(jī)的一個(gè)操作系統(tǒng),目前華為鴻蒙的專用開發(fā)工具 DevEco Studio自帶 Harmony OS SDK。所以我們?nèi)绻腔谌A為設(shè)備進(jìn)行開發(fā)的話,只需要關(guān)注Harmony OS 的開發(fā)即可。如果想使用 ArkUI-X構(gòu)建跨平臺(tái)應(yīng)用可以下載官方OpenHarmony SDK進(jìn)行開發(fā)

這一篇我們講了一下鴻蒙系統(tǒng)為什么不是 Android 套殼還能跑 android 的原因,也介紹了一些初步的鴻蒙系統(tǒng)的一些知識(shí),后續(xù)的文章我會(huì)正式開始更新 TS、ArkTS、ArkUI以及 ArkUI-X構(gòu)建跨平臺(tái)應(yīng)用的相關(guān)文章,喜歡的朋友多多點(diǎn)贊。大家一起學(xué)習(xí),一起進(jìn)步

審核編輯 黃宇

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

    關(guān)注

    0

    文章

    16

    瀏覽量

    6196
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2352

    瀏覽量

    42856
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1975

    瀏覽量

    30194
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙開發(fā):創(chuàng)建PageAbility

    通過(guò)DevEco Studio開發(fā)平臺(tái)創(chuàng)建PageAbility時(shí),DevEco Studio會(huì)在app.js/app.ets中默認(rèn)生成onCreate()和onDestroy()方法,其他方法需要開發(fā)者自行實(shí)現(xiàn)。
    的頭像 發(fā)表于 06-18 09:36 ?255次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:創(chuàng)建PageAbility

    鴻蒙開發(fā)就業(yè)前景到底怎么樣?

    鴻蒙, 作為華為自主研發(fā)的基于微內(nèi)核的下一代操作系統(tǒng),正在逐漸走進(jìn)人們的視野 。隨著鴻蒙系統(tǒng)的不斷發(fā)展和完善,越來(lái)越多的人開始關(guān)注鴻蒙開發(fā)這一領(lǐng)域,想要了解學(xué)習(xí)
    發(fā)表于 05-09 17:37

    36歲了還有必要轉(zhuǎn)行鴻蒙開發(fā)嗎?

    前言 2024鴻蒙生態(tài)圈越來(lái)越大,有必要轉(zhuǎn)行做鴻蒙開發(fā)嗎? 我想這是很多程序員都存在的疑慮吧? 我的回答是:“當(dāng)然有必要!”話不多說(shuō),請(qǐng)看圖! 不難看出,很多公司給出了百萬(wàn)年薪做鴻蒙
    發(fā)表于 05-09 17:01

    鴻蒙OS崛起,鴻蒙應(yīng)用開發(fā)工程師成市場(chǎng)新寵

    應(yīng)用的形態(tài)也在發(fā)生著翻天覆地的變化。作為全球領(lǐng)先的移動(dòng)操作系統(tǒng)和智能終端制造商,華為公司自主研發(fā)的鴻蒙OS應(yīng)運(yùn)而生,致力于構(gòu)建一個(gè)統(tǒng)一的分布式操作系統(tǒng),為各行各業(yè)的應(yīng)用開發(fā)帶來(lái)全新的可能性。 一、鴻蒙
    發(fā)表于 04-29 17:32

    零基礎(chǔ)小白適不適合學(xué)鴻蒙開發(fā)?

    在互聯(lián)網(wǎng)不斷發(fā)展以及萬(wàn)物互聯(lián)時(shí)代的開啟過(guò)程中,鴻蒙操作系統(tǒng)的出現(xiàn)無(wú)疑是技術(shù)領(lǐng)域的一次重大突破。鴻蒙操作系統(tǒng)是一款“面向未來(lái)”的操作系統(tǒng),它創(chuàng)造性地提出了三大技術(shù)理念:一次開發(fā),多端部署;可分可合
    的頭像 發(fā)表于 03-04 17:50 ?1955次閱讀
    零基礎(chǔ)小白適不適合學(xué)<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>?

    2024鴻蒙開發(fā),勢(shì)在必行

    要說(shuō)2024年IT行業(yè)出現(xiàn)最多的一個(gè)詞,那就不得不提到"鴻蒙"。 在這一個(gè)萬(wàn)物互聯(lián)的時(shí)代,機(jī)遇與挑戰(zhàn)并存。預(yù)測(cè)在2025年,全球物聯(lián)網(wǎng)終端連接數(shù)量將達(dá)246億個(gè),其中消費(fèi)者物聯(lián)網(wǎng)連接數(shù)量將達(dá)110億
    的頭像 發(fā)表于 02-22 14:27 ?806次閱讀
    2024<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>,勢(shì)在必行

    未來(lái)從事鴻蒙開發(fā)?是否會(huì)有前景?

    鴻蒙的未來(lái)發(fā)展肯定很有前景的,鴻蒙作為新出的國(guó)產(chǎn)操作系統(tǒng)。它不僅只是手機(jī)操作系統(tǒng),鴻蒙的出發(fā)點(diǎn)就是萬(wàn)物互聯(lián)。包含原生應(yīng)用開發(fā)、車載、智能設(shè)備、數(shù)碼、智能家居家電等等。如此大的市場(chǎng)分布,
    發(fā)表于 02-19 21:31

    使用 Taro 開發(fā)鴻蒙原生應(yīng)用 —— 快速上手,鴻蒙應(yīng)用開發(fā)指南

    隨著鴻蒙系統(tǒng)的不斷完善,許多應(yīng)用廠商都希望將自己的應(yīng)用移植到鴻蒙平臺(tái)上。最近,Taro 發(fā)布了 v4.0.0-beta.x 版本,支持使用 Taro 快速開發(fā)鴻蒙原生應(yīng)用,也可將現(xiàn)有的
    的頭像 發(fā)表于 02-02 16:09 ?877次閱讀
    使用 Taro <b class='flag-5'>開發(fā)</b><b class='flag-5'>鴻蒙</b>原生應(yīng)用 —— 快速上手,<b class='flag-5'>鴻蒙</b>應(yīng)用<b class='flag-5'>開發(fā)</b>指南

    鴻蒙開發(fā)用什么語(yǔ)言?

    兩種開發(fā)方向 我們常說(shuō)鴻蒙開發(fā),但是其實(shí)鴻蒙開發(fā)分為兩個(gè)方向: 一個(gè)是系統(tǒng)級(jí)別的開發(fā),比如驅(qū)動(dòng),
    的頭像 發(fā)表于 01-30 16:12 ?1544次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>用什么語(yǔ)言?

    鴻蒙開發(fā)【設(shè)備開發(fā)基礎(chǔ)知識(shí)】

    鴻蒙開發(fā)基礎(chǔ)知識(shí)講解
    的頭像 發(fā)表于 01-29 18:44 ?1022次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>【設(shè)備<b class='flag-5'>開發(fā)</b>基礎(chǔ)知識(shí)】

    現(xiàn)在加入鴻蒙開發(fā)咋樣

    現(xiàn)在加入鴻蒙開發(fā)咋樣? 各位前輩, 現(xiàn)在加入鴻蒙開發(fā)還有前景嗎?
    發(fā)表于 01-29 18:07

    鴻蒙開發(fā)OpenHarmony組件復(fù)用案例

    ) } }, item => item) } } } 本文主要是對(duì)鴻蒙開發(fā)基礎(chǔ)當(dāng)中的OpenHarmony技術(shù)組件復(fù)用示例, 更多鴻蒙開發(fā)OpenHarmony技術(shù)可以在主頁(yè)
    發(fā)表于 01-15 17:37

    鴻蒙開發(fā)基礎(chǔ)-Web組件之cookie操作

    }) ... } ... 本文章主要是對(duì)鴻蒙開發(fā)當(dāng)中ArkTS語(yǔ)言的基礎(chǔ)應(yīng)用實(shí)戰(zhàn),Web組件里的cookie操作。更多的鴻蒙應(yīng)用開發(fā)技術(shù),可以前往我的主頁(yè)學(xué)習(xí)更多,下面是一張
    發(fā)表于 01-14 21:31

    為何大廠急招鴻蒙開發(fā)工程師?別有洞天

    正確看待鴻蒙不再兼容安卓版本,而大廠急招鴻蒙工程師這一舉動(dòng)已經(jīng)是預(yù)料之中的。我們一步步來(lái)看鴻蒙是怎么發(fā)展過(guò)程的。為什么互聯(lián)網(wǎng)大廠急招鴻蒙開發(fā)
    發(fā)表于 01-08 19:59

    鴻蒙開發(fā)南向環(huán)境搭建教學(xué)

    南向開發(fā)環(huán)境搭建教學(xué),更多鴻蒙開發(fā)資料可以前往高清完整版 《鴻蒙開發(fā)4.0基礎(chǔ)-高階文檔》找保存。(附
    發(fā)表于 01-05 16:38