在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

鴻蒙開發教程

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

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

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

鴻蒙是華為自研的操作系統,發布之初發現它上面也能兼容安卓應用,大家紛紛猜想鴻蒙系統可能又是廠商自己經過改造 android 套個殼發布是自研系統,尤其是他剛開始出那個鴻蒙開發的時候,大家發現代碼包括開發方式都跟安卓很像,xml 布局、獲取控件等等。鴻蒙系統之所以能夠兼容安卓是因為其采用了分布式技術架構,并且通過HarmonyOS Runtime虛擬機環境來支持運行基于Java語言開發的安卓應用程序。大家發現在鴻蒙 OS 上運行的應用比別的手機快呢,是因為鴻蒙 OS采用微內核+AOSP(安卓系統)雙架構。對ART(Android Runtime)模式做了一個重要的優化升級。那就是方舟編譯器替代了AOT(提前編譯)編譯器。方舟編譯器是基于AOT編譯器開發而來,但完全擺脫了java虛擬機的機制,將高級語言的字節碼提前編譯成二進制代碼,讓CPU直接運行二進制機器碼,運行速度提升了60%。以往 android 那套 dex 機制反而落后。

微內核與宏內核

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

應用程序框架(Stage 模型)

wKgZomW6DmuAd-4zAAQoLjbXW7Y454.png

HAP:OpenHarmony應用編譯、分發、加載的基本單位。與開發態的module一一對應。在應用內,moduleName是其唯一標識;

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

AbilityStage:對應HAP的運行期對象,在HAP首次加載到進程中時創建,運行期開發者可見;

Application:對應Bundle的運行期對象,運行期開發者不可見;

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

Ability:提供生命周期回調,持有AbilityContext,支持組件的跨端遷移和多端協同;

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

Window:應用窗口,持有一個ArkUI引擎實例;

ArkUI Page:基于ArkUI開發的用戶界面。

AbilityStage(開發者關注)

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

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

wKgaomW6DnSAe1j2AAWNst__3Lc301.png


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

harmony(鴻蒙)Stage模型綜述

Harmony OS與 OpenHarmony

引用一下 ChatGpt上面的解釋

wKgaomW6DpeAMRD_AAg7r2juA34171.png

OpenHarmony是華為提取了Harmony OS 的基礎功能進行開源的一個操作系統,是 Harmony OS 的基礎版本。可以理解為它是 Android 的某一個版本,比如 Android 14.那么 Harmony OS 就是華為自己根據 Android 14 定制的一個服務于自己手機的一個操作系統,目前華為鴻蒙的專用開發工具 DevEco Studio自帶 Harmony OS SDK。所以我們如果是基于華為設備進行開發的話,只需要關注Harmony OS 的開發即可。如果想使用 ArkUI-X構建跨平臺應用可以下載官方OpenHarmony SDK進行開發

這一篇我們講了一下鴻蒙系統為什么不是 Android 套殼還能跑 android 的原因,也介紹了一些初步的鴻蒙系統的一些知識,后續的文章我會正式開始更新 TS、ArkTS、ArkUI以及 ArkUI-X構建跨平臺應用的相關文章,喜歡的朋友多多點贊。大家一起學習,一起進步

審核編輯 黃宇

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

    關注

    0

    文章

    16

    瀏覽量

    6351
  • 鴻蒙
    +關注

    關注

    59

    文章

    2535

    瀏覽量

    43806
  • HarmonyOS
    +關注

    關注

    80

    文章

    2057

    瀏覽量

    32222
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    開源鴻蒙開發新體驗,開鴻Bot系列今日開啟預售!

    今日,深開鴻正式宣布,開鴻Bot系列產品——開鴻BotBook與開鴻BotMini全面開啟預售。該系列面向開源鴻蒙開發者量身打造,搭載基于OpenHarmony深度定制的KaihongOS桌面
    發表于 05-16 14:13

    "開機即戰"時代來臨!開鴻Bot系列創新開源鴻蒙開發新范式

    近日, 深圳開鴻數字產業發展有限公司(以下簡稱“深開鴻”)正式宣布將推出全國首款面向開源鴻蒙開發者的電腦系列——開鴻Bot系列,并率先開啟BotBook與BotMini兩款形態的預售。這一系列產品將
    的頭像 發表于 05-16 12:59 ?280次閱讀
    &quot;開機即戰&quot;時代來臨!開鴻Bot系列創新開源<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>新范式

    DevEco Studio AI輔助開發工具兩大升級功能 鴻蒙應用開發效率再提升

    隨著搭載HarmonyOS 5的Pura X發布,鴻蒙生態進入快車道,各應用正在加速適配開發,越來越多開發者加入到鴻蒙應用開發浪潮中。為提升
    發表于 04-18 14:43

    【「極速探索HarmonyOS NEXT 」閱讀體驗】 一本書開啟了鴻蒙開發的整個生態資源

    接前面我的閱讀體驗關于文章的介紹,這幾天拜讀了《極速探索HarmonyOS NEXT ** **純血鴻蒙應用開發實踐》這本書,書中的內容很精彩,但是書的篇幅畢竟有限,于是很想在閱讀書的同時,了解書中
    發表于 03-06 11:44

    【「極速探索HarmonyOS NEXT 」閱讀體驗】 初印象:一本純血鴻蒙應用開發入門的好書

    非常有幸的于近日收到了電子發燒友寄來的《 極速探索HarmonyOS NEXT **** 純血鴻蒙應用開發實踐》這本由清華大學出版社出版的一本純血鴻蒙應用開發學習的一本好書。 書籍一共
    發表于 03-04 12:41

    DevEco Studio構建分析工具Build Analyzer 為原生鴻蒙應用開發提速

    在原生鴻蒙應用開發過程中,隨著項目復雜度的增加,開發者花費在構建上的時間越來越長,導致開發效率降低。為了幫助開發者解決構建效率的問題,華為在
    發表于 02-17 18:06

    名單公布!【書籍評測活動NO.56】極速探索HarmonyOS NEXT:純血鴻蒙應用開發實踐

    開發的核心技術,以及鴻蒙應用在實際開發中的應用方法。 本書共分為四篇,共計16章,分別為鴻蒙開發基礎篇、
    發表于 01-20 16:53

    鴻蒙開發:線程模型

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

    鴻蒙開發:【進程模型概述】

    應用中(同一包名)的所有PageAbility、ServiceAbility、DataAbility、FormAbility運行在同一個獨立進程中,即圖中綠色部分的“Main Process”。
    的頭像 發表于 06-22 10:09 ?457次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>:【進程模型概述】

    鴻蒙開發組件:創建DataAbility

    實現DataAbility中Insert、Query、Update、Delete接口的業務內容。保證能夠滿足數據庫存儲業務的基本需求。BatchInsert與ExecuteBatch接口已經在系統中實現遍歷邏輯,依賴Insert、Query、Update、Delete接口邏輯,來實現數據的批量處理。
    的頭像 發表于 06-19 21:41 ?496次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>組件:創建DataAbility

    鴻蒙開發:啟動指定頁面

    當PageAbility的啟動模式設置為單例時(具體設置方法和典型場景示例見[PageAbility的啟動模式],缺省情況下是單實例模式),若PageAbility已被拉起,再次啟動PageAbility會觸發onNewWant回調(即非首次拉起)。
    的頭像 發表于 06-19 09:29 ?687次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>:啟動指定頁面

    鴻蒙開發:停止PageAbility

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

    鴻蒙開發:創建PageAbility

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

    鴻蒙開發:啟動本地PageAbility

    PageAbility相關的能力通過featureAbility提供,啟動本地Ability通過featureAbility中的startAbility接口實現。
    的頭像 發表于 06-18 09:29 ?504次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>:啟動本地PageAbility

    鴻蒙開發:PageAbility的啟動模式

    啟動模式對應PageAbility被啟動時的行為,支持單實例模式、多實例模式兩種啟動模式。
    的頭像 發表于 06-17 14:35 ?647次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>:PageAbility的啟動模式
    主站蜘蛛池模板: 国产午夜在线观看视频播放 | 亚洲成人精品 | 四虎在线视频观看 | 亚洲日本久久久午夜精品 | 伊人成人在线观看 | 色老头影院 | 国产三级自拍视频 | 国产免费好大好硬视频 | 午夜一级影院 | 91久久婷婷国产综合精品青草 | www.99在线观看| 亚洲免费视频网址 | 久久精品免费 | 欧美在线bdsm调教一区 | 国产色网站 | 免费看国产一级片 | 色播亚洲 | 爱情社保片鲁丝片一区 | 在线播放ww | 99久久久精品 | 国产在线一区二区三区四区 | 国产成视频 | 婷婷激情四射网 | 色噜噜狠狠成人中文小说 | 黄色一级视频网 | 久久婷婷国产一区二区三区 | 亚洲乱淫 | 久久久精品免费视频 | 最好看最新的中文字幕1 | 边做边爱在线观看视频免费 | 深夜国产成人福利在线观看女同 | 欧美猛交lxxxxxxxxx | 亚洲精品自拍区在线观看 | 国产一区二区三区夜色 | 欧美性白人极品1819hd | 欧美午夜精品 | 欧美性猛交xxxx免费 | 狠狠亚洲狠狠欧洲2019 | 日韩免费观看一级毛片看看 | 全国男人的天堂网站 | 日本xxxxx69 |