HarmonyOS(鴻蒙)——頁面
一、簡介
1.1 什么是頁面
信息以頁面信息組織,信息頁面由語言來實現,在各個信息頁面之間建立超文本鏈接以便瀏覽,這就是頁面。頁面一般包括:文本、圖像、表格、超鏈接等基本元素。
2.1 HarmonyOS(鴻蒙)中的頁面
當我們打開手機App之后看到的都是頁面!
在HarmonyOS中,一個頁面可以被當做一個Ability,更準確的說是Page Ability中的AbilitySlice(指應用的單個頁面及其控制邏輯的總和),這里先簡單介紹Ability。
二、Ability
2.1 簡介
Ability是應用所具備能力的抽象(我感覺也可以理解為模板,模塊),也是應用程序的重要組成部分。一個應用可以具備多種能力(即可以包含多個Ability),HarmonyOS支持應用以Ability為單位進行部署。
Ability分為兩種:
FA(Feature Ability)
PA(Particle Ability)
Ability類型
支持模板
描述
Feature Ability
Page Ability
Page模板:用于提供與用戶交互的能力。一個Page實例可以包含一組相關頁面,每個頁面用一個AbilitySlice實例表示。
Particle Ability
Service Ability和Data Ability
Service模板:用于提供后臺運行任務的能力。
Data模板:用于對外部提供統一的數據訪問抽象。
2.2 Page Ability
Page Ability是 Feature Ability唯一支持的模板。
用于提供與用戶的交互能力,其實就是頁面的父級。一個Page可以由一個或多個AbilitySlice構成,AbilitySlice是指應用的單個頁面及其控制邏輯的總和。官方認為當一個Page由多個AbilitySlice共同構成時,這些AbilitySlice頁面提供的業務能力應具有高度相關性。
HarmonyOS支持不同Page之間的跳轉,并可以指定跳轉到目標Page中某個具體的AbilitySlice。
2.3 Service Ability
Service Ability是 Particle Ability支持的模板之一。
用于后臺運行任務(如執行音樂播放、文件下載等),但不提供用戶交互界面。Service可由其他應用或Ability啟動,即使用戶切換到其他應用,Service仍將在后臺繼續運行。
Service是單實例的。在一個設備上,相同的Service只會存在一個實例。如果多個Ability共用這個實例,只有當與Service綁定的所有Ability都退出后,Service才能夠退出。由于Service是在主線程里執行的,因此,如果在Service里面的操作時間過長,開發者必須在Service里創建新的線程來處理,防止造成主線程阻塞,應用程序無響應。
如下是HarmonyOS線程間通信開發概述官網地址:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/inter-thread-overview-0000000000038958
2.4 Data Ability
Data Ability是 Particle Ability支持的模板之一。
用于應用管理其自身和其他應用存儲數據的訪問,并提供與其他應用共享數據的方法。Data既可用于同設備不同應用的數據共享,也支持跨設備不同應用的數據共享。數據的存放形式多樣,可以是數據庫,也可以是磁盤上的文件。Data對外提供對數據的增、刪、改、查,以及打開文件等接口,這些接口的具體實現由開發者提供。
三、HarmonyOS頁面的設計
3.1 原子化服務與HAP簡介
HarmonyOS中的應用與傳統App應用有一個很大的亮點,HarmonyOS提供了一種面向未來的服務提供方式,原子化服務。
原子化服務可以免安裝(無需顯示安裝,由系統后臺按需主動安裝非常方便),它支持運行在1+8+N設備上。
原子化服務與傳統的App應用對比如下:
項目
原子化服務
傳統App應用
件包形態
APP Pack(.app)
APP Pack(.app)
分發平臺
由原子化服務平臺(Huawei Ability Gallery)管理和分發
由應用市場(AppGallery)管理和分發
安裝后有無桌面icon
無桌面icon,但可手動添加到桌面,顯示形式為服務卡片
有桌面icon
HAP包免安裝要求
所有HAP包(包括Entry HAP和Feature HAP)均需滿足免安裝要求
所有HAP包(包括Entry HAP和Feature HAP)均為非免安裝的
官網地址:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/atomic-service-definition-0000001090840664
原子化服務由HAP包組成,HAP是Ability的部署包,HarmonyOS應用代碼圍繞Ability組件展開。一個HAP是由代碼、資源、第三方庫及應用配置文件組成的模塊包,可分為entry和feature兩種模塊類型。
詳細內容可以查看官網:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/basic-fundamentals-0000000000041611
一個原子化服務可以有一個或者多個HAP組成,而一個HAP對應1個FA或者1個PA,每個FA或PA均可獨立運行,完成1個特定功能;1個或多個功能(對應FA或PA)完成1個特定的便捷服務。
所以HarmonyOS的App安裝包的結構示意圖如下:
3.2 可分可合思想
根據3.1中HarmonyOS的App安裝包的結構可知,一個HarmonyOS安裝包可以由任意需要的一個或者多個HAP組成,這里的組成是可以選擇的,可以根據用戶需求和硬件設備做合理的選擇進行應用組合。
打個比方使用搭載HarmonyOS系統的電視和手機分別可以具有如下的一些功能:
HarmonyOS電視機:
HarmonyOS手機:
電視機沒有短信和通話的功能,但是它擁有控制頻道切換的功能,因此可以安裝控制頻道.HAP;而手機擁有短信和通話的功能,因此可以安裝短信.HAP和通過.HAP。兩者都擁有游戲的功能,因此均可以安裝游戲.HAP。因此HarmonyOS的HAP安裝包,可以根據用戶的實際需求或者硬件設施進行合理的安裝,實現安裝包的可分可合思想。
針對不同的功能,建議統一寫入同一個HAP中,比如短信.HAP,這樣可以減少用戶使用某一個特定功能的時候,系統下載安裝包的復雜度或者用戶字段安裝的復雜度。
3.3 HAP中的Ability
針對上面的游戲.HAP,比如說是男人就下一百層,我們會開發一個Ability,它會存在很多子功能,比如登錄、注冊、游戲、裝備、聊天、等等。這些不同的功能都可以整合到不同的AbilitySlice中,一個AbilitySlice對應一個頁面。
游戲.HAP的Ability與其AbilitySlice關系圖如下:
登錄、注冊、游戲、裝備、聊天、等等AbilitySlice統一加入一個Ability中,不同的AbilitySlice之間可以實現跳轉,最終打包成一個可以運行的游戲.HAP
Java 移動APP
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。