鸿蒙HarmonyOS NEXT开发:常见性能优化场景-(减少应用内存)

往期鸿蒙全套实战精彩文章必看内容:


简介

随着时代的发展,应用越来越复杂,占用的内存也在不断膨胀,而内存作为系统的稀缺资源比较有限,因此,主动减少应用内存的占用对于整个系统至关重要。当应用程序占用过多内存时,系统可能会频繁进行内存回收和重新分配,导致应用程序的性能下降,甚至出现崩溃和卡顿的情况。通过减少应用内存的占用,可以有效提高应用的性能和响应速度,节省系统资源,让设备的运行效率更高,延长设备的续航时间。开发者应该在应用开发过程中注重内存管理,积极采取措施来减少内存占用,以优化应用程序的性能和用户体验。

HarmonyOS提供了一些内存管理的工具和接口,帮助开发者有效地管理内存资源。其中,onMemoryLevell接口可以监听系统内存的变化,并做根据系统内存的实时情况,动态地调整应用程序的内存,以避免内存过度占用导致的性能问题。LRUCache用于在缓存空间不够的时候,将近期最少使用的数据替换为新数据。在生命周期管理中,可以释放不再使用的系统资源,包括应用内存、监听事件、网络句柄等。在Purgeable Memory内存管理机制中,开发者可以通过使用相关接口创建PurgeableMemory对象,从而管理purgeable内存。

使用onMemoryLevel监听内存变化

onMemoryLevel是HarmonyOS提供监听系统内存变化的接口,开发者可以通过onMemoryLevel监听内存变化,从而调整应用的内存。

  • AbilityStage:当HAP中的代码首次被加载到进程中的时候,系统会先创建AbilityStage实例,系统决定调整内存时,再回调AbilityStage实例的onMemoryLevel方法。
  • UIAbility:Ability是UIAbility的基类,在Ability中,提供系统内存变化的回调方法。
  • EnvironmentCallback:EnvironmentCallback模块提供应用上下文ApplicationContext对系统环境变化监听回调的能力。

MemoryLevel分为MEMORY_LEVEL_MODERATE、MEMORY_LEVEL_LOW和MEMORY_LEVEL_CRITICAL三种。其中,MEMORY_LEVEL_MODERATE代表当前系统内存压力适中,应用可以正常运行而不会受到太大影响,MEMORY_LEVEL_LOW代表当前系统的内存已经比较低了,应用应该释放不必要的内存资源,避免造成系统卡顿,MEMORY_LEVEL_CRITICAL代表当前所剩的系统内存非常紧张,应用应该尽可能释放更多的资源,以确保系统的稳定性和性能。开发人员应该根据不同的内存级别来采取相应的措施,如释放资源、优化内存使用等,以确保应用在不同内存状态下都能正常运行。MemoryLevel具体等级定义如下所示:

表1 onMemoryLevel等级定义

等级

说明

MEMORY_LEVEL_MODERATE

0

系统内存适中。系统可能会开始根据LRU缓存规则杀死进程。

MEMORY_LEVEL_LOW

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值