国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

鴻蒙:Harmony開發(fā)基礎(chǔ)知識詳解

這篇具有很好參考價值的文章主要介紹了鴻蒙:Harmony開發(fā)基礎(chǔ)知識詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一.概述

工欲善其事,必先利其器。

上一篇博文實現(xiàn)了一個"Hello Harmony"的Demo,今天這篇博文就以"Hello Harmony"?為例,以官網(wǎng)開發(fā)文檔為依據(jù),從鴻蒙開發(fā)主要的幾個方面入手,詳細了解一下鴻蒙開發(fā)所需的基礎(chǔ)知識。

二.UI框架

HarmonyOS提供了一套UI開發(fā)框架,即方舟開發(fā)框架ArkUI框架

1.UI開發(fā)要素

方舟開發(fā)框架提供了多個應(yīng)用UI開發(fā)要素:
? ? ● UI組件:(列表、網(wǎng)格、按鈕、單選框、進度條、文本等)
? ??● 布局計算
? ??● 動畫能力
? ??● UI交互
? ??● 繪制
? ? ● ......

2.兩種開發(fā)范式

(1).兩種開發(fā)范式介紹
  • 基于ArkTS的聲明式開發(fā)范式(簡稱“聲明式開發(fā)范式”)
  • 兼容JS的類Web開發(fā)范式(簡稱“類Web開發(fā)范式”)

鴻蒙開發(fā)文檔,HarmonyOS,harmonyos,華為

聲明式開發(fā)范式:基于TypeScript擴展而來的ArkTs語言進行聲明式UI開發(fā)

類Web開發(fā)范式:采用經(jīng)典的HML、CSS、JavaScript三段式開發(fā)方式
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?HML搭建布局、CSS描述樣式、JavaScript處理邏輯。? ? ? ? ? ? ? ? ? ? ? ? ? ?

類Web開發(fā)范式很像Web前端開發(fā),便于快速將Web應(yīng)用改造成鴻蒙應(yīng)用

但是華為鴻蒙官方首推的是聲明式開發(fā)范式

(2).方舟開發(fā)框架示意圖

鴻蒙開發(fā)文檔,HarmonyOS,harmonyos,華為

(3).方舟開發(fā)框架結(jié)構(gòu)圖

鴻蒙開發(fā)文檔,HarmonyOS,harmonyos,華為

(3).兩種開發(fā)范式比較

基于如下下幾個優(yōu)點,鴻蒙官方更推薦使用聲明式開發(fā)范式來構(gòu)建UI:

  • 開發(fā)效率:更接近自然語義的編程方式,直觀地描述UI,無需關(guān)心UI繪制和渲染,高效簡潔。
  • 應(yīng)用性能:相比類Web開發(fā)范式,聲明式開發(fā)范式無需JS框架進行頁面DOM管理,渲染更新更精簡,占用內(nèi)存更少,性能更佳。
  • 發(fā)展趨勢:后續(xù)會作為主推的開發(fā)范式持續(xù)演進,提供更豐富、更強大的能力

鴻蒙開發(fā)文檔,HarmonyOS,harmonyos,華為

三.應(yīng)用模型

1.兩種應(yīng)用模型

HarmonyOS的應(yīng)用模型提供了應(yīng)用程序必備的組件和運行機制,可以基于一套統(tǒng)一的模型進行應(yīng)用開發(fā)。

HarmonyOS發(fā)展過程中,先后提供了兩種應(yīng)用模型:

  • FA(Feature Ability)模型:?HarmonyOS API 7開始支持的模型,已經(jīng)不再主推
  • Stage模型:?HarmonyOS API 9開始新增的模型,是Harmony目前主推且會長期演進的模型

Stage模型提供了AbilityStage、WindowStage等類作為應(yīng)用組件Window窗口“舞臺”,所以被稱為Stage模型。

2.構(gòu)成要素

HarmonyOS應(yīng)用模型的構(gòu)成要素包括:

  • 應(yīng)用組件:應(yīng)用的基本組成單位,也是運行入口,提供生命周期回調(diào)
  • 應(yīng)用進程模型:定義應(yīng)用進程的創(chuàng)建和銷毀方式,以及進程間的通信方式
  • 應(yīng)用線程模型:定義應(yīng)用進程內(nèi)線程的創(chuàng)建和銷毀方式、主線程和UI線程的創(chuàng)建方式、線程間的通信方式
  • 應(yīng)用任務(wù)管理模型:定義任務(wù)(Mission)的創(chuàng)建和銷毀方式,以及任務(wù)與組件間的關(guān)系。HarmonyOS應(yīng)用任務(wù)管理由系統(tǒng)應(yīng)用負責(zé),三方應(yīng)用無需關(guān)注
  • 應(yīng)用配置文件:包含應(yīng)用配置信息、應(yīng)用組件信息、權(quán)限信息、開發(fā)者自定義信息等,這些信息在編譯構(gòu)建、分發(fā)和運行階段分別提供給編譯工具、應(yīng)用市場和操作系統(tǒng)使用

四.HarmonyOS APP包結(jié)構(gòu)

HarmonyOS應(yīng)用/服務(wù)發(fā)布形態(tài)為APP Pack(Application Package,簡稱APP)
它由一個或多個HAP(HarmonyOS Ability Package)包以及描述APP Pack屬性的pack.info文件組成。

終端設(shè)備安裝和云端(服務(wù)器)分發(fā)時,都是以HAP為單位進行安裝和分發(fā)的。

一個HAP在工程目錄中對應(yīng)一個Module
它是由代碼、資源、第三方庫及應(yīng)用/服務(wù)配置文件組成,
可以分為?Entry?和?Feature?兩種類型:

  • Entry:應(yīng)用/服務(wù)的主模塊,可獨立安裝運行。
    (1).通常用于實現(xiàn)應(yīng)用的入口界面、入口圖標(biāo)、主特性功能等。
    (2).一個APP中,對于同一類型的設(shè)備,可以包含一個或多個Entry類型的HAP,如果同一類型的設(shè)備包含多個Entry模塊,需要配置distroFilter分發(fā)規(guī)則,使得應(yīng)用市場在做應(yīng)用的云端分發(fā)時,對該設(shè)備類型下不同規(guī)格的設(shè)備進行精確分發(fā)。

  • Feature:應(yīng)用/服務(wù)的動態(tài)特性模塊。
    (1).一個APP可以包含0個或多個Feature類型的HAP(像Android的".jar"和".aar")
    (2).
    可以配置成按需下載安裝,也可以配置成隨Entry類型HAP一起下載安裝
    (3).只有包含Ability的HAP才能夠獨立運行。

module.json5配置文件中通過?type標(biāo)簽?配置“entry”“feature”類型

Ability是應(yīng)用所具備的能力的抽象
(1).一個應(yīng)用可以包含一個或多個Ability。
(2).Ability分為兩種類型:FA(Feature Ability)和PA(Particle Ability)。
(3).FA/PA是應(yīng)用/服務(wù)的基本組成單元,能夠?qū)崿F(xiàn)特定的業(yè)務(wù)功能。
(4).FA有UI界面,而PA無UI界面。

Bundle:每個Harmony應(yīng)用可以包含多個.hap文件,一個應(yīng)用中的.hap文件合在一起稱為一個Bundle,bundleName是應(yīng)用的唯一標(biāo)識(bundleName標(biāo)簽在app.json5配置文件中)。

需要特別說明的是:在應(yīng)用上架到應(yīng)用市場時,需要把應(yīng)用包含的所有.hap文件(即Bundle)打包為一個.app后綴的文件用于上架,這個.app文件就是App Pack(Application Package),其中也包含了描述App Pack屬性的pack.info文件。

鴻蒙開發(fā)文檔,HarmonyOS,harmonyos,華為

五.Stage模型應(yīng)用程序包結(jié)構(gòu)

1.Moudle

Module是HarmonyOS應(yīng)用/服務(wù)的基本功能單元,包含了源代碼、資源文件、第三方庫及應(yīng)用/服務(wù)配置文件。

每一個Module都可以獨立進行編譯和運行。(和Android中的Moudle一樣)

Module分為“Ability”和“Library”兩種類型:

  • Ability類型:編譯后生成HAP(Harmony Ability Package)文件
  • Library類型:編譯后生成HAR(Harmony Archive)文件,或者HSP(Harmony Shared Package)

DevEco Studio可以創(chuàng)建一個或者多個Module

2.Module與UIAbility組件關(guān)系示意圖

鴻蒙開發(fā)文檔,HarmonyOS,harmonyos,華為

注:下文中再提到的Module默認指的是“Ability”類型的Module。

3.應(yīng)用程序包結(jié)構(gòu)(Stage模型)

注:下文中提到的HAP包默認指的是Stage模型的HAP包

HAP包結(jié)構(gòu)包括:

  • ets、libs、resources等文件夾
  • resources.index、module.json、pack.info等文件。

應(yīng)用程序包結(jié)構(gòu)圖示:

鴻蒙開發(fā)文檔,HarmonyOS,harmonyos,華為

  • ets目錄:存放應(yīng)用代碼編譯后的字節(jié)碼文件。
  • libs目錄:存放庫文件(.so二進制文件)。
  • resources目錄:存放應(yīng)用的資源文件(字符串、圖片等)
  • resources.index:資源索引表,由IDE編譯工程時生成。
  • module.json:HAP配置文件,內(nèi)容由工程配置中的module.json5和app.json5組成
  • pack.info:Bundle中用于描述每個HAP屬性的文件
    ? ? ? ? ? ? ? ? ? ?例如:app中的bundleName和versionCode信息、module中的name、type和? ? ? ? ? ? ? ? ? ? ? ? ? ?abilities等信息,編譯生成Bundle包時自動生成。

六.Stage模型ArkTS工程目錄結(jié)構(gòu)

以上一篇博客的"Hello Harmony"?Demo為例,一個Stage模型ArkTS工程目錄詳細結(jié)構(gòu)如下:

鴻蒙開發(fā)文檔,HarmonyOS,harmonyos,華為

七.resources目錄

鴻蒙應(yīng)用的resources目錄根據(jù)所包含的資源文件的類型不同,放置在不同的子目錄下

resources目錄包括三大類目錄

  • base目錄,默認存在
  • 限定詞目錄,開發(fā)者自行創(chuàng)建
  • rawfile目錄,原始文件目錄

資源文件查找順序:

  • 優(yōu)先從匹配的限定詞目錄中尋找
  • 沒有匹配的限定詞目錄,或者在限定詞目錄中找不到,就會去base目錄中找。

rawfile是原始文件目錄,不會根據(jù)設(shè)備狀態(tài)去匹配不同的資源

stage模型多工程情況下共有的資源文件放到AppScope下的resources目錄。

資源目錄示例

鴻蒙開發(fā)文檔,HarmonyOS,harmonyos,華為

鴻蒙開發(fā)文檔,HarmonyOS,harmonyos,華為

八.ArkTS代碼組成拆解

點擊按鈕,文本內(nèi)容從“Hello World”變?yōu)?strong>“Hello ArkUI”功能代碼拆解

鴻蒙開發(fā)文檔,HarmonyOS,harmonyos,華為

ArkTS 代碼段的基本組成:

鴻蒙開發(fā)文檔,HarmonyOS,harmonyos,華為

九.布局概述

1.布局結(jié)構(gòu)

一個常見的頁面結(jié)構(gòu)如下所示:

鴻蒙開發(fā)文檔,HarmonyOS,harmonyos,華為

Page表示頁面的根節(jié)點,

Column、Row等元素為系統(tǒng)組件,可以互換

Text、Image、List可以是其他任意系統(tǒng)組件或自定義組件

2.布局元素的組成

布局相關(guān)的容器組件可形成對應(yīng)的布局效果。

鴻蒙開發(fā)文檔,HarmonyOS,harmonyos,華為

  1. 虛線部分:組件布局邊界
  2. 藍色區(qū)域:組件區(qū)域
  3. 黃色區(qū)域:組件內(nèi)容區(qū)
  4. 綠色方塊:組件內(nèi)容

3.如何選擇布局

聲明式UI提供了以下8種常見布局:

布局

應(yīng)用場景

線性布局

Row、Column

需要線性排列時優(yōu)先考慮此布局。

層疊布局

Stack

需要有堆疊效果時優(yōu)先考慮此布局

彈性布局

Flex

與線性布局類似,但是默認能夠使子組件壓縮或拉伸。

子組件需要計算拉伸或壓縮比例時優(yōu)先使用此布局。

相對布局RelativeContainer

相對布局的布局方式更為自由。

通過在子組件上設(shè)置錨點規(guī)則(AlignRules)使子組件能夠?qū)⒆约涸?strong>橫軸、縱軸中的位置與容器或容器內(nèi)其他子組件的位置對齊。

較復(fù)雜布局推薦使用

柵格布局

GridRow、GridCol

柵格通過將空間分割為有規(guī)律的柵格。

推薦手機、大屏、平板等不同設(shè)備,內(nèi)容相同但布局不同時使用。

媒體查詢@ohos.mediaquery

媒體查詢可根據(jù)不同設(shè)備類型或同設(shè)備不同狀態(tài)修改應(yīng)用的樣式。

例如屏幕發(fā)生動態(tài)改變時更新應(yīng)用的頁面布局。

列表?

List

列表適合用于呈現(xiàn)同類數(shù)據(jù)類型或數(shù)據(jù)類型集,例如圖片和文本。

網(wǎng)格

Grid

網(wǎng)格布局可以控制元素所占的網(wǎng)格數(shù)量、設(shè)置子組件橫跨幾行或者幾列,

當(dāng)網(wǎng)格容器尺寸發(fā)生變化時,所有子組件以及間距等比例調(diào)整。

輪播

Swiper

輪播組件通常用于實現(xiàn)廣告輪播、圖片預(yù)覽、可滾動應(yīng)用等。

4.布局位置

position、offset等屬性影響了布局容器相對于自身或其他組件的位置。

定位能力 實現(xiàn)方式
絕對定位 使用position實現(xiàn)絕對定位,控件位置相對無法自適應(yīng)
相對定位 使用offset可以實現(xiàn)相對定位,控件位置相對可以自適應(yīng)

十.DevEco Studio實用

DevEco Studio和Android Studio很像,他們都是基于IntelliJ IDEA開發(fā)工具演變而來。

但是DevEco Studio有一些和Android Studio有區(qū)別有很實用的地方。

1.Previewer

DevEco Studio有一個Previewer功能,在開發(fā)過程中能實時看到ts文件實現(xiàn)的UI效果。AndroidStudio針對XML布局文件也有個類似的Design功能,但是只能看到布局控件的區(qū)域排布,DevEco Studio的Previewer能直接實現(xiàn)最終UI效果和邏輯呈現(xiàn),并且跟隨代碼實時更新

鴻蒙開發(fā)文檔,HarmonyOS,harmonyos,華為

2.低代碼UI開發(fā)

DevEco Studio有一個低代碼開發(fā)UI的功能,實現(xiàn)了在開發(fā)過程中實時拖動控件進行UI開發(fā)。

這項功能的開關(guān)需要在工程創(chuàng)建時選擇

打開Enable Super Visual,表示使用低代碼開發(fā)功能開發(fā)應(yīng)用/服務(wù)。

鴻蒙開發(fā)文檔,HarmonyOS,harmonyos,華為

同步完成后,工程目錄中自動生成低代碼目錄結(jié)構(gòu)。

鴻蒙開發(fā)文檔,HarmonyOS,harmonyos,華為

index.js:低代碼頁面的邏輯描述文件,定義了頁面里所用到的所有的邏輯關(guān)系,比如數(shù)據(jù)、事件等。如果創(chuàng)建了多個低代碼頁面,則pages目錄下會生成多個頁面文件夾及對應(yīng)的js文件。

index.visual:visual文件存儲低代碼頁面的數(shù)據(jù)模型,雙擊該文件即可打開低代碼頁面,進行可視化開發(fā)設(shè)計。如果創(chuàng)建了多個低代碼頁面,則pages目錄下會生成多個頁面文件夾及對應(yīng)的visual文件。

打開“index.visual”文件,即可進行頁面的可視化布局設(shè)計與開發(fā)

鴻蒙開發(fā)文檔,HarmonyOS,harmonyos,華為

十一.結(jié)束語

鴻蒙應(yīng)用開發(fā)的基礎(chǔ)知識就先講解到這里

后續(xù)隨著HarmonyOS學(xué)習(xí)的深入,本博文會持續(xù)更新鴻蒙開發(fā)需要掌握的基礎(chǔ)知識點。文章來源地址http://www.zghlxwxcb.cn/news/detail-751339.html

到了這里,關(guān)于鴻蒙:Harmony開發(fā)基礎(chǔ)知識詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 鴻蒙Harmony應(yīng)用開發(fā)—ArkTS聲明式開發(fā)(基礎(chǔ)手勢:Web)下篇

    鴻蒙Harmony應(yīng)用開發(fā)—ArkTS聲明式開發(fā)(基礎(chǔ)手勢:Web)下篇

    onRequestSelected onRequestSelected(callback: () = void) 當(dāng)Web組件獲得焦點時觸發(fā)該回調(diào)。 示例: onScreenCaptureRequest10+ onScreenCaptureRequest(callback: (event?: { handler: ScreenCaptureHandler }) = void) 通知收到屏幕捕獲請求。 參數(shù): 參數(shù)名 參數(shù)類型 參數(shù)描述 handler ScreenCaptureHandler 通知Web組件用戶操作行

    2024年04月09日
    瀏覽(28)
  • 【Audio音頻開發(fā)】音頻基礎(chǔ)知識及PCM技術(shù)詳解

    【Audio音頻開發(fā)】音頻基礎(chǔ)知識及PCM技術(shù)詳解

    個人主頁:董哥聊技術(shù) 我是董哥,嵌入式領(lǐng)域新星創(chuàng)作者 創(chuàng)作理念:專注分享高質(zhì)量嵌入式文章,讓大家讀有所得! 現(xiàn)實生活中,我們聽到的聲音都是時間連續(xù)的,我們稱為這種信號叫 模擬信號 。模擬信號需要進行 數(shù)字化 以后才能在計算機中使用。 目前我們在計算機上

    2024年02月03日
    瀏覽(27)
  • 信息檢索(基礎(chǔ)知識一)——詞項-文檔關(guān)聯(lián)矩陣及倒排索引構(gòu)建

    信息檢索(基礎(chǔ)知識一)——詞項-文檔關(guān)聯(lián)矩陣及倒排索引構(gòu)建

    ? (本文中用到的文件名為:hyatt-k) 利用文件讀取方法對給定郵件數(shù)據(jù)集中的文本文件進行預(yù)處理,并按照圖1中的詞項詞典構(gòu)造流程生成詞項詞典。 ?針對給定的郵件數(shù)據(jù)集和生成的詞項詞典,建立詞項文檔關(guān)聯(lián)矩陣(如圖1-1所示) ?針對給定的郵件數(shù)據(jù)集和生成的詞項詞

    2024年02月08日
    瀏覽(27)
  • 鴻蒙Harmony-相對布局(RelativeContainer)詳解

    鴻蒙Harmony-相對布局(RelativeContainer)詳解

    成年人的世界,從來沒有容易二字,想要什么,就得憑自己的努力去拿,遇到事情就得自己生生的硬抗,希望你即使再辛苦,但還是會選擇這滾燙的人生,加油陌生的朋友們 目錄 一,定義 二,設(shè)置依賴關(guān)系 2.1?錨點設(shè)置 2.2?設(shè)置相對于錨點的對齊位置 RelativeContainer為采用相

    2024年02月01日
    瀏覽(28)
  • 鴻蒙Harmony-層疊布局(Stack)詳解

    鴻蒙Harmony-層疊布局(Stack)詳解

    我們總是為了太多遙不可及的東西去拼命,卻忘了人生真正的幸福不過是燈火闌珊處的溫暖,柴米油鹽的充實,人生無論你賺的錢,是多還是少,經(jīng)歷的事情是好還是壞,都不如過好當(dāng)下的每一天!? 目錄 一,定義 二,開發(fā)布局 三,對齊方式 3.1?TopStart頂部起始端? 3.2?To

    2024年01月18日
    瀏覽(20)
  • 鴻蒙Harmony-列表組件(List)詳解

    鴻蒙Harmony-列表組件(List)詳解

    不要和別人比生活,每個人階段不同,追求不同,活法自然也不同。只要今天的你能比昨天的你快樂一點點,那你就是自己人生贏家。 目錄 一,定義 二,布局與約束 2.1 布局 2.2 約束 三,開發(fā)布局 3.1?設(shè)置主軸方向 3.2設(shè)置交叉軸布局 四,迭代列表內(nèi)容 五,自定義列表樣式

    2024年01月17日
    瀏覽(20)
  • 鴻蒙Harmony-頁面路由(router)詳解

    鴻蒙Harmony-頁面路由(router)詳解

    慢慢理解世界,慢慢更新自己,希望你的每一個昨天,今天,和明天都會很快樂,你知道的,先好起來的從來都不是生活,而是你自己? 目錄 一,定義 二,頁面跳轉(zhuǎn) 2.1使用router.pushUrl 2.2 使用router.replaceUrl 2.3 使用Single模式 2.4 帶參數(shù)的跳轉(zhuǎn) ?三,頁面返回 ?3.1返回到上一個頁

    2024年01月20日
    瀏覽(25)
  • Harmony鴻蒙南向驅(qū)動開發(fā)流程

    Harmony鴻蒙南向驅(qū)動開發(fā)流程

    HDF(Hardware Driver Foundation)驅(qū)動框架,為驅(qū)動開發(fā)者提供驅(qū)動框架能力,包括驅(qū)動加載、驅(qū)動服務(wù)管理、驅(qū)動消息機制和配置管理。并以組件化驅(qū)動模型作為核心設(shè)計思路,讓驅(qū)動開發(fā)和部署更加規(guī)范,旨在構(gòu)建統(tǒng)一的驅(qū)動架構(gòu)平臺,為驅(qū)動開發(fā)者提供更精準(zhǔn)、更高效的驅(qū)動

    2024年04月27日
    瀏覽(24)
  • 鴻蒙harmony--數(shù)據(jù)庫sqlite詳解

    鴻蒙harmony--數(shù)據(jù)庫sqlite詳解

    今天是1月20號星期六,早安,歲末大寒至,靜后春歸來。愿他鄉(xiāng)故人,漂泊有歸宿,前程有奔赴,愿人間不寒,溫暖常伴,諸事順利,喜樂長安。? 目錄 一,定義 二,運作機制 三,約束限制 四,接口說明 五,開發(fā)步驟 5.1 獲取數(shù)據(jù)庫 5.2 創(chuàng)建數(shù)據(jù)庫表 5.3 數(shù)據(jù)庫升降級 5.4插

    2024年01月21日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包