【HarmonyOS 4】应用性能优化

1. ArkTs 高性能编程

1.1 ArkTs 高性能编程规则

  • 1.1.1 限制一些 TypeScript 的特性,比如需要不支持属性的动态变更、变量或参数需要明确的类型声明和返回值声明等。
  • 1.1.2 禁用 @ts-ignore、@ts-expect-error 等屏蔽编译校验的命令。
  • 1.1.3 开启 TypeScript 的严格模式,比如需要严格判空、严格函数类型检查、严格成员初始化等,提高代码的质量和可维护性,避免一些常见错误。
  • 1.1.4 ArkTs 不支持 any 和 unknown 类型。

1.2 使用 AOT 模式对应用进行编译优化
AOT 即提前编译,能够在 Host 端将字节码提前编译成 Target 端可运行的机器码,这样字节码可以获得充分编译优化,放到 Target 端运行时可以获得加速。

2. 提升应用启动和响应速度

2.1 提升应用冷启动的方法

  • 2.1.1 缩短应用进程创建和初始化阶段耗时
    设置合适分辨率的 startWindowIcon
  • 2.1.2 缩短 Application 和 Ability 初始化阶段耗时
    减少首页 Ability 或者 Page 中 import 的模块
  • 2.1.3 缩短 Ability 生命周期阶段耗时
    使用异步加载,避免阻塞生命周期。
  • 2.1.4 缩短加载绘制首页阶段耗时
    延迟加载,使用 LazyForEach 懒加载形式,减少首页数据的加载,做一些冗余加载的消除,提升首桢绘制的速度。

2.2 使用异步加载
异步接口或异步加载

2.3 使用动态加载
使用 async await 动态加载 import 模块。

2.4 延迟加载
长列表场景中,使用 LazyForEach 代替 ForEach。

2.5 使用缓存
当使用 LazyForEach 时,可以搭配使用 .cachedCount() 方法,自定义控制列表的缓存数量,实现更优的滑动体验。

3. 减少丢帧卡顿

3.1 避免在主线程上执行耗时任务
可以将耗时操作放在 TaskPool 或者 Worker (等后台线程)这俩个系统的子线程运行能力,在子线程中执行。

3.2 减少渲染进程的冗余开销
使用资源图代替绘制、合理使用 .renderGroup(true)(系统机制)、尺寸位置设置尽量使用整数,可以减少渲染所需时间,从而减少丢帧卡顿。
组件转场动画推荐使用 transtion。

3.3 减少视图嵌套层级

3.4 组件复用配合 LazyForEach
组件复用功能,使用 @Reusable 装饰器 标记这个组件后,实现 aboutToReuse(params) 方法,把需要更新的信息复制到需要复用的这个组件里面。

3.5 精确控制状态变量的关联组件数
推荐使用状态变量和组件一一绑定的方式,以数据的变更驱动组件的刷新(声明式)。
合理控制状态更新范围,避免关联刷新较大范围或者渲染较慢的组件。

3.6 在对象上谨慎使用状态变量关联
@Prop 是深拷贝,@ObjectLink 是浅拷贝,使用效果相同的场景下,优先使用 @ObjectLink 的方式较少系统内存开销。

4. 使用性能调优工具

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值