一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HarmonyOS應(yīng)用程序Ability的作用

鴻蒙系統(tǒng)HarmonyOS ? 來源:鴻蒙社區(qū) ? 作者:云昌白曉明 ? 2021-03-17 15:46 ? 次閱讀

什么是Ability

Ability意為能力,是HarmonyOS應(yīng)用程序提供的抽象功能。在Android應(yīng)用程序中,Activity是整個應(yīng)用程序的核心,其意為活動。無論是活動還是能力都是一種表述形式,雖然直譯后理解起來比較抽象,但如果我們把它們理解為功能,這樣就比較方便了。

就目前單一設(shè)備而言,我們可以使用手機打電話,發(fā)短信,玩游戲等,這些就是手機具有能力。在生活中,能力的體現(xiàn)無處不在,比如電飯煲具有蒸煮煲湯的能力;電視具有播放視頻的能力;音響具有外放音樂的能力。

HarmonyOS分布式系統(tǒng)所要實現(xiàn)的不僅僅是單一的能力,它所要達(dá)到的效果是能力可以單獨存在,可以互相關(guān)聯(lián),可以彼此調(diào)用互相遷移。比如可以將手機端播放的視頻遷移到智慧屏,通過大屏來觀看視頻,同時也可以將視頻音效分離到外設(shè)音響;通過設(shè)備A獲取設(shè)備B的數(shù)據(jù);多設(shè)備終端數(shù)據(jù)同步等。

在HarmonyOS分布式系統(tǒng)中,一切皆能力,能力無大小。在HarmonyOS應(yīng)用程序中,一個頁面即一種能力,如登錄頁面,即具有登錄功能的能力;一個服務(wù)即一種能力,如后臺播放音樂的能力;一個數(shù)據(jù)操作即一種能力,如獲取數(shù)據(jù)庫數(shù)據(jù)等。同時能力之間也可以互相調(diào)用,通過頁面能力來管理后臺音效播放與暫停。

面向?qū)ο?a target="_blank">編程中一切皆對象,在HarmonyOS中一切皆能力。

Ability分類

一個HarmonyOS應(yīng)用程序可以包含一個或多個能力。HarmonyOS應(yīng)用程序可以以能力為單位進行部署。在HarmonyOS應(yīng)用程序中將能力分為FA(Feature Ability,即元程序)和PA(Particle Ability,即元服務(wù))兩種類型,針對兩種類型提供了不同的模板可以在日常業(yè)務(wù)開發(fā)中直接使用。

FA支持Page Ability

FA代表有UI界面的能力,被設(shè)計用于與用戶交互。直白點就是給用戶提供可操作的頁面,官方根據(jù)不同的業(yè)務(wù)類型提供了不同種類的模板,比如關(guān)于頁面、列表頁面、個人中心頁面等,可以根據(jù)不同的使用場景來選擇不同的模板,也可以在當(dāng)前模板的基礎(chǔ)上進行修改以達(dá)到功能的快速實現(xiàn)。同時也可以調(diào)用PA支持的能力,來實現(xiàn)復(fù)雜的業(yè)務(wù)邏輯,比如在新聞內(nèi)容頁面通過Service Ability實現(xiàn)后臺自動播放音樂。

PA支持Service Ability 和Data Ability

PA代表沒有UI界面的能力,用于支持FA。例如提供數(shù)據(jù)訪問能力作為數(shù)據(jù)存儲。Service Ability提供后臺運行任務(wù)的能力;Data Ability提供插入、刪除、更新、查詢及打開文件的能力。

Ability生命周期

能力有四種生命周期狀態(tài):INITIAL(初始態(tài))、INACTIVE(未激活)、ACTIVE(激活)、BACKGROUND(后臺)。

INITIAL: 初始狀態(tài)。將即將啟動的能力加載到內(nèi)存中,但不運行。

INACTIVE:未激活狀態(tài)。前臺和后臺中間的狀態(tài),該狀態(tài)下UI可見,但不可操作。

ACTIVE:激活狀態(tài)。當(dāng)前置于前臺頁面完整呈現(xiàn),可交互狀態(tài)。

BACKGROUND: 不可見狀態(tài)。也稱置于后臺,比如A頁面跳轉(zhuǎn)到B頁面,則B頁面呈現(xiàn),A頁面隱藏。這種狀態(tài)的頁面在內(nèi)存不足情況下會被銷毀。

整個完整的生命周期圖如下所示(來自官方):

注(翻譯錯誤):圖中由于內(nèi)存不足或用戶跳轉(zhuǎn)到該能力之后能力被系統(tǒng)銷毀改為系統(tǒng)內(nèi)存不足等原因?qū)е陆K止能力,用戶重新導(dǎo)航到該能力。

所有頁面能力都必須從重寫onStart()方法開始,該能力的所有生命周期回調(diào)方法如下:

@Override

publicvoidonStart(Intentintent){

super.onStart(intent);

super.setMainRoute(HomeAbilitySlice.class.getName());

}

@Override

protectedvoidonActive(){

super.onActive();

}

@Override

protectedvoidonInactive(){

super.onInactive();

}

@Override

protectedvoidonBackground(){

super.onBackground();

}

@Override

protectedvoidonForeground(Intentintent){

super.onForeground(intent);

}

@Override

protectedvoidonStop(){

super.onStop();

}

這里我們專門寫一個頁面間跳轉(zhuǎn)來觀察能力的生命周期,使用HiLog日志的形式來查看。運行應(yīng)用程序并點擊跳轉(zhuǎn),然后再返回,日志控制臺輸出如下所示。

Ability_Lifecycle:MainAbilityonInitialized()方法...

Ability_Lifecycle:MainAbilityonStart()方法...

Ability_Lifecycle:MainAbilityonActive()方法...

Ability_Lifecycle:MainAbilityonInactive()方法...

Ability_Lifecycle:HomeAbilityonInitialized()方法...

Ability_Lifecycle:HomeAbilityonStart()方法...

Ability_Lifecycle:HomeAbilityonActive()方法...

Ability_Lifecycle:MainAbilityonBackground()方法...

Ability_Lifecycle:HomeAbilityonInactive()方法...

Ability_Lifecycle:MainAbilityonForeground()方法...

Ability_Lifecycle:MainAbilityonActive()方法...

Ability_Lifecycle:HomeAbilityonBackground()方法...

Ability_Lifecycle:HomeAbilityonStop()方法...

從日志我們觀察到先啟動MainAbility,當(dāng)跳轉(zhuǎn)到HomeAbility時,HomeAbility被激活,而MainAbility進入不可見(也就是后臺),當(dāng)點擊返回按鈕后,MainAbility回到前臺并激活,而HomeAbility將不可見并銷毀。

Ability之間跳轉(zhuǎn)

Ability之間的跳轉(zhuǎn)是以意圖(Intent)為載體來承載需要對象之間傳遞的信息。通過封裝意圖相關(guān)的參數(shù)(Parameters)和操作(Operation),可以啟動或跳轉(zhuǎn)到另一個能力。

Buttonbutton=(Button)findComponentById(ResourceTable.Id_btn);

button.setClickedListener(l->{

Operationoperation=newIntent.OperationBuilder()

.withDeviceId("")

.withBundleName("com.itming.walking.photokit")

.withAbilityName("com.itming.walking.photokit.HomeAbility")

.build();

intent.setOperation(operation);

startAbility(intent);

});

編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 智慧屏
    +關(guān)注

    關(guān)注

    2

    文章

    360

    瀏覽量

    19930
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    2005

    瀏覽量

    31800
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙開發(fā)接口Ability框架:【 (Context模塊)】

    Context模塊提供了ability或application的上下文的能力,包括允許訪問特定于應(yīng)用程序的資源、請求和驗證權(quán)限等。
    的頭像 發(fā)表于 05-13 16:04 ?983次閱讀
    鴻蒙開發(fā)接口<b class='flag-5'>Ability</b>框架:【 (Context模塊)】

    HarmonyOS應(yīng)用開發(fā)-Ability

    Ability是應(yīng)用所具備能力的抽象,也是應(yīng)用程序的重要組成部分。一個應(yīng)用可以具備多種能力(即可以包含多個Ability),HarmonyOS支持應(yīng)用以
    發(fā)表于 09-24 15:39

    應(yīng)用程序開發(fā)

    應(yīng)用程序開發(fā)不少開發(fā)者還針對AI Camera、手表做一些應(yīng)用和前端展示,這里給到的應(yīng)用程序開發(fā)資料可能有所幫助,主要內(nèi)容有:鴻蒙OS應(yīng)用程序開發(fā)HarmonyOS開發(fā)文檔(一)
    發(fā)表于 11-24 11:58

    HarmonyOS學(xué)習(xí)之二:鴻蒙HarmonyOS系統(tǒng)架構(gòu)

    層為HarmonyOS應(yīng)用程序提供了Java/C/C++/JS等多語言的用戶程序框架和Ability框架,以及各種軟硬件服務(wù)對外開放的多語言框架API;同時為采用
    發(fā)表于 11-25 14:46

    HarmonyOS學(xué)習(xí)之二:鴻蒙HarmonyOS系統(tǒng)架構(gòu)

    和驅(qū)動開發(fā)、管理框架。二、系統(tǒng)服務(wù)層:系統(tǒng)服務(wù)層是HarmonyOS的核心能力集合,通過框架層對應(yīng)用程序提供服務(wù)。該層包含以下幾個部分:系統(tǒng)基本能力子系統(tǒng)集:為分布式應(yīng)用在HarmonyOS多設(shè)備上的運行
    發(fā)表于 11-25 22:20

    圖解鴻蒙Page Ability的LaunchType

    Ability??傊瑩碛衧ingleton模式的Page Ability將永遠(yuǎn)使用唯一的實例;這里涉及到一個棧的概念,這是HarmonyOS管理Page Ability的模式。
    發(fā)表于 12-24 09:09

    HarmonyOS應(yīng)用開發(fā)-Page Ability啟動Service Ability

    Page Ablity響應(yīng)交互,從而調(diào)用Service Ability是鴻蒙開發(fā)中最常用的交互方式,在Page Ablity使用startAbility(intent)啟動Service
    發(fā)表于 11-03 10:32

    使用FeatureAbility模塊啟動其他Ability

    1 前言在HarmonyOS/OpenHarmony應(yīng)用程序中一切皆Ability(能力),即是每個界面都可以是Ability,每個功能都可以是Ab
    發(fā)表于 09-02 15:04

    HarmonyOS應(yīng)用相關(guān)術(shù)語

    便捷服務(wù)的用戶應(yīng)用程序形態(tài)。原子化服務(wù)基于HarmonyOS API開發(fā),支持運行在1+8+N設(shè)備上,供用戶在合適的場景、合適的設(shè)備上便捷使用。ArkUI方舟開發(fā)框架,是為HarmonyOS平臺開發(fā)極簡
    發(fā)表于 01-06 14:55

    HarmonyOS鴻蒙系統(tǒng)的入門學(xué)習(xí)課件免費下載

    Ability 是應(yīng)用所具備能力的抽象,也是應(yīng)用程序的重要組成部分。一個應(yīng)用可以具備多種能力(即可以包含多個 Ability),HarmonyOS 支持應(yīng)用以
    發(fā)表于 10-21 08:00 ?41次下載
    <b class='flag-5'>HarmonyOS</b>鴻蒙系統(tǒng)的入門學(xué)習(xí)課件免費下載

    基于HarmonyOS Player類實現(xiàn)的應(yīng)用程序——Codelab技術(shù)

    的編寫,再到編譯構(gòu)建、部署和運行全過程。 您將構(gòu)建一個基于HarmonyOS?Player類實現(xiàn)的應(yīng)用程序,該應(yīng)用程序功能為播放本地視頻資源或從Internet獲得的視頻資源。效果圖如下: 您將會學(xué)到什么 ●?如何使用Playe
    的頭像 發(fā)表于 03-17 15:59 ?2134次閱讀

    HarmonyOS版本下如何基于JS UI框架來開發(fā)?

    HarmonyOS應(yīng)用開發(fā)模型 HarmonyOS的用戶應(yīng)用程序包APP由一個或多個Hap包組成。每個Hap可以包含一個或多個Ability。Ab
    的頭像 發(fā)表于 07-13 09:24 ?2343次閱讀

    HarmonyOS開發(fā)案例:【Stage模型下Ability的創(chuàng)建和使用】

    基于Stage模型,對Ability的創(chuàng)建和使用進行講解。首先在課程中我們將帶領(lǐng)大家使用DevEco Studio創(chuàng)建一個Stage模型Ability,并使用UIAbilityContext啟動
    的頭像 發(fā)表于 05-08 14:41 ?1106次閱讀
    <b class='flag-5'>HarmonyOS</b>開發(fā)案例:【Stage模型下<b class='flag-5'>Ability</b>的創(chuàng)建和使用】

    HarmonyOS開發(fā)案例:【Ability內(nèi)頁面間的跳轉(zhuǎn)】

    基于Stage模型下的Ability開發(fā),實現(xiàn)Ability內(nèi)頁面間的跳轉(zhuǎn)和數(shù)據(jù)傳遞。
    的頭像 發(fā)表于 05-09 10:39 ?803次閱讀
    <b class='flag-5'>HarmonyOS</b>開發(fā)案例:【<b class='flag-5'>Ability</b>內(nèi)頁面間的跳轉(zhuǎn)】

    鴻蒙應(yīng)用模型:【Ability Kit】簡介

    Ability Kit(程序框架服務(wù))提供了應(yīng)用程序開發(fā)和運行的應(yīng)用模型,是系統(tǒng)為開發(fā)者提供的應(yīng)用程序所需能力的抽象提煉,它提供了應(yīng)用程序
    的頭像 發(fā)表于 05-29 14:41 ?951次閱讀
    鴻蒙應(yīng)用模型:【<b class='flag-5'>Ability</b> Kit】簡介