ArkUI页面首次创建流程介绍(3.0版本)

页面首次创建流程介绍

流程示意

在这里插入图片描述

  1. 框架初始化:主要初始化框架的上下文环境,包括containter容器、pipeline渲染管线、rootNode根节点等;
  2. 页面加载:在框架初始化完成后,会执行页面文件,页面文件执行时会生成后端的页面节点树,并挂载到渲染管线的根节点上;
  3. 布局渲染:页面节点挂载完成后,会触发相应的布局和渲染任务,进行布局渲染。
    下面分别从这三个阶段具体展开进行分析说明。

框架初始化

在这里插入图片描述
在这里插入图片描述

Ability初始化

Ability是系统调度应用的最小单元,通过JS引擎隔离开发者代码。其中,每个Ability都有自己的UI线程,实现并行渲染。

  • 初始化当前进程
std::call_once(onceFlag, [abilityContext, cacheDir]() {
      LOGI("Initialize for current process.");
      SetHwIcuDirectory();
      Container::UpdateCurrent(INSTANCE_ID_PLATFORM);
      CapabilityRegistry::Register();
      AceApplicationInfo::GetInstance().SetPackageName(abilityContext->GetBundleName());
      AceApplicationInfo::GetInstance().SetDataFileDirPath(abilityContext->GetFilesDir());
      AceApplicationInfo::GetInstance().SetApiTargetVersion(abilityContext->GetApplicationInfo()->apiTargetVersion);
      AceApplicationInfo::GetInstance().SetAppVersionName(abilityContext->GetApplicationInfo()->versionName);
      AceApplicationInfo::GetInstance().SetAppVersionCode(abilityContext->GetApplicationInfo()->versionCode);
      AceApplicationInfo::GetInstance().SetUid(IPCSkeleton::GetCallingUid());
      AceApplicationInfo::GetInstance().SetPid(IPCSkeleton::GetCallingPid());
      ImageCache::SetImageCacheFilePath(cacheDir);
      ImageCache::SetCacheFileInfo();
      AceEngine::InitJsDumpHeadSignal();
  });
  • 添加监听器:添加各种Listener
   window->RegisterWindowChangeListener(aceWindowListener);
   // register drag event callback
   window->RegisterDragListener(aceWindowListener);
   // register Occupied Area callback
   window->RegisterOccupiedAreaChangeListener(aceWindowListener);
   // register ace ability handler callback
   window->SetAceAbilityHandler(aceWindowListener);
   // register input consumer callback
   std::shared_ptr<AceWindowListe
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值