一种内存管理方法、装置、存储介质及终端设备制造方法及图纸

技术编号:17247906 阅读:36 留言:0更新日期:2018-02-11 05:56
本申请实施例公开了一种内存管理方法、装置、存储介质及终端设备。该方法包括:根据用户访问页面的操作请求,获取待入栈视图;在导航管理堆栈中识别是否存在与所述待入栈视图一致的视图,当导航管理堆栈中存在与所述待入栈视图一致的视图时,则将与所述待入栈视图一致的视图的页面数据,从内存管理对象中复制到内存缓存管理对象中,并将与所述待入栈视图一致的视图的页面数据从内存管理对象中清除;将所述待入栈视图的页面数据存储至所述内存管理对象的栈顶,并将所述待入栈视图推入所述导航管理堆栈的栈顶。通过采用本申请实施例所提供的技术方案,可以实现优化内存管理的效果。

【技术实现步骤摘要】
一种内存管理方法、装置、存储介质及终端设备
本申请实施例涉及计算机数据存储
,尤其涉及一种内存管理方法、装置、存储介质及终端设备。
技术介绍
现有技术中,应用软件(Application,APP)的客户端会为用户提供界面访问功能,通常可以通过点击界面内的页面链接,而连续访问多级页面,且在点击返回按键时,逐级返回各级界面。当打开新页面时,通常会产生页面视图及其标识,视图的标识存储到导航管理堆栈中,以记录页面打开顺序,便于根据页面的返回操作而返回上一级页面。页面视图的脚本数据,会存储到内存管理对象的空间中,用于渲染生成页面供显示。内存管理对象存储的页面数据顺序与导航管理堆栈中存储的视图标识顺序一般是对应的。但是,当用户在客户端中不停打开新页面连续访问时,由于每个页面为一个视图,当视图深度超过20级时,视图所对应页面数据的连续堆叠会造成内存开销过大,从而导致客户端出现卡死甚至崩溃闪退等情况,导致用户无法进行操作甚至被迫退出客户端。为了规避此现象的出现,操作系统的内存管理机制会对内存管理对象中的页面数据有选择的进行销毁,从而控制页面数据的堆叠总数,保证客户端不会因为内存暴增导致卡死或者闪退。然而,当用户进行返回操作时,由于已访问过的视图的页面数据从内存管理对象中被有选择的销毁,无法完整还原已访问链路,有损用户体验。
技术实现思路
本申请实施例提供一种内存管理方法、装置、存储介质及终端设备,可以实现优化内存管理的效果。第一方面,本申请实施例提供了一种内存管理方法,该方法包括:根据用户访问页面的操作请求,获取待入栈视图;在导航管理堆栈中识别是否存在与所述待入栈视图一致的视图,当导航管理堆栈中存在与所述待入栈视图一致的视图时,则将与所述待入栈视图一致的视图的页面数据,从内存管理对象中复制到内存缓存管理对象中,并将与所述待入栈视图一致的视图的页面数据从内存管理对象中清除;将所述待入栈视图的页面数据存储至所述内存管理对象的栈顶,并将所述待入栈视图推入所述导航管理堆栈的栈顶。进一步的,在导航管理堆栈中识别是否存在与所述待入栈视图一致的视图包括:在导航管理堆栈中的次栈顶至栈底中,识别是否存在与所述待入栈视图一致的视图。进一步的,所述方法还包括:根据所述待入栈视图中的页面属性,识别是否为可复用视图;若否,将所述待入栈视图的页面数据存储至所述内存管理对象的栈顶,并将所述待入栈视图推入所述导航管理堆栈的栈顶。进一步的,所述将所述待入栈视图的页面数据存储至所述内存管理对象的栈顶,包括:从所述内存缓存管理对象中,复制与所述待入栈视图一致的视图的页面数据,作为待入栈视图的页面数据;将所述页面数据存储至所述内存管理对象的栈顶,并将所述待入栈视图推入所述导航管理堆栈的栈顶。进一步的,将所述待入栈视图的页面数据存储至所述内存管理对象的栈顶,包括:将所述待入栈视图的页面数据存储至中间导航管理堆栈的栈顶;将所述中间导航管理堆栈的数据同步到操作系统级导航管理堆栈。进一步的,所述方法包括:当获取到用户的页面的返回操作时,将导航管理堆栈的栈顶的视图确定为待出栈视图;当所述导航管理堆栈中存在与所述待出栈视图一致的视图时,则将与所述待出栈视图的页面数据从所述内存管理对象的栈顶清除;将所述待出栈视图推出所述导航管理堆栈。进一步的,在当所述导航管理堆栈中存在与所述待出栈视图一致的视图时,则将与所述待出栈视图的页面数据从所述内存管理对象的栈顶清除之前,还包括:当导航管理堆栈的次栈顶的视图为可复用视图时,判断与所述次栈顶的视图对应的所述内存管理对象的次栈顶内存是否为空;若是,从所述内存缓存管理对象中复制所述次栈顶的视图的页面数据至所述内存管理对象的栈顶。进一步的,所述方法还包括:当所述导航管理堆栈中不存在与所述待出栈视图一致的视图时,则将与所述待出栈视图的页面数据从所述内存管理对象的栈顶清除,并将与所述待出栈视图的页面数据从所述内存缓存管理对象中清除。第二方面,本申请实施例还提供了一种内存管理装置,该装置包括:待入栈视图获取模块,用于根据用户访问页面的操作请求,获取待入栈视图;页面数据入栈管理模块,用于在导航管理堆栈中识别是否存在与所述待入栈视图一致的视图,当导航管理堆栈中存在与所述待入栈视图一致的视图时,则将与所述待入栈视图一致的视图的页面数据,从内存管理对象中复制到内存缓存管理对象中,并将与所述待入栈视图一致的视图的页面数据从内存管理对象中清除;第一入栈模块,用于将所述待入栈视图的页面数据存储至所述内存管理对象的栈顶,并将所述待入栈视图推入所述导航管理堆栈的栈顶。进一步的,所述页面数据入栈管理模块包括:一致视图识别单元,用于在导航管理堆栈中的次栈顶至栈底中,识别是否存在与所述待入栈视图一致的视图。进一步的,所述装置还包括:可复用视图识别模块,用于根据所述待入栈视图中的页面属性,识别是否为可复用视图;第二入栈模块,用于若否,将所述待入栈视图的页面数据存储至所述内存管理对象的栈顶,并将所述待入栈视图推入所述导航管理堆栈的栈顶。进一步的,所述第一入栈模块包括:待入栈视图的页面数据确认单元,用于从所述内存缓存管理对象中,复制与所述待入栈视图一致的视图的页面数据,作为待入栈视图的页面数据;入栈单元,用于将所述页面数据存储至所述内存管理对象的栈顶,并将所述待入栈视图推入所述导航管理堆栈的栈顶。进一步的,所述第一入栈模块和所述第二入栈模块包括:中间导航管理堆栈入栈单元,用于将所述待入栈视图的页面数据存储至中间导航管理堆栈的栈顶;操作系统级导航管理堆栈同步单元,用于将所述中间导航管理堆栈的数据同步到操作系统级导航管理堆栈。进一步的,所述装置包括:待出栈视图获取模块,用于当获取到用户的页面的返回操作时,将导航管理堆栈的栈顶的视图确定为待出栈视图;页面数据出栈管理模块,用于当所述导航管理堆栈中存在与所述待出栈视图一致的视图时,则将与所述待出栈视图的页面数据从所述内存管理对象的栈顶清除;出栈模块,用于将所述待出栈视图推出所述导航管理堆栈。进一步的,所述装置还包括:次栈顶管理模块,具体用于:当导航管理堆栈的次栈顶的视图为可复用视图时,判断与所述次栈顶的视图对应的所述内存管理对象的次栈顶内存是否为空;若是,从所述内存缓存管理对象中复制所述次栈顶的视图的页面数据至所述内存管理对象的栈顶。进一步的,所述装置还包括:页面数据清楚模块,用于当所述导航管理堆栈中不存在与所述待出栈视图一致的视图时,则将与所述待出栈视图的页面数据从所述内存管理对象的栈顶清除,并将与所述待出栈视图的页面数据从所述内存缓存管理对象中清除。第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的内存管理方法。第四方面,本申请实施例提供了一种移动终端,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的内存管理方法。本申请实施例通过在用户访问页面的操作请求时,获取到待入栈视图;在导航管理堆栈中识别是否存在与所述待入栈视图一致的视图,若存在,则将与所述待入栈视图一致的视图的页面数据,从内存管理对象中复制到内存缓存管理对象中,并将其从内存管理对象中清除;然后再将所述待入栈视图的页面数本文档来自技高网...
一种内存管理方法、装置、存储介质及终端设备

【技术保护点】
一种内存管理方法,其特征在于,包括:根据用户访问页面的操作请求,获取待入栈视图;在导航管理堆栈中识别是否存在与所述待入栈视图一致的视图,当导航管理堆栈中存在与所述待入栈视图一致的视图时,则将与所述待入栈视图一致的视图的页面数据,从内存管理对象中复制到内存缓存管理对象中,并将与所述待入栈视图一致的视图的页面数据从内存管理对象中清除;将所述待入栈视图的页面数据存储至所述内存管理对象的栈顶,并将所述待入栈视图推入所述导航管理堆栈的栈顶。

【技术特征摘要】
1.一种内存管理方法,其特征在于,包括:根据用户访问页面的操作请求,获取待入栈视图;在导航管理堆栈中识别是否存在与所述待入栈视图一致的视图,当导航管理堆栈中存在与所述待入栈视图一致的视图时,则将与所述待入栈视图一致的视图的页面数据,从内存管理对象中复制到内存缓存管理对象中,并将与所述待入栈视图一致的视图的页面数据从内存管理对象中清除;将所述待入栈视图的页面数据存储至所述内存管理对象的栈顶,并将所述待入栈视图推入所述导航管理堆栈的栈顶。2.根据权利要求1所述的方法,其特征在于,在导航管理堆栈中识别是否存在与所述待入栈视图一致的视图包括:在导航管理堆栈中的次栈顶至栈底中,识别是否存在与所述待入栈视图一致的视图。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据所述待入栈视图中的页面属性,识别是否为可复用视图;若否,将所述待入栈视图的页面数据存储至所述内存管理对象的栈顶,并将所述待入栈视图推入所述导航管理堆栈的栈顶。4.根据权利要求1或2所述的方法,其特征在于,所述将所述待入栈视图的页面数据存储至所述内存管理对象的栈顶,包括:从所述内存缓存管理对象中,复制与所述待入栈视图一致的视图的页面数据,作为待入栈视图的页面数据;将所述页面数据存储至所述内存管理对象的栈顶,并将所述待入栈视图推入所述导航管理堆栈的栈顶。5.根据权利要求1或3所述的方法,其特征在于,将所述待入栈视图的页面数据存储至所述内存管理对象的栈顶,包括:将所述待入栈视图的页面数据存储至中间导航管理堆栈的栈顶;将所述中间导航管理堆栈的数据同步到操作系统级导航管理堆栈。6.根据权利要求1所述的方法,其特征在于,包括:当获取到用户的页面的返回操作时,将导航管理堆栈的栈顶的视图确定为待出栈视图;当所述导航管理堆栈中存在与所述待出栈视图一致的视图时,则将与所述待出栈视图的页面数据从所述内存管理对象的栈顶清除;将所述待出栈视图推出所述导航管理堆栈。7.根据权利要求6所述的方法,其特征在于,在当所述导航管理堆栈中存在与所述待出栈视图一致的视图时,则将与所述待出栈视图的页面数据从所述内存管理对象的栈顶清除之前,还包括:当导航管理堆栈的次栈顶的视图为可复用视图时,判断与所述次栈顶的视图对应的所述内存管理对象的次栈顶内存是否为空;若是,从所述内存缓存管理对象中复制所述次栈顶的视图的页面数据至所述内存管理对象的栈顶。8.根据权利要求6或7所述的方法,其特征在于,还包括:当所述导航管理堆栈中不存在与所述待出栈视图一致的视图时,则将与所述待出栈视图的页面数据从所述内存管理对象的栈顶清除,并将与所述待出栈视图的页面数据从所述内存缓存管理对象中清除。9.一种内存管理装置,其特征在于,包括:待入栈视图获取模块,用于根据用户访问页面的操作请求,获取待入栈视图;页面数据入栈管理模块,用于在导航管理堆栈中识别是否存在与所述待入栈视图一致的视图,当导航管理堆栈中存在与所述待入栈视图一致...

【专利技术属性】
技术研发人员:黄琳李文彬郭亚京
申请(专利权)人:深圳乐信软件技术有限公司
类型:发明
国别省市:广东,44

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

1