一、什么是harmonyOs.

(1)解決用戶面對大量智能終端體驗割裂的問題,

(2)對開發者而言,harmonyos通過各種分布式技術整合不同超級終端的能力形成一個 虛擬的超級終端,應用開發者可基于harmonyos超級終端開發應用,聚焦上層業務邏輯,無需關注硬體差異,

(3)設備開發者可以按需呼叫其他終端能力,帶來基于超級終端的創新服務體驗,

二、harmonyos系統架構
1、harmonyos采用分層架構,共四層,從下向上依次為內核層、系統服務層、框架層、應用層,
系統功能按照“系統>子系統>功能/模塊”逐級展開,在多設備部署場景下,支持根據實際需求裁剪某些非必要的子系統或功能/模塊,內核子系統:HarmonyOS采用多內核設計,支持針對不同資源受限設備選用適合的OS內核,

1、一次開發、多段部署
一次開發、多端部署示意圖:

分布式任務調度示意圖
基于
分布式軟總線、資料管理
分布式Profile
分布式安全認證
構成
支持跨設備應用、遠程訪問啟動、遠程呼叫、鏈接、遷移等操作,能夠根據不同設備的能力、位置、業務運行狀態、資源使用情況、用戶的習慣和意圖選擇合適的設備運行分布式任務,

三、撰寫一個HarmonyOS應用
3..1 HarmonyOS .app 組成
HarmonyOS應用軟體包使用app pack(.app)的形式發布,它是由一個或者多個hap包以及描述每個hap屬性的pakc.info組成,hap是abilities的部署包,HarmonyOS應用圍繞abilities組件展開,一個hap是由代碼(abilities)、資源(resources)、第三方庫(libs)以及應用組態檔(config.json)組成,可分為Entry.hap和Feature.hap,

***Entry***是應用的主模塊,一個APP中,對于同一個設備型別必須有且只有一個Entry型別的hap可獨立安裝運行,
***Feature***是應用的動態特性模塊,一個APP可以包含一個或多個Feature型別的hap,也可以不包含,
只有包含abilities的hap才能獨立運行,
3.2應用UI布局的撰寫
3.2.1 布局類組件
提供不同規范的組件容器

- DirectionalLayout
以單一方向排列 - DependentLayout
以相對位置排列 - PositionLayout
以確切位置排列 - StackLayout
- AdaptiveBoxLayout
3.2.2 顯示類組件
提供單純的內容顯示

- Text
用于文本顯示 - Image
用于影像顯示 - Clock
- ProgressBar
3.2.3 互動類組件
提供具體場景下和用戶互動回應的功能

Button
提供點擊回應的功能
Slider
提供進度選擇的功能
RadioButton
TextFiled
CheckBox
3.3 在XML中宣告UI布局
在鴻蒙系統的JavaUI框架中,提供了兩種撰寫布局的方式,
在代碼中創建UI布局
通過在XML中宣告UI布局
兩者創建出的布局沒有本質的差別,
ability_main.xml檔案按照層次結構描述了界面上各種結構之間的關系,圖庫部分被宣告為一個AdaptliveBoxLayout型別的組件,且包含兩個圖庫物件,這兩個物件分別為獨立的DirectionalLayout組件,通過對組件設定布局引數和屬性值來確定最終的UI布局效果,
在xml中完成布局宣告后,需要將其添加到代碼中,添加為頁面的根布局或者其他布局的子布局,
3.4 實作應用功能
鴻蒙系統中所有的應用均在應用沙盒內運行,對資源的訪問權限均需要對系統進行申請,有系統進行管理,默認情況下應用只能訪問有限的資源,
應用權限會受到abilities、應用、系統以及用戶等多方面進行共同管理,保證了受限權限介面是在約定好的規則下正常使用,避免權限介面被濫用而導致用戶、應用或設備受損,
權限申請
示例中將使用多設備協同訪問權限(DISTRIBUTED_DATASYNC)

在config.json中使用reqPermissions屬性對該權限進行宣告,(若未進行權限宣告,應用將無法申請和獲取權限)
在MainAvility.java中基于用戶可治可控的原則,在程式運行時主動呼叫系統動態申請權限的介面,通過系統的彈窗獲得用戶的授權,敏感權限的使用需要得到用戶允許,用戶結合應用運行場景的背景關系識別出應用申請相應權限的合理性,從而做出正確的選擇,即便用戶向應用授權了請求的權限,應用在呼叫權限管控介面前也應該檢查自己是否已經獲得了權限,而不能把之前獲得的權限持久化,因為用戶授權后還可以通過設定取消授權,
實作應用遷移
分布式任務調度平臺對打在鴻蒙系統的終端提供了統一的組件管理能力,這是遠程啟動、遠程呼叫、業務無縫遷移等分布式任務,
開發者可以通過Ability中實作IAbilityContinuation介面,呼叫Ability的遷移方法continueAbility即可將本地業務無縫遷移到指定的設備中,
IAbilityContinuation介面為應用提供了如下幾種回呼方法:
IAbilityContinuation.onStartContinuation()
可以用于完成遷移前的準備作業,
IAbilityContinuation.onSaveData()
可以用于完成遷移前保存遷移所需的資料
IAbilityContinuation.onRestoreData()
可以用于恢復遷移后所需要的資料
IAbilityContinuation.onCompleteContinuation()
可以用于完成遷移后的作業,
Ability.onStart()
正常的程式啟動
回應用戶事件
用戶事件主要包括手勢事件、按鍵事件
手勢事件——可穿戴設備、手機等可觸屏設備
按鍵事件——智慧屏等由遙控器按鍵操作的設備
為遷移按鈕系結一個用戶點擊螢屏事件(Conponent.ClickedListener),和一個用于智慧屏按鍵監聽的事件(Conponent.KeyEventListener),
四.應用的編譯、安裝、運行
1、resources目錄:
按照兩級目錄性質組成,目錄命名必須符合規范,以便根據設備形態匹配相應目錄下的資源檔案
一級目錄
base目錄,是默認存在的目錄,當相應的resources資源目錄中沒有于當前設備形態相匹配的限定詞目錄時,會自動參考該目錄中的資源檔案,
二級目錄
資源目錄,存放字串、顏色、布林值等基礎語言元素,以及媒體、影片、布局等資源檔案,

2、在media目錄下存放圖片

3、在ability_main.XML檔案中宣告Ui布局


4、 在mainAbility檔案中完成用戶事件的系結遷移等作業,

5、最后編譯生成的APP檔案在release目錄下,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/286937.html
標籤:其他
