鸿蒙开发5.0【应用启动框架AppStartup应用场景分析】

启动框架应用场景

大型应用在启动过程中会加载大量的模块或SDK,各个模块或SDK还有依赖,模块或SDK加载要有一套管理机制,否则会杂乱无章,都耦合在一起,进而会影响启动性能。

AppStartup提供在应用启动时初始化组件的简单而高效的方法。

  1. 更好管理应用程序初始化过程,避免出现初始化错误、重复初始化等问题。
  2. 提高应用程序的启动速度和用户体验。

启动流程介绍(自动模式)

自动模式下启动框架的执行顺序在创建AbilityStage和执行AbilityStage onCreate回调之间。

那启动框架内的任务执行顺序是什么样子呢? 基于以下配置,进行任务时序分析。

注意:

  1. configEntry是启动框架初始化组件的全局配置入口函数。主要包括 【执行所有组件初始化的超时时间】 和 【表示启动框架的监听器,该监听器将在所有组件初始化完成时调用】。
  2. startupTasks配置中的 srcEntry 表示 需要加载的组件实现的入口函数。

以下是startup_config.json文件中的配置。

{
  "startupTasks": [
  {
    "name": "StartupTask_001",
    "srcEntry": "./ets/Startup2/StartupTask_001.ets",
    "dependencies": []
  },
  {
    "name": "StartupTask_002",
    "srcEntry": "./ets/Startup2/StartupTask_002.ets",
    "dependencies": [
      "StartupTask_001"
    ]
  }
  ],
  "configEntry": "./ets/Startup2/StartupConfig.ets"
}

1

场景以及解决方案

场景介绍

在开发应用的时候,一般都会引入SDK,而大部分SDK都要求我们在Application启动前初始化,当我们引入的SDK越来越多,就会出现Application启动时间越来越长,如果SDK的初始化任务相互依赖,还要处理很多条件判断。如果都在主线程按照顺序初始化,或者再加上异步初始化。那APP的启动性能就会非常差。

举例: xx银行应用初始化模块加载,广告模块、人脸识别模块、APM模块、配置中心模块、数据管理模块、静态配置模块、H5灰度模块、首页加载模块、启动模块、定位模块、日志模块、登录模块、网络模块、离线模块、弹屏模块、隐私模块、推送模块、路由模块、安全模块、埋点模块、音视频模块、银联支付模块、url安全校验模块、用户中心模块、设备管理模块、X5初始化模块。

优势:减少手动加载的错误率。

配置启动框架AppStartup,应用启动时初始化组件。

SDK/组件/任务 依赖关系 如下图所示:

2

最终发现组件的加载顺序为:1->2->4->3->5。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值