HarmonyOS Next综合学习

126 阅读3分钟

生命周期

自定义组件生命周期

自定义组件是由@Component装饰的UI单元,可以组合多个系统组件实现UI的复用

  • aboutToAppear:组件即将出现时回调 。具体时机为在创建自定义组件的新实例后,在执行其build()函数之前执行 。
  • onDidBuild:组件build()函数执行完成之后回调。不建议在此函数中更改状态变量或使用animateTo等功能,这可能会导致不稳定的UI表现 。
  • aboutToDisappear:组件即将消失时回调。在自定义组件析构销毁之前执行。不允许在aboutToDisappear函数中改变状态变量,特别是@Link变量的修改可能会导致应用程序行为不稳定。

页面生命周期

页面是由@Entry装饰的自定义组件,是页面的入口组件

  • onPageShow:页面每次显示时触发一次,包括路由过程、应用进入前台等场景。
  • onPageHide:页面每次隐藏时触发一次,包括路由过程、应用进入后台等场景。
  • onBackPress:当用户点击返回按钮时触发。

UIAbility生命周期

  • oncreate():在应用加载过程中,UIAbility实例创建完成时触发,可以在该回调中进行页面初始化操作,例如变量定义和资源加载等,用于后续的UI展示
  • onWindowStageCreate(): UIAbility实例创建完成后,在进入前台之前,系统会创建一个WindowStage ,此时会触发该回调,可以在其中设置UI加载和订阅WindowStage的事件。
  • onForeground():在UIAbility的UI可见之前触发,例如UIAbility切换至前台时 ,可以在该回调中申请系统需要的资源,或者重新申请在Background状态中释放的资源。
  • onBackground():在UIAbility的UI完全不可见之后触发,例如UIAbility切换至后台时 。可以在该回调中释放UI不可见时无用的资源,或者执行较为耗时的操作,例如状态保存等 。
  • onWindowStageWillDestroy():在WindowStage销毁前执行,此时WindowStage仍然可以使用
  • onDestroy():在UIAbility实例销毁时触发。可以在该回调中进行系统资源的释放和数据的保存等操作

如何提供应用的性能

使用AOT模式

也就是提前编译,会将代码生成的字节码提前编译为机器码,这样在运行时即可获得加速

提高应用冷启动

  1. 应用在创建的时候,设置合适分辨率的启动图标
  2. 减少首页中导入的模块,不是必须的模块可以放到其它页面加载(动态加载或者延时加载)
  3. 使用异步加载的方式,防止阻塞生命周期的执行
  4. 减少首页数据的加载,比如可以使用LazyForEach的方法搭配cachedCount方法进行缓存等

减少丢帧卡顿

  1. 避免在主线程执行耗时操作,在主线程执行耗时操作时会阻塞UI渲染,所以耗时操作可以放到TaskPool或者Worker等后台线程中执行
  2. 使用资源图替代页面的绘制
  3. 尽量减少页面的嵌套层级
  4. 组件复用,降低组件频繁创建和销毁的开销
  5. 选择合适装饰器控制状态变量,