精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

OpenHarmony-UI框架適配層淺析之一

系統 OpenHarmony
本文主要對適配層的部分核心類進行簡單介紹,通過這些核心類的關系圖和流程交互說明來一窺適配層的部分面貌。

??想了解更多內容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術社區??

??https://ost.51cto.com??

前言

方舟開發框架(簡稱:ArkUI),是一套UI開發框架,提供開發者進行應用UI開發時所必須的能力。提供跨平臺能力,集成了類Web開發范式與聲明式開發范式兩種開發范式。框架分為應用層、框架層、渲染引擎、平臺適配和橋接層。本文主要對適配層的部分核心類進行簡單介紹,通過這些核心類的關系圖和流程交互說明來一窺適配層的部分面貌。

核心類簡介

類關系圖

  • AceEngine: 全局唯一,提供實例的開門狗注冊、垃圾回收能力,同時也作為AceContainer的容器。
  • AceContainer:顧名思義,是一個容器類,由前端、任務執行器、資源管理器、渲染管線、視圖等聚合而成,提供了生命周期對接、功能調度接口和UI渲染的各項能力,是平臺適配中非常重要的模塊。
  • AceAbility: 對應的是FA模型中的PageAbility,是用戶具體可見并可以交互的Ability實例。
  • Frontend: 前端框架的抽象,由DeclarativeFrontend、JsFrontend和CardFrontend繼承來實現聲明式、類WEB及Card方式的實現。
  • PlatformEventCallback:平臺事件回調的抽象,不同ability實現各自的回調接口。目前僅支持OnFinish和OnStatusBarBgColorChanged兩個事件的回調。
  • AssetManager: 資源管理器的抽象,由FlutterAssetManager實現,最終由FileAssetProvider提供資源文件加載。
  • AceView: 渲染生成視圖節點。
  • TaskExecutor: 任務管理器。
  • PipelineContext: 渲染管線。
  • PlatformResRegister: 平臺資源的注冊和管理,通過接口回調實現平臺層的渲染。

協作說明

這里我們以一個典型的APP窗口尺寸發生變化的實現流程來幫助大家理解ACE框架類之間是如何交互的,參見時序圖:

步驟說明:

  1. WindowImpl窗口對象感知窗口發生變化,調用監聽者的OnSizeChange方法。
  2. 根據ability ID獲取對應的AceContainer。
  3. 從AceContainer中獲取TaskExecutor任務管理器。
  4. 通過任務管理器創建任務。
  5. 從AceContainer中獲取當前View。
  6. 調用FlutterAceView::SurfaceChanged處理界面的變化。
  7. FlutterAceView回調AceContainer注冊的viewChangeCallback方法。
  8. viewChangeCallback從PipelineContext渲染管線對象中獲取TaskExecutor任務管理器。
  9. 通過任務管理器創建任務。
  10. 任務方法調用渲染管線PipelineContext::OnSurfaceChanged方法處理。
  11. 渲染管線最終調用前端框架OnSurfaceChanged處理界面發生的變化。

關鍵代碼實現:

AceAbility繼承自OHOS::Rosen::IWindowChangeListener,作為監聽者在OnStart啟動的時候向windows對象進行了注冊。

void AceAbility::OnStart(const Want& want) {
...
// register surface change callback
OHOS::sptr<OHOS::Rosen::IWindowChangeListener> thisAbility(this);
window->RegisterWindowChangeListener(thisAbility);
...
}

當界面發生變化,WindowImpl::UpdateRect調用監聽者的OnSizeChange處理。

void WindowImpl::UpdateRect(const struct Rect& rect, WindowSizeChangeReason reason)
{
...
for (auto& listener : windowChangeListeners_) {
if (listener != nullptr) {
listener->OnSizeChange(rect, reason);
}
...
}

AceAbility::OnSizeChange()。

void AceAbility::OnSizeChange(OHOS::Rosen::Rect rect, OHOS::Rosen::WindowSizeChangeReason reason)
{
auto container = Platform::AceContainer::GetContainer(abilityId_);
...
auto taskExecutor = container->GetTaskExecutor();
...
taskExecutor->PostTask([rect, abilityId = abilityId_, density = density_, reason]() {
...
auto flutterAceView = static_cast<Platform::FlutterAceView*>(container->GetView());
...
Platform::FlutterAceView::SurfaceChanged(
flutterAceView, width, height, 0, static_cast<WindowSizeChangeReason>(reason));
}, TaskExecutor::TaskType::PLATFORM);
}

Platform::FlutterAceView::SurfaceChanged()。

void FlutterAceView::SurfaceChanged(
FlutterAceView* view, int32_t width, int32_t height, int32_t orientation, WindowSizeChangeReason type)
{
...
view->NotifySurfaceChanged(width, height, type);
auto platformView = view->GetShellHolder()->GetPlatformView();
if (platformView) {
platformView->NotifyChanged(SkISize::Make(width, height));
}
...
}

viewChangeCallback()回調函數。

auto&& viewChangeCallback = [context = pipelineContext_, id = instanceId_](
int32_t width, int32_t height, WindowSizeChangeReason type) {
ContainerScope scope(id);
ACE_SCOPED_TRACE("ViewChangeCallback(%d, %d)", width, height);
context->GetTaskExecutor()->PostTask(
[context, width, height, type]() { context->OnSurfaceChanged(width, height, type); },
TaskExecutor::TaskType::UI);
};
aceView_->RegisterViewChangeCallback(viewChangeCallback);

PipelineContext::OnSurfaceChanged()。

void PipelineContext::OnSurfaceChanged(int32_t width, int32_t height, WindowSizeChangeReason type)
{
...
auto frontend = weakFrontend_.Upgrade();
if (frontend) {
frontend->OnSurfaceChanged(width, height);
}
...
}

延伸

OpenHarmony用戶程序的開發本質上就是開發Ability。OpenHarmony系統是通過對Ability調度,結合系統提供的一致性調度契約對Ability進行生命周期管理,從而實現對用戶程序的調度。

Ability框架在API 8及更早版本使用FA模型。FA模型中Ability分為PageAbility、ServiceAbility、DataAbility、FormAbility幾種類型。其中:

  • PageAbility是具備ArkUI實現的Ability,是用戶具體可見并可以交互的Ability實例。
  • ServiceAbility也是Ability一種,但是沒有UI,提供其他Ability調用自定義的服務,在后臺運行。
  • DataAbility也是沒有UI的Ability,提供其他Ability進行數據的增刪查服務,在后臺運行。
  • FormAbility是卡片Ability,是一種界面展示形式。

AceAbility對應的是FA模型中的PageAbility,和AceContainer容器類搭配管理。其它幾種ability在ACE框架中分別對應AceDataAbility、AceFormAbility和AceServiceAbility,使用PaContainer容器類進行管理,關系如下圖:

小結

  1. AceAbility是帶UI界面的Ability,非UI界面的ability是AceDataAbility、AceFormAbility和AceServiceAbility。
  2. AceContainer是一個容器,聚合了前端、渲染管線和任務執行器等核心功能,相當于一個大總管,ability的關鍵流程都要經過它調度。
  3. 通過Frontend、PlatformEventCallback、AssetManager和AceView等抽象類,提供了對平臺的抽象,通過擴展實現,滿足不同平臺的適配。

參考鏈接

方舟開發框架概述:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/arkui-overview.md。

Ability框架概述:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/ability/ability-brief.md。

FA模型綜述:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/ability/fa-brief.md。

OpenHarmony 源碼解析之ACE:

https://ost.51cto.com/posts/7908。

??想了解更多內容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術社區??

??https://ost.51cto.com??

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2022-02-28 14:54:48

openHarmon鴻蒙操作系統

2023-01-04 15:24:46

ACE組件UI布局

2022-04-01 16:04:33

Harmonytabs容器鴻蒙

2022-03-15 15:24:53

操作系統RTOSAT模塊

2022-05-16 11:50:45

HDF驅動框架

2013-12-02 13:59:22

jQueryUI

2009-07-20 17:01:11

Struts2.0+i

2014-07-28 16:05:42

云適配

2023-02-07 15:52:50

2010-03-26 09:16:44

2016-10-20 19:27:00

開源項目bootstrapcss框架

2023-06-27 15:12:46

C++三方庫移植

2022-04-01 15:18:04

HarmonyHDF 驅動鴻蒙

2022-03-07 15:22:16

classHarmony鴻蒙

2009-09-14 16:46:15

LINQ to XML

2009-07-16 09:14:26

iBATIS DAO

2023-02-07 15:43:13

三方庫適配鴻蒙

2022-05-30 15:21:27

Hi3861TCP通信

2023-03-21 18:10:34

USB接口鴻蒙

2009-09-22 13:09:06

Hibernateorm框架
點贊
收藏

51CTO技術棧公眾號

国内老司机av在线| 91a在线视频| 成人免费在线视频网址| 18禁一区二区三区| 久久久免费高清视频| 台湾天天综合人成在线| 国产精品亚洲欧美| 91精品在线免费| 欧美日韩另类丝袜其他| 麻豆成人在线视频| 欧美xxxx网站| 国产网站一区二区| 久久久久免费精品国产| 亚洲xxx在线观看| 欧美拍拍视频| 午夜视频一区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产在线资源一区| 麻豆changesxxx国产| 免费成人av| 亚洲国产精品影院| av免费精品一区二区三区| 手机在线中文字幕| 日本一区免费网站| 国产精品美女久久久久久久久| 欧美在线视频一二三| 日本五十肥熟交尾| 黄色羞羞视频在线观看| 国产精品视频麻豆| 免费看污久久久| www.欧美色| 亚洲电影一级片| 在线一区二区三区四区五区| 欧美日本韩国国产| 丰满人妻一区二区| 亚洲午夜电影| 亚洲精品久久久久国产| 老子影院午夜伦不卡大全| 噜噜噜久久,亚洲精品国产品| 视频一区欧美日韩| 综合网中文字幕| 99久久久精品视频| 亚洲av成人无码久久精品老人 | av毛片午夜不卡高**水| 成人激情av网| 欧美一级淫片videoshd| 亚欧洲乱码视频| 123成人网| 一本色道综合亚洲| 日本在线观看一区二区三区| 中文字幕在线观看第二页| 91视频一区| 日韩女优av电影| 熟女少妇在线视频播放| 五月天婷婷在线播放| 国产成人精品一区二| 97视频网站入口| 美国黑人一级大黄| 日韩精品一级| 天天影视涩香欲综合网| 亚洲高清视频在线观看| 精品人妻伦一区二区三区久久| 亚洲欧洲视频| 色阁综合伊人av| 毛片久久久久久| 另类ts人妖一区二区三区| 色天天综合色天天久久| 久久最新免费视频| 日av在线播放| 国产精品996| 超碰97在线资源| 国产精品美女高潮无套| 欧美系列精品| 欧美男人的天堂一二区| 精品视频在线观看一区| 成人福利在线| 国产精品456| 国产精品视频在线免费观看| 瑟瑟视频在线免费观看| 亚洲高清久久| 久久精品91久久久久久再现| 亚洲一区二区三区无码久久| 色8久久久久| 日韩欧美在线1卡| 亚洲の无码国产の无码步美| 在线日本制服中文欧美| 色诱女教师一区二区三区| 国产一区二区视频在线观看免费| 深爱激情综合网| 日韩色av导航| 久久av无码精品人妻系列试探| 成人av资源电影网站| 亚洲国产精品久久久久秋霞不卡| 亚洲久久久久久| 日韩电影免费网站| 亚洲女同精品视频| 久久99精品久久久久久国产越南| 日韩一区二区三区在线观看| 国产又黄又猛视频| 8x8ⅹ拨牐拨牐拨牐在线观看| 欧美日韩国产综合新一区| 小泽玛利亚av在线| av每日在线更新| 久久久午夜精品| 中文字幕在线不卡| 国产精品十八以下禁看| 日产精品久久久久| 9191国语精品高清在线| www.xxxx精品| 久久精品女人毛片国产| 欧美日韩亚洲一区三区| 精品中文字幕在线观看| 91插插插插插插| 久久黄色网页| 热草久综合在线| 精品国产乱码一区二区三| 久久久噜噜噜久久中文字幕色伊伊| 天堂av在线中文| 另类中文字幕国产精品| 亚洲国产97在线精品一区| 久久黄色一级视频| 国色天香久久精品国产一区| 欧美精品九九99久久| 粉嫩av懂色av蜜臀av分享| 真实国产乱子伦精品一区二区三区| 精品国产欧美一区二区三区成人| 亚洲伊人成人网| 免费中文字幕日韩欧美| 成人国产一区二区| 精品麻豆一区二区三区| 自拍偷自拍亚洲精品播放| 黄色网络在线观看| 亚州一区二区三区| 在线播放国产精品二区一二区四区| www.免费av| 狠狠色丁香婷婷综合影院| 中文字幕国产精品久久| 亚洲免费黄色网址| 99国产精品国产精品久久| 免费久久一级欧美特大黄| 7777kkk亚洲综合欧美网站| 精品久久久久久久久久久久久久久| www.四虎在线| 久久不见久久见免费视频7| 国产综合在线看| 中文字幕日韩免费| 91丨porny丨中文| 亚洲综合网中心| 一色桃子av在线| 亚洲丶国产丶欧美一区二区三区| 亚洲成人手机在线观看| 欧美三级午夜理伦三级小说| 中文字幕精品在线| 日韩久久久久久久久久| 国产精品视频一二三区| 国产一二三在线视频| 9l视频自拍蝌蚪9l视频成人| 亚洲图片欧洲图片av| 全网免费在线播放视频入口| 国产精品99久久久久久久vr| 欧美极品少妇无套实战| 国产精品宾馆| 中文字幕日韩视频| 一级黄色大毛片| 久久中文字幕电影| 国产专区在线视频| 成人免费网站视频| 欧美一二三区在线观看| 久草福利资源在线观看| 成人av电影免费观看| 亚洲欧洲日产国码无码久久99| 天堂综合在线播放| 欧美日本精品在线| 涩涩视频在线观看免费| 欧美日韩黄色一区二区| 国产极品一区二区| 美女诱惑黄网站一区| 亚洲欧洲久久| 成人看片爽爽爽| 欧美孕妇毛茸茸xxxx| 午夜激情视频在线| 在线免费观看一区| 精品无码一区二区三区蜜臀| 成人h动漫精品一区二区| 可以在线看的黄色网址| 亚洲精品午夜av福利久久蜜桃| 国产精品久久波多野结衣| 黑人巨大精品| 欧美成在线视频| 亚洲天堂aaa| 亚洲在线视频免费观看| 久久久久久久久久毛片| 999在线观看精品免费不卡网站| 97免费高清电视剧观看| 黄色动漫在线观看| 亚洲国产高清高潮精品美女| 最近中文字幕在线观看视频| 一区二区三区日韩| 中文字幕一区二区三区四| 99国产精品99久久久久久粉嫩| 神马影院我不卡| 亚洲四虎影院| 久久久久女教师免费一区| 国产高清美女一级毛片久久| 日本高清视频一区二区| 欧美日韩免费做爰视频| 国产成人啪午夜精品网站男同| 99热成人精品热久久66| 免费看av成人| 亚洲精品欧美日韩| 在线视频观看国产| 国产一区二区三区视频在线观看| 亚洲男女视频在线观看| 欧美日本一区二区三区四区| 精品国产一区二区三区四| 久久女同精品一区二区| 小日子的在线观看免费第8集| 日本网站在线观看一区二区三区| 日韩国产精品一区二区| 国内精品偷拍| 91久色国产| 91麻豆精品| 九九视频直播综合网| 97视频在线观看网站| 亚洲欧美日韩高清| 婷婷在线免费视频| 欧美日韩亚洲精品内裤| 久久无码精品丰满人妻| 成人免费高清在线| 成人免费在线小视频| 亚洲欧美一区在线| 亚洲人成人77777线观看| 国产欧美日韩一区二区三区四区| 国产另类第一区| 超碰成人在线观看| 成人91视频| 91午夜精品| 国产精品美女诱惑| 波多野结衣欧美| 国产乱子伦精品| 成人在线超碰| 精品国产日本| 男女啪啪999亚洲精品| 国产精品成人av性教育| a毛片在线播放| 亚洲福利视频网| 免费国产羞羞网站视频| 欧美写真视频网站| 丝袜 亚洲 另类 欧美 重口| 一区在线中文字幕| 国产suv精品一区二区68| 91在线视频网址| 免费a级黄色片| 国产一区二区毛片| 玩弄中年熟妇正在播放| 日韩激情一区| 亚洲欧美日韩不卡一区二区三区| 日韩一区自拍| 国产精品88久久久久久妇女| 欧美日韩一区二区国产| 人妻少妇精品无码专区二区| 美女精品一区| 无尽裸体动漫2d在线观看| 久草在线在线精品观看| www.欧美com| 久久综合九色综合97婷婷女人| 国产精品20p| av成人老司机| 色噜噜狠狠一区二区| 99香蕉国产精品偷在线观看 | 极品少妇一区二区三区| 国产精品国产亚洲精品看不卡 | 91热视频在线观看| 国产·精品毛片| 91国产精品视频在线观看| 欧美激情偷拍| 免费看日本毛片| 日本不卡的三区四区五区| 91丝袜超薄交口足| 91污在线观看| 四虎影视1304t| 久久久午夜精品理论片中文字幕| 亚洲女人毛茸茸高潮| 亚洲综合色噜噜狠狠| 一级片免费在线播放| 555www色欧美视频| 日韩精品视频在线观看一区二区三区| 一区二区亚洲精品国产| 婷婷在线观看视频| 色婷婷**av毛片一区| 136福利第一导航国产在线| 国产精品三级在线| 欧美在线关看| 四虎影院一区二区| 99久久婷婷国产综合精品电影√| 欧美一区二区三区电影在线观看| 高清精品视频| 亚洲成色www久久网站| 亚洲精华国产欧美| www.久久av.com| 久久网站最新地址| 久久久久久久国产精品毛片| 欧美午夜精品理论片a级按摩| 丰满人妻一区二区三区四区53| 伊人精品在线观看| 2019中文字幕在线电影免费| 91久久国产精品| 少妇高潮一区二区三区99| 国产伦精品一区二区三区四区视频| 91影院成人| 欧美激情精品久久久久久小说| 福利电影一区二区三区| 亚洲欧美另类日本| 色狠狠综合天天综合综合| 女人18毛片一区二区三区| 久久精品国产一区二区电影| 日韩制服诱惑| 久久久久欧美| 国产一区二区在线| 免费拍拍拍网站| 国内精品国产三级国产a久久| 欧美激情第四页| 成人精品电影在线观看| 手机在线免费看片| 欧美猛男超大videosgay| 精品亚洲综合| 日韩午夜在线视频| 怡红院成人在线| 免费看污久久久| 奶水喷射视频一区| 中文字幕在线免费看线人| 午夜不卡在线视频| 真实的国产乱xxxx在线91| 日韩av一区二区在线| 久草在线网址| 97精品免费视频| 精品国产导航| 欧洲精品一区二区三区久久| 成人一区二区三区在线观看 | 快射视频在线观看| 国产欧美精品久久久| 97成人在线| 国产情侣第一页| 国产91精品精华液一区二区三区| 黄色一级视频在线观看| 日韩美女一区二区三区| 黄色影院在线看| 精品国产免费久久久久久尖叫| 99在线精品视频在线观看| 亚洲蜜桃精久久久久久久久久久久| 精品人伦一区二区三区蜜桃网站| 亚洲人在线观看视频| 日韩av电影手机在线| 亚洲精品黑牛一区二区三区| 欧美重口乱码一区二区| 日日摸夜夜添夜夜添精品视频| 无套内谢丰满少妇中文字幕| 综合精品久久久| 亚洲av无码乱码国产精品久久 | 中国av在线播放| 99视频在线| 亚洲一区欧美激情| 波多野结衣免费观看| 一区二区三区四区精品在线视频| 性生活视频软件| 国产91|九色| 色呦哟—国产精品| 人妻精油按摩bd高清中文字幕| 午夜av一区二区| 超碰在线影院| 99视频在线免费观看| 久久成人精品| 免费精品在线视频| 亚洲国产婷婷香蕉久久久久久| 亚洲天堂一区二区| 国产一区二区在线网站| 天堂蜜桃91精品| 国产一二三四区| 精品中文视频在线| 草草视频在线| 91久久国产自产拍夜夜嗨| 99av国产精品欲麻豆| 91麻豆精品久久毛片一级| 精品国精品自拍自在线| 国产精品字幕| 精品视频在线观看一区| 国产精品久久久久婷婷二区次| 亚洲精品网站在线| 国产精品久久二区| 欧美亚洲不卡| 国产亚洲精品精品精品| 亚洲福利视频久久| 成人av在线播放| 在线精品日韩| 麻豆精品一区二区| 一级肉体全黄裸片| 欧美www视频| 精品久久久网| 精品久久一二三| 亚洲精品国产精华液|