Ability是鴻蒙應(yīng)用所具備能力的抽象,也是應(yīng)用程序的重要組成部分蔬蕊。一個應(yīng)用可以具備多種能力(即可以包含多個Ability),HarmonyOS支持應(yīng)用以Ability為單位進(jìn)行部署哥谷。Ability可以分為FA(Feature Ability)和PA(Particle Ability)兩種類型岸夯,每種類型為開發(fā)者提供了不同的模板,以便實現(xiàn)不同的業(yè)務(wù)功能们妥。
FA支持Page Ability:
Page模板是FA唯一支持的模板猜扮,用于提供與用戶交互的能力。一個Page實例可以包含一組相關(guān)頁面监婶,每個頁面用一個AbilitySlice實例表示旅赢。
PA支持Service Ability和Data Ability:
Service模板:用于提供后臺運行任務(wù)的能力齿桃。
Data模板:用于對外部提供統(tǒng)一的數(shù)據(jù)訪問抽象。
大家看到這是不是覺得似曾相識煮盼,這個Page Ability不就是Activity短纵,Service Ability不就是Service,Data Ability不就是ContentProvider嗎僵控?至少從目前的描述來看香到,這個和安卓的那一套即為相似,只不過多了點封裝报破。那真的是這樣的嗎悠就?
讓我們來一探究竟!3湟住梗脾!限于篇幅,我們今天先介紹Page Ability盹靴。
【鴻蒙&安卓】
一炸茧、概念對比:
【結(jié)論】
1、相同的是鹉究,首先兩者都是應(yīng)用的入口宇立,用于提供與用戶交互的能力踪宠;
2自赔、不同的是,Page Ability只有一個柳琢,但可以由多個(最少1個)AbilitySlice組成绍妨;而Activity可以是多個共同組成app的,而且可以用Activity嵌套Fragment柬脸,甚至是Activity先嵌套Fragment他去,再嵌套ViewPage或者是Activity先嵌套ViewPage,再嵌套Activity倒堕。
圖左是安卓灾测,圖右是鴻蒙
二、生命周期對比:
Activity:
Activity的生命周期有七個方法垦巴。
Page Ability:
Page Ability的生命周期有六個方法媳搪。
【結(jié)論】
1、相同的是骤宣,首先兩者都是將生命周期定義為成對出現(xiàn)秦爆;
2、不同的是憔披,Activity首先多了onRestart()回調(diào)等限,這是在打開一個新的當(dāng)前的Activity爸吮,這個在鴻蒙的PageAbility被取消了,當(dāng)前的PageAbility不會被暫停望门;另外PageAbility形娇,在我的理解中,鴻蒙是將事件驅(qū)動的應(yīng)用程序看做了一個很好的狀態(tài)機(jī)模型筹误,通過控制狀態(tài)的邏輯委托不同的狀態(tài)去做不同的事情埂软,對于每一個狀態(tài)來說又再次委托控制狀態(tài)的邏輯做出相應(yīng)的動作和修改。簡單來說纫事,就是通過將不同的狀態(tài)分開來討論勘畔,抽取共同性,使得問題的處理變得簡單丽惶。
上圖是安卓炫七,下圖是鴻蒙
本文由GZH程序員小小葉發(fā)布!