衡阳派盒市场营销有限公司

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

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

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

鴻蒙開發(fā)教程

王程 ? 來源:jf_75796907 ? 作者:jf_75796907 ? 2024-01-31 17:11 ? 次閱讀

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

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

鴻蒙是華為自研的操作系統(tǒng),發(fā)布之初發(fā)現(xiàn)它上面也能兼容安卓應(yīng)用,大家紛紛猜想鴻蒙系統(tǒng)可能又是廠商自己經(jīng)過改造 android 套個殼發(fā)布是自研系統(tǒng),尤其是他剛開始出那個鴻蒙開發(fā)的時候,大家發(fā)現(xiàn)代碼包括開發(fā)方式都跟安卓很像,xml 布局、獲取控件等等。鴻蒙系統(tǒng)之所以能夠兼容安卓是因為其采用了分布式技術(shù)架構(gòu),并且通過HarmonyOS Runtime虛擬機(jī)環(huán)境來支持運(yùn)行基于Java語言開發(fā)的安卓應(yīng)用程序。大家發(fā)現(xiàn)在鴻蒙 OS 上運(yùn)行的應(yīng)用比別的手機(jī)快呢,是因為鴻蒙 OS采用微內(nèi)核+AOSP(安卓系統(tǒng))雙架構(gòu)。對ART(Android Runtime)模式做了一個重要的優(yōu)化升級。那就是方舟編譯器替代了AOT(提前編譯)編譯器。方舟編譯器是基于AOT編譯器開發(fā)而來,但完全擺脫了java虛擬機(jī)的機(jī)制,將高級語言的字節(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)核大家可以自己去深入了解一下。我就簡單的描述一下,android 就是傳統(tǒng)的宏內(nèi)核,它將所有的核心功能(文件系統(tǒng)、內(nèi)存管理、設(shè)備驅(qū)動等)都放在一個單一的執(zhí)行空間內(nèi)。這意味著所有的系統(tǒng)服務(wù)和功能都運(yùn)行在內(nèi)核的上下文中,彼此之間共享同一個地址空間,這樣做的好處是所有的服務(wù)都在一起,交互更加直接,壞處就是一個服務(wù)崩潰會影響到其他所有 的服務(wù)。現(xiàn)在鴻蒙 4.0 其實完全跟 android 脫鉤了,他只是有雙架構(gòu)支持一下跑一下 Android。鴻蒙采用的是微內(nèi)核。盡可能的保持內(nèi)核的功能最小化,只保留一些最基本的服務(wù),其他的系統(tǒng)功能和服務(wù)都放在用戶空間,這樣做的好處就是他的穩(wěn)定性和可靠性上來了。而且提供服務(wù)裁剪,在不同的設(shè)備上部署不同的服務(wù),微內(nèi)核雖然增加了一些性能開銷。但是在這個性能過剩的時代里面。其實這個開銷基本可以忽略

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

wKgZomW6DmuAd-4zAAQoLjbXW7Y454.png

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

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

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

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

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

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

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

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

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

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

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

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

wKgaomW6DnSAe1j2AAWNst__3Lc301.png


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

harmony(鴻蒙)Stage模型綜述

Harmony OS與 OpenHarmony

引用一下 ChatGpt上面的解釋

wKgaomW6DpeAMRD_AAg7r2juA34171.png

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

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

審核編輯 黃宇

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

    關(guān)注

    0

    文章

    16

    瀏覽量

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

    關(guān)注

    57

    文章

    2392

    瀏覽量

    43055
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1982

    瀏覽量

    30578
收藏 人收藏

    評論

    相關(guān)推薦

    【書籍評測活動NO.56】極速探索HarmonyOS NEXT:純血鴻蒙應(yīng)用開發(fā)實踐

    了解并掌握鴻蒙開發(fā)的核心技術(shù),以及鴻蒙應(yīng)用在實際開發(fā)中的應(yīng)用方法。 本書共分為四篇,共計16章,分別為鴻蒙
    發(fā)表于 01-20 16:53

    鴻蒙開發(fā):線程模型

    FA模型下的線程主要有如下三類
    的頭像 發(fā)表于 06-24 17:27 ?479次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:線程模型

    鴻蒙開發(fā):停止PageAbility

    停止PageAbility通過featureAbility中的terminateSelf接口實現(xiàn)。
    的頭像 發(fā)表于 06-18 14:16 ?359次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:停止PageAbility

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

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

    鴻蒙開發(fā):【線程模型】

    管理其他線程的ArkTS引擎實例,例如使用TaskPool(任務(wù)池)創(chuàng)建任務(wù)或取消任務(wù)、啟動和終止Worker線程。
    的頭像 發(fā)表于 06-13 16:38 ?459次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:【線程模型】

    鴻蒙開發(fā):【進(jìn)程模型】

    應(yīng)用中(同一Bundle名稱)的所有UIAbility、ServiceExtensionAbility和DataShareExtensionAbility均是運(yùn)行在同一個獨(dú)立進(jìn)程(主進(jìn)程)中,如下圖中綠色部分的“Main Process”。
    的頭像 發(fā)表于 06-13 09:53 ?332次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:【進(jìn)程模型】

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

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

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

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

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

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

    鴻蒙OS開發(fā)學(xué)習(xí):【尺寸適配實現(xiàn)】

    鴻蒙開發(fā)中,尺寸適配是一個重要的概念,它可以幫助我們在不同屏幕尺寸的設(shè)備上正確顯示和布局我們的應(yīng)用程序。本文將介紹如何在鴻蒙開發(fā)中實現(xiàn)尺寸適配的方法。
    的頭像 發(fā)表于 04-10 16:05 ?1860次閱讀
    <b class='flag-5'>鴻蒙</b>OS<b class='flag-5'>開發(fā)</b>學(xué)習(xí):【尺寸適配實現(xiàn)】

    鴻蒙開發(fā)實戰(zhàn):【Hdf Framework】

    該倉主要存放OpenHarmony驅(qū)動子系統(tǒng)核心源碼信息(包括驅(qū)動框架、配置管理、配置解析、驅(qū)動通用框架模型、硬件通用平臺能力接口等),旨在為開發(fā)者提供更精準(zhǔn)、更高效的開發(fā)環(huán)境,力求做到一次開發(fā),多系統(tǒng)部署。
    的頭像 發(fā)表于 03-21 20:29 ?595次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>實戰(zhàn):【Hdf Framework】

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

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

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

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

    鴻蒙開發(fā)之EventHub

    EventHub模塊提供了事件中心,提供訂閱、取消訂閱、觸發(fā)事件的能力。 NOTE 本模塊首批接口從API version 9開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。 本模塊接口僅可在Stage模型下使用。 使用說明 在使用eventHub的功能前,需要通過Ability實例的成員變量context獲取。 ? import Ability from '@ohos.app.ability.UIAbility';export default class MainAbility extends Ability { func1(){ console.log('func1 is called'); } onForeground() { this.context.eventHub.on('123', this.func1); }} ? Eve
    的頭像 發(fā)表于 02-21 14:32 ?461次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>之EventHub

    未來從事鴻蒙開發(fā)?是否會有前景?

    鴻蒙的未來發(fā)展肯定很有前景的,鴻蒙作為新出的國產(chǎn)操作系統(tǒng)。它不僅只是手機(jī)操作系統(tǒng),鴻蒙的出發(fā)點就是萬物互聯(lián)。包含原生應(yīng)用開發(fā)、車載、智能設(shè)備、數(shù)碼、智能家居家電等等。如此大的市場分布,
    發(fā)表于 02-19 21:31
    百家乐官网棋牌游戏正式版| 澳门百家乐网址多少| 百家乐官网游戏排行榜| 载大发888软件| 百家乐赌场信息| 吉林省| 金龍百家乐的玩法技巧和规则 | 福布斯百家乐官网的玩法技巧和规则 | 百家乐单跳投注法| 宝龙百家乐官网的玩法技巧和规则| 宜兰县| 宝马会娱乐城| 娱乐城在线| A8百家乐的玩法技巧和规则| 百家乐官网上海代理| 球探网即时比分| 机械手百家乐的玩法技巧和规则| 百家乐开过的路纸| 赌场百家乐赢钱| 扑克百家乐赌器| 杨公24山日课应验诀| 至尊百家乐官网2012| 巴黎百家乐官网地址| 赌场百家乐官网技巧| 百家乐官网桌14人| 网上百家乐官网有假的吗| 东方夏威夷娱乐| 威尼斯人娱乐场28gxpjwnsr| 百家乐风云论坛| 十三张百家乐官网的玩法技巧和规则 | 百家乐园蒙| 老虎机价格| 百家乐对子的玩法| 马德里百家乐的玩法技巧和规则 | 百家乐网址| 博彩开户| 网上百家乐官网网址| 大赢家比分| 枣阳市| 百家乐官网桌布专业| 百家乐官网真人荷官网|