1 个回答

概念梳理

  • 每个应用至多并存三类进程(主进程、Extension类进程、Render 进程),应用中所有的进程都是由系统创建和管理的。
  • 应用主进程中运行所有的 UIAbility 组件、页面和业务逻辑,它可以拥有多个 UIAbility 实例。
  • 一个应用包含一个或者多个 Module,Module 分为“Ability”和“Library”两种类型,Ability 类型的 Module 对应于编译后的 HAP;Library 类型的 Module 对应于HAR/HSP。
  • HAP 可分为 Entry 和 Feature 两种类型,同一个应用中,同一设备类型只支持一个 Entry 类型的HAP,是整个应用的入口模块。

解决方案

  • 进程启动过程:

    1. 首先系统服务通过孵化进程拉起应用主进程并创建出相应的运行环境。
    2. 应用再根据实际情况请求系统服务。
    3. 启动应用所需的其他进程。
  • 模块启动顺序:

    1. 首先拉起应用的入口模块,该模块加载时会创建一个 AbilityStage 实例,可以对该模块进行初始化等操作。
    2. 模块初始完成后,会拉起相应的入口 UIAbility。
    3. UIAbility 加载完成后会生成一个 WindowStage 类实例并与之绑定。WindowStage 发挥了应用进程内窗口管理器的作用,UIAbility 通过它持有一个窗口,在该窗口上加载出首个 ArkUI 页面,从而在设备上呈现。

参考链接

Stage 模型开发概述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进