System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 内存管理方法及电子设备技术_技高网

内存管理方法及电子设备技术

技术编号:40346653 阅读:4 留言:0更新日期:2024-02-09 14:32
一种内存管理方法及电子设备,涉及终端技术领域,能够以应用程序的业务或功能模块为粒度进行内存管理,提升电子设备的内存管理性能。所述方法应用于电子设备,所述方法包括:检测第一应用的运行状态;检测到第一应用的运行状态由第一运行状态切换至第二运行状态,对所述第一应用使用的部分内存进行处理;所述部分内存为所述第一应用的目标业务关联的内存;所述目标业务为所述第一应用在所述第二运行状态下的非关键业务。

【技术实现步骤摘要】

本申请涉及终端,尤其涉及内存管理方法及电子设备


技术介绍

1、目前,随着手机等电子设备的普及,用户对于应用的流畅性需求越来越高。在电子设备中,内存是非常重要的系统资源之一。如果系统空闲内存不足,则会大大降低应用的流畅性,导致应用卡顿,影响使用体验。因此,亟待提出一种有效的内存管理方法,用于提升电子设备的性能。


技术实现思路

1、为了解决上述的技术问题,本申请实施例提供了一种内存管理方法及电子设备。本申请实施例提供的技术方案,能够以应用程序的业务或功能模块为粒度进行内存管理,提升电子设备的内存管理性能。

2、为了实现上述的技术目的,本申请实施例提供了如下技术方案:

3、第一方面,提供一种内存管理方法,该方法应用于电子设备或能够实现电子设备功能的组件(比如芯片系统),所述方法包括:

4、检测第一应用的运行状态;检测到第一应用的运行状态由第一运行状态切换至第二运行状态,对所述第一应用使用的部分内存进行处理;所述部分内存为所述第一应用的目标业务关联的内存;所述目标业务为所述第一应用在所述第二运行状态下的非关键业务。

5、示例性的,以第一应用是导航应用为例,如图6,检测到导航应用的状态由前台运行状态(第一运行状态的一个示例)切换至后台播放状态(第二运行状态的一个示例),手机可以对导航应用使用的非关键业务的内存(比如渲染线程、用户界面线程使用的内存)进行处理。

6、其中,对内存进行处理,包括对内存进行回收。首先,由于是基于应用的功能模块或业务的粒度进行内存处理,因此,内存处理的精细度更高。在一些场景中,对应用的部分功能模块(比如暂且不会使用的功能模块)或非关键业务所使用的内存数据进行处理,不至于影响整个应用的正常运行,能够提升应用的保活程度,降低应用被查杀或异常退出的概率。比如,对于某些后台应用,电子设备可以仅对后台应用的部分功能模块或非关键业务所使用的内存进行回收,如此,在尽可能保证后台应用存活的情况下,较大程度地释放应用的内存,增强电子设备的流畅度和稳定性,提高电子设备的内存管理效率。

7、其次,相比于相关技术中,依赖ontrimmemory机制,期望应用主动释放内存数据,导致应用实际上并未释放内存数据,系统的内存压力仍然较大,本申请实施例的技术方案,不依赖应用主动释放内存数据。具体的,本申请实施例中,在检测到应用处于生命周期的相应运行状态时,电子设备可以自动对应用的部分功能模块或非关键业务的内存数据进行处理。如此,一方面,有助于缓解系统的内存压力。另一方面,电子设备从应用的部分功能模块或非关键业务回收相应内存数据,使得该应用占用的总内存有所降低,因此,该应用被查杀或异常退出的概率将大幅降低。

8、在一种可能的设计中,检测到第一应用的运行状态由第一运行状态切换至第二运行状态,对所述第一应用使用的部分内存进行处理,包括:检测到第一应用的运行状态由第一运行状态切换至第二运行状态,且所述第一应用处于所述第二运行状态的时长达到第一阈值,对所述第一应用使用的部分内存进行处理。

9、示例性的,如图11,检测到在t1时刻,导航应用(第一应用的示例)的运行状态由前台运行状态(第一运行状态的示例)切换至后台播放状态(第二运行状态的示例),且导航应用处于后台播放状态的时长(时长t1-t1’)达到第一阈值,对导航应用使用的部分内存(渲染线程、用户界面线程使用的内存)进行处理。

10、如此,在应用切换运行状态后,电子设备可以延迟处理,换句话说,电子设备可以在应用切换运行状态后的一段时间后进行内存回收,以确保应用的运行状态稳定。

11、在一种可能的设计中,所述目标业务包括第一业务和/或第二业务;所述第一业务关联的内存包括第一部分内存,所述第二业务关联的内存包括第二部分内存;

12、所述第一部分内存为:在第一时间段内未被所述第一应用使用的页面;

13、所述第二部分内存为:在第二时间段内未被所述第一应用使用的压缩页面。

14、示例性的,如图6,以应用由前台运行状态切换至后台播放状态为例,在后台播放状态下,第一部分内存包括渲染线程、用户界面线程使用的内存。第一部分内存在t1-t2时间段内未被第一应用使用。检测到应用由前台运行状态切换至后台播放状态,手机可以对渲染线程、用户界面线程等非关键业务使用的内存进行回收。

15、以导航应用由后台播放状态切换至后台服务状态为例,在后台服务状态下,第一部分内存包括surface、media使用的内存。第一部分内存在t2-t3时间段内未被导航应用使用。检测到应用由后台播放运行状态切换至后台服务状态,手机可以对surface、media等非关键业务使用的内存进行回收。

16、以导航应用由后台服务状态切换至后台缓存状态为例,在后台缓存状态下,第一部分内存包括service使用的内存,第二部分内存包括渲染线程、用户界面线程使用的内存。第一部分内存在t3-t4时间段内未被导航应用使用,第二部分内存在t1-t3时间段(第二时间段)内均未被导航应用使用。检测到应用由后台服务运行状态切换至后台缓存状态,手机可以对service、渲染线程、用户界面线程等非关键业务使用的内存进行回收。

17、以导航应用由后台缓存状态切换至浅冻结状态为例,在浅冻结状态下,第二部分内存包括service、media、surface使用的内存。其中,service的内存在t3-t4时间段(第二时间段)内均未被导航应用使用,media、surface的内存在t2-t4时间段(第二时间段)内未被导航应用使用。检测到导航应用由后台缓存运行状态切换至浅冻结状态,手机可以对service、media、surface等非关键业务使用的内存进行回收。

18、以导航应用由浅冻结状态切换至深度冻结状态为例,在深度冻结状态下,第一部分内存包括object、class、method使用的内存。object、class、method的内存在t5-t6时间段(第一时间段)内未被导航应用使用。检测到导航应用由浅冻结运行状态切换至深度冻结状态,手机可以对object、class、method等非关键业务使用的内存进行回收。

19、在一种可能的设计中,所述第二时间段的时长大于所述第一时间段的时长。

20、在一种可能的设计中,采用第一压缩方式,对第一业务的内存进行处理,采用第二压缩方式,对第二业务的内存进行处理。

21、如此,对于短期内不被应用程序使用的内存数据和长期内不被应用程序使用的内存数据,可以使用不同的压缩方式进行内存处理,提升内存处理性能。

22、在一种可能的设计中,所述第二运行状态包括第一后台运行状态;

23、检测到第一应用的运行状态由第一运行状态切换至第二运行状态,对所述第一应用使用的部分内存进行处理,包括:

24、检测到所述第一应用的运行状态由所述第一运行状态切换至第一后台运行状态,对所述第一业务关本文档来自技高网...

【技术保护点】

1.一种内存管理方法,其特征在于,所述方法应用于电子设备,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,检测到第一应用的运行状态由第一运行状态切换至第二运行状态,对所述第一应用使用的部分内存进行处理,包括:检测到第一应用的运行状态由第一运行状态切换至第二运行状态,且所述第一应用处于所述第二运行状态的时长达到第一阈值,对所述第一应用使用的部分内存进行处理。

3.根据权利要求1或2所述的方法,其特征在于,所述目标业务包括第一业务和/或第二业务;所述第一业务关联的内存包括第一部分内存,所述第二业务关联的内存包括第二部分内存;

4.根据权利要求3所述的方法,其特征在于,所述第二时间段的时长大于所述第一时间段的时长。

5.根据权利要求1-4中任一项所述的方法,其特征在于,所述第二运行状态包括第一后台运行状态;

6.根据权利要求3或4所述的方法,其特征在于,所述第二运行状态包括第一后台运行状态;

7.根据权利要求1-6中任一项所述的方法,其特征在于,所述第一运行状态为前台运行状态。

8.根据权利要求1-6中任一项所述的方法,其特征在于,所述第一运行状态为第二后台运行状态。

9.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:

10.根据权利要求1-9中任一项所述的方法,其特征在于,对所述第一应用使用的部分内存进行处理,包括:

11.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:

12.根据权利要求5或6所述的方法,其特征在于,所述第一后台运行状态包括如下状态:后台播放状态、后台服务状态、后台缓存状态、浅冻结状态、深度冻结状态;

13.根据权利要求12所述的方法,其特征在于,

14.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器与所述处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述处理器从所述存储器中读取所述计算机指令,以使得所述电子设备执行如权利要求1-13中任一项所述的方法。

15.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-13中任一项所述的方法。

16.一种计算机程序产品,其特征在于,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行如权利要求1-13中任一项所述的方法。

...

【技术特征摘要】

1.一种内存管理方法,其特征在于,所述方法应用于电子设备,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,检测到第一应用的运行状态由第一运行状态切换至第二运行状态,对所述第一应用使用的部分内存进行处理,包括:检测到第一应用的运行状态由第一运行状态切换至第二运行状态,且所述第一应用处于所述第二运行状态的时长达到第一阈值,对所述第一应用使用的部分内存进行处理。

3.根据权利要求1或2所述的方法,其特征在于,所述目标业务包括第一业务和/或第二业务;所述第一业务关联的内存包括第一部分内存,所述第二业务关联的内存包括第二部分内存;

4.根据权利要求3所述的方法,其特征在于,所述第二时间段的时长大于所述第一时间段的时长。

5.根据权利要求1-4中任一项所述的方法,其特征在于,所述第二运行状态包括第一后台运行状态;

6.根据权利要求3或4所述的方法,其特征在于,所述第二运行状态包括第一后台运行状态;

7.根据权利要求1-6中任一项所述的方法,其特征在于,所述第一运行状态为前台运行状态。

8.根据权利要求1-6中任一项所述的方法,其特征在于,所述第一运行状态为第二后台运行状态。

【专利技术属性】
技术研发人员:季柯丞方锦轩王琳李玲
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1