CN108681469B - 基于Android系统的页面缓存方法、装置、设备及存储介质 - Google Patents

基于Android系统的页面缓存方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN108681469B
CN108681469B CN201810414094.5A CN201810414094A CN108681469B CN 108681469 B CN108681469 B CN 108681469B CN 201810414094 A CN201810414094 A CN 201810414094A CN 108681469 B CN108681469 B CN 108681469B
Authority
CN
China
Prior art keywords
capacity
page
pages
cache
preset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810414094.5A
Other languages
English (en)
Other versions
CN108681469A (zh
Inventor
张磊
张文明
陈少杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201810414094.5A priority Critical patent/CN108681469B/zh
Publication of CN108681469A publication Critical patent/CN108681469A/zh
Application granted granted Critical
Publication of CN108681469B publication Critical patent/CN108681469B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例公开了一种基于Android系统的页面缓存方法、装置、设备及存储介质。该方法包括:获取待缓存页面,并比较所述待缓存页面对应的第一页面数量与已缓存页面对应的第二页面数量;依据比较结果,按照预设容量调整规则,调整页面缓存池的缓存池容量;将所述待缓存页面缓存至所述页面缓存池。通过上述技术方案,实现了Android客户端根据待缓存页面的页面数量,动态调整Android系统内页面缓存池容量,从而提高了Android客户端中缓存空间的有效利用率,同时降低了系统的资源开销,提高了页面的显示速度,进而提升了用户体验。

Description

基于Android系统的页面缓存方法、装置、设备及存储介质
技术领域
本发明实施例涉及计算机技术,尤其涉及一种基于Android系统的页面缓存方法、装置、设备及存储介质。
背景技术
通常,为了加快搭载Android系统的客户端(简称Android客户端,例如智能手机)对于显示页面的加载速度,会在Android客户端内设置一个缓存空间,用于缓存从服务器或者本地存储空间中获取的页面,以便Android客户端在再次加载时直接从缓存空间中加载缓存的页面,而无需再次从服务器或者本地存储空间中获取。
现有的缓存空间设置中,通常是将缓存空间的页面缓存容量设置为一个固定值,比如将页面缓存容量设置为可缓存3个页面。此时,针对只有1个或2个页面需要缓存的情况,会有2个或1个页面缓存空间的闲置。而针对有3个以上页面需要缓存的情况,由于页面缓存容量不足,需要销毁已缓存页面,并重新缓存未缓存页面,如果超出页面缓存容量的页面过多,则需不断循环进行已缓存页面的销毁及未缓存页面的重新缓存,这无疑会增大系统内存的资源消耗。
也就是说,针对不同数量的待缓存页面,现有技术中将缓存空间中页面缓存容量设置为一个固定值的方式,无法兼顾缓存空间的有效利用和系统资源的适度开销。
发明内容
本发明实施例提供一种基于Android系统的页面缓存方法、装置、设备及存储介质,一定程度上实现兼顾高效利用缓存空间和降低系统资源消耗的目的。
第一方面,本发明实施例提供了一种基于Android系统的页面缓存方法,包括:
获取待缓存页面,并比较所述待缓存页面对应的第一页面数量与已缓存页面对应的第二页面数量;
依据比较结果,按照预设容量调整规则,调整页面缓存池的缓存池容量;
将所述待缓存页面缓存至所述页面缓存池。
第二方面,本发明实施例还提供了一种基于Android系统的页面缓存装置,该装置包括:
页面数量比较模块,用于获取待缓存页面,并比较所述待缓存页面对应的第一页面数量与已缓存页面对应的第二页面数量;
缓存池容量调整模块,用于依据比较结果,按照预设容量调整规则,调整页面缓存池的缓存池容量;
缓存模块,用于将所述待缓存页面缓存至所述页面缓存池。
第三方面,本发明实施例还提供了一种设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的基于Android系统的页面缓存方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的基于Android系统的页面缓存方法。
本发明实施例通过获取待缓存页面,并比较所述待缓存页面对应的第一页面数量与已缓存页面对应的第二页面数量;依据比较结果,按照预设容量调整规则,调整页面缓存池的缓存池容量;将所述待缓存页面缓存至所述页面缓存池。实现了Android客户端根据待缓存页面的页面数量,动态调整Android系统内页面缓存池容量,从而提高了Android客户端中缓存空间的有效利用率,同时降低了系统的资源开销,提高了页面的显示速度,进而提升了用户体验。
附图说明
图1是本发明实施例一中的基于Android系统的页面缓存方法的流程图;
图2是本发明实施例二中的基于Android系统的页面缓存方法的流程图;
图3是本发明实施例三中的基于Android系统的页面缓存方法的流程图;
图4是本发明实施例四中的基于Android系统的页面缓存装置的结构示意图;
图5是本发明实施例五中的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
本实施例提供的基于Android系统的页面缓存方法可适用于Android客户端中页面数量动态变化的情况。该方法可以由基于Android系统的页面缓存装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在安装有Android系统的设备中,例如典型的是用户终端设备,例如智能手机或平板电脑等。参见图1,本实施的方法具体包括如下步骤:
S110、获取待缓存页面,并比较待缓存页面对应的第一页面数量与已缓存页面对应的第二页面数量。
其中,待缓存页面是相对于当前已经缓存的页面而言,指即将缓存的页面,其数量根据Android客户端中安装的应用软件的运行状态动态变化,可以为一个,也可以为多个。比如应用软件运行至一个包含3个跳转标签(如标题栏)的页面,则需要将3个跳转标签对应的详情页面缓存,即待缓存页面为3个详情页面;如果应用软件又运行至一个包含10个跳转标签的页面,则需要将10个跳转标签对应的详情页面缓存,即待缓存页面由原先的3个详情页面变更为10个详情页面。需要说明的是,这里的详情页面可以是单独的详情展示页面,也可以是包含跳转标签在内的展示页面。已缓存页面与待缓存页面相对应,是指当前时刻为止,已经缓存过的页面,例如可以是当前缓存空间中已经缓存的所有页面。
具体地,根据Android客户端中安装的应用软件的运行进程或者应用软件的后台推送数据,获取待缓存页面,并由待缓存页面确定出待缓存页面的数量,即第一页面数量。同时,根据已经缓存的已缓存页面,确定出已缓存页面的数量,即第二页面数量。之后,比较第一页面数量和第二页面数量,确定出比较结果,以便后续可以根据该比较结果,确定出页面数量的增加或减少,并进一步对用于缓存页面的缓存空间进行动态变更。
S120、依据比较结果,按照预设容量调整规则,调整页面缓存池的缓存池容量。
其中,预设容量调整规则是指预先设定的,用于进行缓存容量调整的规则,例如可以是增大容量的容量调整规则,也可以是减小容量的容量调整规则,还可以是包含增大容量和减小容量的综合性的容量调整规则。页面缓存池是指Android系统内存中的一块缓冲区,其专门用于页面的缓存,可以对缓存的页面进行统一管理。这里设置页面缓存池的目的就是为了能够对缓存页面的缓存空间进行独立管理,以便更好地实现页面缓存容量的动态调整。缓存池容量是指缓存池空间大小。
具体地,根据第一页面数量和第二页面数量的比较结果,选择预设容量调整规则中相应的容量调整规则,对页面缓存池的缓存池容量进行相应调整。
示例性地,依据比较结果,按照预设容量调整规则,调整页面缓存池的缓存池容量包括:若第一页面数量大于第二页面数量,则按照预设容量扩充规则,增大缓存池容量;若第一页面数量小于第二页面数量,则按照预设容量缩减规则,减小缓存池容量。
其中,预设容量扩充规则是指预先设置的,能够增大容量的容量调整规则,其可以是根据待缓存页面的缓存容量需求(即页面需求容量)进行容量按需增大的预设容量按需扩充规则,也可以是根据可以整个缓存空间的使用情况进行容量动态增大的预设容量动态扩充规则。预设容量缩减规则是指预先设置的,能够减小容量的容量调整规则,其可以是根据待缓存页面的页面需求容量进行容量按需减小的预设容量按需缩减规则,也可以是根据可以整个页面缓存池的使用情况进行容量动态减小的预设容量动态缩减规则。
具体地,如果比较结果是第一页面数量大于第二页面数量,则说明第二页面数量对应的缓存池容量,即现有的缓存池容量,不足以缓存待缓存页面,需要增大缓存池容量,则选择预设容量调整规则中的预设容量扩充规则,增大缓存池容量。反之,如果比较结果是第一页面数量小于第二页面数量,则说明现有的缓存池容量较大,会造成缓存空间的浪费,需要减小缓存池容量,则选择预设容量调整规则中的预设容量缩减规则,减小缓存池容量。这样设置的好处在于,可以根据前后两次缓存页面的数量差异,确定出现有缓存池容量是否合适,以及在缓存池容量不合适时进行相应调整,从而可以避免缓存空间的浪费,也可以减少因频繁销毁页面而造成的系统资源消耗。
S130、将待缓存页面缓存至页面缓存池。
具体地,在对缓存池容量进行调整之后,则可以将待缓存页面缓存至调整后的页面缓存池中。待缓存页面的缓存方式可以是缓存当前即将显示的当前待显示页面,以及缓存已经显示过的已显示页面和/或可能需要显示的预测显示页面。应当理解,已显示页面中包含当前显示页面。
示例性地,将待缓存页面缓存至页面缓存池包括:按照预设缓存规则,将待缓存页面缓存至页面缓存池。其中,预设缓存规则是指预先设置的缓存页面时的缓存规则,例如可以是缓存当前待显示页面以及当前待显示页面之前的至少一个已显示页面。也就是说,本实施例中进行缓存时,是将已经显示过的已显示页面以及当前待显示页面缓存至页面缓存池,而不缓存预测显示页面。这样设置的好处在于,页面缓存池中不缓存预测显示页面,能够减少预测失误造成的系统资源消耗,从而在一定程度上进一步降低系统资源消耗。另外,在页面缓存池容量不足时,可以直接删除页面缓存池中除了当前显示页面之外的其他已缓存页面,而不需再判断页面缓存池中的缓存页面是否是预测显示页面,进而判断是否可以删除替换,也在一定程度上进一步降低了系统资源消耗。
示例性地,以上述技术方案为基础,在按照预设容量扩充规则,增大缓存池容量之后,本实施例的基于Android系统的页面缓存方法还包括:若缓存池容量小于待缓存页面对应的页面需求容量,则依据预设缓存页面删除规则,删除页面缓存池中预设页面数量的已缓存页面,并将未缓存页面缓存至页面缓存池。
其中,预设缓存页面删除规则是指预先设定的,从页面缓存池中删除缓存页面的规则,例如可以是近期最少使用的页面最先删除的规则,优选是最先缓存的页面最先删除的规则,这样设置是考虑到用户通常会返回浏览最近浏览过的页面,从而可以与用户的操作习惯保持更大的一致性,进而降低删除的页面被重新缓存的几率,进一步降低系统资源开销。预设页面数量是预先设置的页面数量值,其用于表征一次从页面缓存池中删除已缓存页面的数量,其可以是一个确定数值,也可以是根据未缓存页面的数量进行动态设置的数值。
具体地,页面缓存池设置在系统内存的缓存空间中,因此缓存池容量必然受限于缓存空间的容量。如果缓存空间的容量不足以提供更多的缓存池容量,那么就有可能出现调整后的缓存池容量仍然不足以缓存全部待缓存页面的情况,即缓存池容量小于待缓存页面对应的页面需求容量。此时,需要在页面缓存池内部进行页面驱逐,将预设页面数量的已缓存页面删除,而将未缓存的页面缓存至页面缓存池。
示例性地,在上述技术方案的基础上,本实施例中的基于Android系统的页面缓存方法还包括:若第一页面数量等于第二页面数量,且待缓存页面相对于已缓存页面有更新,则依据预设缓存页面删除规则,删除页面缓存池中与更新页面数量相应数量的已缓存页面,并将更新页面缓存至页面缓存池。
其中,更新页面数量是指更新的待缓存页面的数量。更新页面是指待缓存页面中相对于已缓存页面有变更的页面。
具体地,在第一页面数量不等于第二页面数量时,需要选择合适的容量调整规则,对页面缓存池的缓存池容量进行调整。而当第一页面数量等于第二页面数量时,则不需要进行缓存池容量的调整,而是需要对页面缓存池中具体的页面进行动态变更。首先是确定出待缓存页面中相对于已缓存页面的更新页面,并进一步根据更新页面确定出更新页面数量。然后,根据预设缓存页面删除规则,在页面缓存池中删除更新页面数量的已缓存页面,并将更新页面缓存至页面缓存池中。这样设置的好处在于,减少了系统销毁已缓存页面及重新缓存未缓存页面的执行次数,进一步降低了系统的资源开销。
示例性地,在将待缓存页面缓存至页面缓存池之后,本实施例中的基于Android系统的页面缓存方法还包括:若页面缓存池中包含当前待显示页面,则建立显示屏幕对应的显示存储地址与当前待显示页面在页面缓存池中的缓存存储地址之间的映射关系;依据映射关系,按照当前待显示页面及当前显示页面的显示设置,显示当前待显示页面。
其中,当前待显示页面是指当前还未显示,且即将要显示的页面。当前显示页面是指当前正在显示的页面。显示设置是指页面进行显示的显示形式设置,比如动画形式和透明度等。
具体地,Android客户端的显示屏幕在内存中映射有一个专设的存储空间,该存储空间的存储地址固定,即显示屏幕对应的显示存储地址在内存中是固定的。当Android系统需要显示一个页面,即当前待显示页面时,首先在页面缓存池中查找是否存在当前待显示页面,如果存在,那么系统会将显示存储地址与当前待显示页面在页面缓存池中的缓存存储地址进行对应,即建立显示存储地址与缓存存储地址之间的映射关系。之后,Android系统就可以根据该映射关系,以及当前待显示页面和当前显示页面的显示设置将当前待显示页面显示出来。
本实施例的技术方案,通过获取待缓存页面,并比较待缓存页面对应的第一页面数量与已缓存页面对应的第二页面数量;依据比较结果,按照预设容量调整规则,调整页面缓存池的缓存池容量;将待缓存页面缓存至页面缓存池。实现了Android客户端根据待缓存页面的页面数量,动态调整Android系统内页面缓存池的缓存池容量,从而提高了Android客户端中缓存空间的有效利用率,同时降低了系统的资源开销,提高了页面的显示速度,进而提升了用户体验。
实施例二
本实施例在上述实施例一的基础上,详细说明按需调整缓存池容量的方案,具体则是对“若第一页面数量大于第二页面数量,则按照预设容量扩充规则,增大缓存池容量”进行了进一步优化。在此基础上,还可以进一步对“若第一页面数量小于第二页面数量,则按照预设容量缩减规则,减小缓存池容量”进行优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。参见图2,本实施例提供的基于Android系统的页面缓存方法包括:
S210、获取待缓存页面,并比较待缓存页面对应的第一页面数量与已缓存页面对应的第二页面数量。
S220、若第一页面数量大于第二页面数量,则依据缓存空间的总容量及缓存空间的缓存类型,确定最大缓存池容量。
其中,缓存空间是指内存中专用于缓存的缓冲区,其内包含页面缓存池,可以缓存页面,也可以缓存其他业务数据,比如网络通讯的数据包或运算业务中的运算数据等。缓存类型是指缓存空间中的缓存内容所对应的类型,其可以根据缓存空间中主要缓存内容的类型来确定,比如主要缓存内容为页面,则缓存类型可以确定为页面类,主要缓存内容为运算业务逻辑,则缓存类型可以确定为运算类等。最大缓存池容量是指缓存空间中可以为缓存池开辟的最大容量。
具体地,在第一页面数量大于第二页面数量时,首先在系统内部获取缓存空间的总容量。之后,根据缓存空间中的主要缓存内容,确定缓存空间的缓存类型是否是页面类。如果缓存类型为页面类,那么说明缓存空间中主要缓存内容为页面,则可以为页面缓存池开辟较大的空间,可以将最大缓存池容量确定为总容量的第一设定百分比,该第一设定百分比为一个较大的数值,例如70%-90%之间的一个数值。如果缓存类型为运算类或网络通讯类等,则说明缓存空间中需要保留较多的缓存容量,用于处理其他业务逻辑,此时便不能为页面缓存池开辟较大的空间,将最大缓存池容量确定为总容量的第二设定百分比,该第二设定百分比为一个较小的数值,例如5%-20%之间的一个数值。之后执行S230。
S230、将待缓存页面对应的页面需求容量与最大缓存池容量中的较小值确定为缓存池容量。
其中,页面需求容量是指待缓存页面所需要的总缓存容量,其可以根据待缓存页面中每个页面对应的数据量大小来确定。具体来说,待缓存页面中每个页面所承载的页面数据不同,比如文字、图片和音视频中的至少一种数据,必然使得每个页面对应的数据量大小也会存在差异,那么页面需求容量则可以是待缓存页面中每个页面对应的数据量的总和。
具体地,页面缓存池设置于缓存空间中,在确定缓存池容量时,除了考虑待缓存页面对应的页面需求容量之外,还需要考虑缓存空间可为页面缓存池提供的容量,即最大缓存池容量。为了不影响整个系统的运行效率,本实施例中将页面需求容量和最大缓存池容量中的较小值确定为缓存池容量。也就是说,在最大缓存池容量大于页面需求容量时,说明缓存空间中可为页面缓存提供的容量充足,则可以直接将页面缓存池的缓存池容量确定为页面需求容量,以满足待缓存页面的缓存需求。而在最大缓存池容量小于页面需求容量时,说明缓存空间中可为页面缓存提供的容量有限,不足以满足待缓存页面的缓存需求,则将页面缓存池的缓存池容量确定为最大缓存池容量,避免影响其他业务逻辑的正常运行,同时,尽可能地为页面缓存提供较大缓存容量。
S240、若第一页面数量小于第二页面数量,且第一页面数量小于或等于预设页面数量阈值,则将缓存池容量调整为预设缓存池容量。
其中,预设页面数量阈值是指预先设定的页面数量的数值,通常是一个小于第二页面数量的数值,例如可以是2-4之间的一个数值,其其用于判定缓存池容量是否需要直接设定,而非根据缓存空间及待缓存页面的情况进行调整。预设缓存池容量是指预先设定的缓存池容量值,其可以是一个确定的数值,例如0-4之间的一个数值。
具体地,在第一页面数量小于第二页面数量时,再将第一页面数量与预设页面数量阈值比较。如果第一页面数量小于或等于预设页面数量阈值,则说明待缓存页面的数量较少,可以直接将缓存池容量调整为预设缓存池容量。示例性地,预设缓存池容量为0。也就是说,在待缓存页面的数量小于或等于预设页面数量阈值时,不设置缓存池,不对待缓存页面进行缓存,而是将待缓存页面直接存储于本地存储空间中。当需要显示待缓存页面,即获取当前待显示页面时,直接从本地存储空间中查找并加载当前待显示页面。这样使得内存中只有当前待显示页面,从而很大程度上降低对系统内存资源的开销。同时,因为待缓存页面数量较少,所以直接从本地存储空间中查找当前待显示页面的速度也比较快,从而保证了页面的加载速度,进一步提高了缓存空间的有效率用率。
S250、若第一页面数量小于第二页面数量,且第一页面数量大于预设页面数量阈值,则按照预设容量按需缩减规则,减小缓存池容量。
具体地,在第一页面数量小于第二页面数量,且第一页面数量大于预设页面数量阈值时,说明缓存池容量需要减小,且需要待缓存页面的页面需求容量减小,即按照预设容量按需缩减规则或预设容量动态缩减规则,减小缓存池容量。
示例性地,按照预设容量按需缩减规则,减小缓存池容量包括:确定第二页面数量与第一页面数量的差值;若差值大于或等于预设差值阈值,则将待缓存页面对应的页面需求容量确定为缓存池容量。
其中,预设差值阈值是指预先设定的一个差值,其用于判定缓存池容量是否需要调整。预设差值阈值可以根据实际应用过程中调整缓存池容量所引起的系统开销情况和缓存空间的有效利用情况进行设定。
具体地,在对缓存池容量按需减小之前,先计算第二页面数量和第一页面数量的差值,并在该差值大于或等于预设差值阈值时,将缓存池容量确定为页面需求容量。这样设置的原因在于,考虑到调整缓存池容量也需要一定的系统资源开销,那么可以在系统资源消耗和缓存空间有效利用之间寻求一个平衡点,从而提高系统的运行效率。
S260、将待缓存页面缓存至页面缓存池。
需要说明的是,本实施例中不限定S220、S240与S250的执行顺序,三个步骤可以按序执行,也可以倒序执行,还可以先执行S240,而后执行S220和S250,或者S250和S220。
本实施例的技术方案,通过在第一页面数量大于第二页面数量时,将最大缓存池容量和页面需求容量中的较小值确定为缓存池容量,实现了缓存池容量的按需扩充,能够使得待缓存页面一次全部缓存至页面缓存池,很大程度上降低了系统资源开销。通过在第一页面数量小于第二页面数量,且第一页面数量小于或等于预设页面数量阈值时,将缓存池容量调整为预设缓存池容量,进一步降低系统资源开销。通过在第一页面数量小于第二页面数量,且第一页面数量大于预设页面数量阈值时,按照预设容量按需缩减规则,减小缓存池容量,实现了缓存池容量的按需减小,提高了缓存空间的有效率用率。并且,上述对缓存池容量的按需调整,达到了对缓存池容量的一次性调整,使得缓存池容量的调整效率高,且缓存池容量调整所需的系统资源占用少。
实施例三
本实施例在上述实施例一的基础上,详细说明动态调整缓存池容量的方案,具体则是对“若第一页面数量大于第二页面数量,则按照预设容量扩充规则,增大缓存池容量”进行了进一步优化。在此基础上,还可以进一步对“若第一页面数量小于第二页面数量,则按照预设容量缩减规则,减小缓存池容量”进行优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。参见图3,本实施例提供的基于Android系统的页面缓存方法包括:
S310、获取待缓存页面,并比较待缓存页面对应的第一页面数量与已缓存页面对应的第二页面数量。
S320、若第一页面数量大于第二页面数量,则按照第一预设时间间隔,检测缓存空间的可用容量,获得连续第一设定数量的可用容量。
其中,第一预设时间间隔是预先设定的缓存空间容量检测周期,其可以根据实际应用中缓存池容量的调整频率经验设定。可用容量是指缓存空间中处于空闲状态的缓存空间容量。第一设定数量是指预先设定的表征数量的数值,其可以根据实际应用中缓存池容量的调整频率经验设定。
具体地,在第一页面数量大于第二页面数量时,以第一预设时间间隔为周期,对缓存空间的可用容量进行检测。每一次检测都可获得一个可用容量检测结果,那么连续进行第一设定数量的检测,就可获得连续第一设定数量的可用容量。比如,以30s为检测周期,连续进行3次检测,则可连续获得3个可用容量。之后,执行S330。
S330、若存在连续第二设定数量的可用容量均大于或等于预设可用容量阈值,则依据第二设定数量的可用容量,增大缓存池容量。
其中,第二设定数量是指预先设定的表征数量的数值,其可以根据实际应用中缓存池容量的调整频率经验设定。第二设定数量小于或等于第一设定数量。预设可用容量阈值是指预先设定的容量值,其用于判定是否可以进行缓存池容量的动态扩充。
具体地,在获得连续第一设定数量的可用容量之后,将每一个可用容量与预设可用容量阈值进行比较。如果连续第二设定数量的比较结果均为可用容量大于或等于预设可用容量阈值,那么根据连续第二设定数量的比较结果对应的连续第二设定数量的可用容量,确定缓存池容量的扩充量,以增大缓存池容量。
具体实施时,根据连续第二设定数量的可用容量,确定缓存池容量的扩充量可以为:对连续第二设定数量的可用容量取最小值,获得最小可用容量,并将最小可用容量的折半容量值确定为缓存池的扩充量。例如,上述连续3个可用容量中,有连续2个可用容量均大于预设可用容量阈值,那么可以将连续两个可用容量的较小值确定为最小可用容量,然后以最小可用容量除以2,获得缓存池的扩充量。之后,可以将该扩充量与当前的缓存池容量相加,增大缓存池容量。这样设置的好处在于,每次将较小的缓存空间可用容量的一半直接扩充为页面缓存池的缓存池容量,能够避免缓存空间容量的较大波动,从而在动态增大缓存池容量的同时,尽量减少对缓存空间正常运行的影响。
S340、若第一页面数量小于第二页面数量,则按照第二预设时间间隔,检测页面缓存池的空闲容量,获得连续第三设定数量的空闲容量。
其中,第二预设时间间隔是预先设定的页面缓存池容量检测周期,其可以根据实际应用中缓存池容量的调整频率经验设定。空闲容量是指页面缓存池中处于空闲状态的缓存空间容量。第三设定数量是指预先设定的表征数量的数值,其可以根据实际应用中缓存池容量的调整频率经验设定。
具体地,在第一页面数量小于第二页面数量时,以第二预设时间间隔为周期,对页面缓存池的空闲容量进行检测。每一次检测都可获得一个空闲容量检测结果,那么连续进行第三设定数量的检测,就可获得连续第三设定数量的空闲容量。比如,以30s为检测周期,连续进行3次检测,则可连续获得3个空闲容量。之后,执行S350。
S350、若存在连续第四设定数量的空闲容量均大于或等于预设空闲容量阈值,则依据第四设定数量的空闲容量,减小缓存池容量。
其中,第四设定数量是指预先设定的表征数量的数值,其可以根据实际应用中缓存池容量的调整频率经验设定。第四设定数量小于或等于第三设定数量。预设空闲容量阈值是指预先设定的容量值,其用于判定是否可以进行缓存池容量的动态缩减。
具体地,在获得连续第三设定数量的空闲容量之后,将每一个空闲容量与预设空闲容量阈值进行比较。如果连续第四设定数量的比较结果均为空闲容量大于或等于预设空闲容量阈值,那么根据连续第四设定数量的比较结果对应的连续第四设定数量的空闲容量,确定缓存池容量的缩减量,以减小缓存池容量。具体实施时,根据连续第四设定数量的空闲容量,确定缓存池容量的缩减量可以为:对连续第四设定数量的空闲容量取最小值,获得最小空闲容量,并将最小空闲容量的折半容量值确定为缓存池的缩减量。例如,上述连续3个空闲容量中,有连续2个空闲容量均大于预设空闲容量阈值,那么可以将连续两个空闲容量的较小值确定为最小空闲容量,然后以最小空闲容量除以2,获得缓存池的缩减量。之后,可以用当前的缓存池容量减去缩减量,减小缓存池容量。这样设置的好处在于,每次将较小的页面缓存池空闲容量的一半直接释放为缓存空间容量,能够避免缓存池容量的较大波动,从而在动态减小缓存池容量的同时,尽量减少对页面缓存池正常运行的影响。
S360、将待缓存页面缓存至页面缓存池。
需要说明的是,本实施例中不限定S320与S340的执行顺序。
本实施例的技术方案,通过在第一页面数量大于第二页面数量时,利用可用容量均大于或等于预设可用容量阈值的连续第二设定数量的可用容量,增大缓存池容量,实现了缓存池容量的动态扩充。通过在第一页面数量小于第二页面数量时,利用空闲容量均大于或等于预设空闲容量阈值的连续第四设定数量的空闲容量,减小缓存池容量,实现了缓存池容量的动态减小。上述对缓存池容量的动态调整,达到了对缓存池容量的实时调整,使得缓存池容量调整的时效性高,更大程度上提高了缓存空间的有效利用率。
以下是本发明实施例提供的基于Android系统的页面缓存装置的实施例,该装置与上述各实施例的基于Android系统的页面缓存方法属于同一个发明构思,在基于Android系统的页面缓存装置的实施例中未详尽描述的细节内容,可以参考上述基于Android系统的页面缓存方法的实施例。
实施例四
本实施例提供一种基于Android系统的页面缓存装置,参见图4,该装置具体包括:
页面数量比较模块410,用于获取待缓存页面,并比较待缓存页面对应的第一页面数量与已缓存页面对应的第二页面数量;
缓存池容量调整模块420,用于依据页面数量比较模块410得到的比较结果,按照预设容量调整规则,调整页面缓存池的缓存池容量;
缓存模块430,用于将页面数量比较模块410获取的待缓存页面缓存至页面缓存池。
可选地,缓存池容量调整模块420包括:
容量增大子模块,用于若第一页面数量大于第二页面数量,则按照预设容量扩充规则,增大缓存池容量;
容量减小子模块,用于若第一页面数量小于第二页面数量,则按照预设容量缩减规则,减小缓存池容量。
进一步地,容量增大子模块具体用于:
依据缓存空间的总容量及缓存空间的缓存类型,确定最大缓存池容量;
将待缓存页面对应的页面需求容量与最大缓存池容量中的较小值确定为缓存池容量。
可替代地,容量增大子模块具体用于:
按照第一预设时间间隔,检测缓存空间的可用容量,获得连续第一设定数量的可用容量;
若存在连续第二设定数量的可用容量均大于或等于预设可用容量阈值,则依据第二设定数量的可用容量,增大缓存池容量。
进一步地,容量减小子模块具体用于:
若第一页面数量小于或等于预设页面数量阈值,则将缓存池容量调整为预设缓存池容量;
若第一页面数量大于预设页面数量阈值,则按照预设容量按需缩减规则,减小缓存池容量。
其中,预设缓存池容量为0。
可替代地,容量减小子模块具体用于:
按照第二预设时间间隔,检测页面缓存池的空闲容量,获得连续第三设定数量的空闲容量;
若存在连续第四设定数量的空闲容量均大于或等于预设空闲容量阈值,则依据第四设定数量的空闲容量,减小缓存池容量。
可选地,缓存模块430具体用于:
按照预设缓存规则,将待缓存页面缓存至页面缓存池,其中,预设缓存规则包括缓存当前待显示页面以及当前待显示页面之前的至少一个已显示页面。
可选地,在上述装置的基础上,该装置还包括:
页面删除模块,用于在按照预设容量扩充规则,增大缓存池容量之后,若缓存池容量小于待缓存页面对应的页面需求容量,则依据预设缓存页面删除规则,删除页面缓存池中预设页面数量的已缓存页面,并将未缓存页面缓存至页面缓存池。
可选地,在上述装置的基础上,该装置还包括:
页面更新模块,用于若第一页面数量等于第二页面数量,且待缓存页面相对于已缓存页面有更新,则依据预设缓存页面删除规则,删除页面缓存池中与更新页面数量相应数量的已缓存页面,并将更新页面缓存至页面缓存池。
可选地,在上述装置的基础上,该装置还包括:
页面显示模块,用于在将待缓存页面缓存至页面缓存池之后,若页面缓存池中包含当前待显示页面,则建立显示屏幕对应的显示存储地址与当前待显示页面在页面缓存池中的缓存存储地址之间的映射关系;依据映射关系,按照当前待显示页面及当前显示页面的显示设置,显示当前待显示页面。
通过本发明实施例四的一种页面缓存装置,实现了Android客户端根据待缓存页面的页面数量,动态调整Android系统内页面缓存池容量,从而提高了Android客户端中缓存空间的有效利用率,同时降低了系统的资源开销,提高了页面的显示速度,进而提升了用户体验。
本发明实施例所提供的基于Android系统的页面缓存装置可执行本发明任意实施例所提供的基于Android系统的页面缓存方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述基于Android系统的页面缓存装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例五
参见图5,本实施例提供了一种设备500,其包括:一个或多个处理器520;存储装置510,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器520执行,使得一个或多个处理器520实现本发明实施例所提供的基于Android系统的页面缓存方法,包括:
获取待缓存页面,并比较待缓存页面对应的第一页面数量与已缓存页面对应的第二页面数量;
依据比较结果,按照预设容量调整规则,调整页面缓存池的缓存池容量;
将待缓存页面缓存至页面缓存池。
当然,本领域技术人员可以理解,处理器520还可以实现本发明任意实施例所提供的基于Android系统的页面缓存方法的技术方案。
图5显示的设备500仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,该设备500包括处理器520、存储装置510、输入装置530和输出装置540;设备中处理器520的数量可以是一个或多个,图5中以一个处理器520为例;设备中的处理器520、存储装置510、输入装置530和输出装置540可以通过总线或其他方式连接,图5中以通过总线550连接为例。
存储装置510作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于Android系统的页面缓存方法对应的程序指令/模块(例如,基于Android系统的页面缓存装置中的页面数量比较模块、缓存池容量调整模块和缓存模块)。
存储装置510可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置510可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置510可进一步包括相对于处理器520远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置530可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置540可包括显示屏等显示设备。
实施例六
本实施例提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种基于Android系统的页面缓存方法,该方法包括:
获取待缓存页面,并比较待缓存页面对应的第一页面数量与已缓存页面对应的第二页面数量;
依据比较结果,按照预设容量调整规则,调整页面缓存池的缓存池容量;
将待缓存页面缓存至页面缓存池。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本发明任意实施例所提供的基于Android系统的页面缓存方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所提供的基于Android系统的页面缓存方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (9)

1.一种基于Android系统的页面缓存方法,其特征在于,包括:
获取待缓存页面,并比较所述待缓存页面对应的第一页面数量与已缓存页面对应的第二页面数量;
依据比较结果,按照预设容量调整规则,调整页面缓存池的缓存池容量;
将所述待缓存页面缓存至所述页面缓存池;
所述依据比较结果,按照预设容量调整规则,调整页面缓存池的缓存池容量包括:
若所述第一页面数量大于所述第二页面数量,则按照预设容量扩充规则,增大所述缓存池容量;
若所述第一页面数量小于所述第二页面数量,则按照预设容量缩减规则,减小所述缓存池容量。
2.根据权利要求1所述的方法,其特征在于,所述按照预设容量扩充规则,增大所述缓存池容量包括:
依据缓存空间的总容量及所述缓存空间的缓存类型,确定最大缓存池容量;
将所述待缓存页面对应的页面需求容量与所述最大缓存池容量中的较小值确定为所述缓存池容量。
3.根据权利要求1所述的方法,其特征在于,所述按照预设容量扩充规则,增大所述缓存池容量包括:
按照第一预设时间间隔,检测缓存空间的可用容量,获得连续第一设定数量的所述可用容量;
若存在连续第二设定数量的所述可用容量均大于或等于预设可用容量阈值,则依据所述第二设定数量的所述可用容量,增大所述缓存池容量。
4.根据权利要求1所述的方法,其特征在于,所述按照预设容量缩减规则,减小所述缓存池容量包括:
若所述第一页面数量小于或等于预设页面数量阈值,则将所述缓存池容量调整为预设缓存池容量;
若所述第一页面数量大于所述预设页面数量阈值,则按照预设容量按需缩减规则,减小所述缓存池容量。
5.根据权利要求1所述的方法,其特征在于,所述按照预设容量缩减规则,减小所述缓存池容量包括:
按照第二预设时间间隔,检测所述页面缓存池的空闲容量,获得连续第三设定数量的所述空闲容量;
若存在连续第四设定数量的所述空闲容量均大于或等于预设空闲容量阈值,则依据所述第四设定数量的所述空闲容量,减小所述缓存池容量。
6.根据权利要求1所述的方法,其特征在于,所述将所述待缓存页面缓存至所述页面缓存池包括:
按照预设缓存规则,将所述待缓存页面缓存至所述页面缓存池,其中,所述预设缓存规则包括缓存当前待显示页面以及所述当前待显示页面之前的至少一个已显示页面。
7.一种基于Android系统的页面缓存装置,其特征在于,包括:
页面数量比较模块,用于获取待缓存页面,并比较所述待缓存页面对应的第一页面数量与已缓存页面对应的第二页面数量;
缓存池容量调整模块,用于依据比较结果,按照预设容量调整规则,调整页面缓存池的缓存池容量;
缓存模块,用于将所述待缓存页面缓存至所述页面缓存池;
所述缓存池容量调整模块包括:
容量增大子模块,用于若第一页面数量大于第二页面数量,则按照预设容量扩充规则,增大缓存池容量;
容量减小子模块,用于若第一页面数量小于第二页面数量,则按照预设容量缩减规则,减小缓存池容量。
8.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的基于Android系统的页面缓存方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一所述的基于Android系统的页面缓存方法。
CN201810414094.5A 2018-05-03 2018-05-03 基于Android系统的页面缓存方法、装置、设备及存储介质 Active CN108681469B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810414094.5A CN108681469B (zh) 2018-05-03 2018-05-03 基于Android系统的页面缓存方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810414094.5A CN108681469B (zh) 2018-05-03 2018-05-03 基于Android系统的页面缓存方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN108681469A CN108681469A (zh) 2018-10-19
CN108681469B true CN108681469B (zh) 2021-07-30

Family

ID=63801405

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810414094.5A Active CN108681469B (zh) 2018-05-03 2018-05-03 基于Android系统的页面缓存方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN108681469B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112131498A (zh) * 2020-09-23 2020-12-25 北京达佳互联信息技术有限公司 页面加载方法、装置、电子设备及存储介质
CN112737975B (zh) * 2020-12-25 2023-05-09 珠海西山居数字科技有限公司 缓冲区容量调整方法及装置
CN113342516A (zh) * 2021-05-13 2021-09-03 北京小米移动软件有限公司 数据的处理方法及装置、终端、存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246612A (zh) * 2012-02-13 2013-08-14 阿里巴巴集团控股有限公司 一种数据缓存的方法及装置
CN103761051A (zh) * 2013-12-17 2014-04-30 北京同有飞骥科技股份有限公司 一种基于持续数据多输入输出流并发写入性能优化方法
CN105677483A (zh) * 2015-12-31 2016-06-15 Tcl集团股份有限公司 一种数据缓存的方法及装置
CN106227679A (zh) * 2016-07-25 2016-12-14 北京邮电大学 一种数据缓存替换方法及装置
CN106557434A (zh) * 2016-10-28 2017-04-05 武汉斗鱼网络科技有限公司 一种界面缓存方法及系统
CN107291393A (zh) * 2017-06-23 2017-10-24 郑州云海信息技术有限公司 一种基于混合云存储的缓存方法及装置
CN107864173A (zh) * 2017-06-26 2018-03-30 平安普惠企业管理有限公司 终端页面缓存方法、系统及可读存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2842040B1 (en) * 2012-04-27 2017-06-07 Hewlett-Packard Enterprise Development LP Collaborative caching
US9703578B2 (en) * 2012-08-23 2017-07-11 Red Hat, Inc. Providing class loading for JAVA™ applications
CN106156230B (zh) * 2015-04-24 2019-11-08 阿里巴巴集团控股有限公司 一种生成内链的方法及装置
CN106294379A (zh) * 2015-05-18 2017-01-04 阿里巴巴集团控股有限公司 一种页面的加载方法、装置和系统
CN106886545B (zh) * 2016-06-08 2020-10-02 阿里巴巴集团控股有限公司 页面展示方法、页面资源的缓存方法及装置
CN107590191A (zh) * 2017-08-11 2018-01-16 郑州云海信息技术有限公司 一种hdfs海量小文件处理方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246612A (zh) * 2012-02-13 2013-08-14 阿里巴巴集团控股有限公司 一种数据缓存的方法及装置
CN103761051A (zh) * 2013-12-17 2014-04-30 北京同有飞骥科技股份有限公司 一种基于持续数据多输入输出流并发写入性能优化方法
CN105677483A (zh) * 2015-12-31 2016-06-15 Tcl集团股份有限公司 一种数据缓存的方法及装置
CN106227679A (zh) * 2016-07-25 2016-12-14 北京邮电大学 一种数据缓存替换方法及装置
CN106557434A (zh) * 2016-10-28 2017-04-05 武汉斗鱼网络科技有限公司 一种界面缓存方法及系统
CN107291393A (zh) * 2017-06-23 2017-10-24 郑州云海信息技术有限公司 一种基于混合云存储的缓存方法及装置
CN107864173A (zh) * 2017-06-26 2018-03-30 平安普惠企业管理有限公司 终端页面缓存方法、系统及可读存储介质

Also Published As

Publication number Publication date
CN108681469A (zh) 2018-10-19

Similar Documents

Publication Publication Date Title
US11531625B2 (en) Memory management method and apparatus
KR100690804B1 (ko) 휴대단말기의 메모리 정리 방법
CN111352861B (zh) 内存压缩方法、装置及电子设备
CN108681469B (zh) 基于Android系统的页面缓存方法、装置、设备及存储介质
KR101994021B1 (ko) 파일 조작 방법 및 장치
US9201810B2 (en) Memory page eviction priority in mobile computing devices
CN111159436B (zh) 一种推荐多媒体内容的方法、装置及计算设备
CN105512251B (zh) 一种页面缓存方法和装置
US9977598B2 (en) Electronic device and a method for managing memory space thereof
CN103294718A (zh) 网页缓存管理方法和装置
JP2011513844A (ja) キャッシュライン置換のためのシステムおよび方法
EP3149594B1 (en) Method and apparatus for cache access mode selection
CN109271253A (zh) 一种资源调配方法、装置及系统
CN110209447B (zh) 一种列表页数据显示方法以及列表页数据显示装置
CN115509953A (zh) 内存回收方法及其装置
CN115357389A (zh) 内存管理方法、装置及电子设备
CN116467235B (zh) 一种基于dma的数据处理方法、装置、电子设备及介质
CN112541140A (zh) 一种列表加载方法、终端设备、电子设备及存储介质
CN115587049A (zh) 内存回收方法、装置、电子设备及存储介质
US10664952B2 (en) Image processing method, and device, for performing coordinate conversion
CN113849311B (zh) 内存空间管理方法、装置、计算机设备和存储介质
KR20160018204A (ko) 전자 장치, 온 칩 메모리 장치 및 온 칩 메모리의 운영 방법
CN111078407B (zh) 内存管理的方法、装置、存储介质及电子设备
JP2018505489A (ja) システムオンチップにおける動的メモリ利用
CN111090633A (zh) 一种分布式文件系统的小文件聚合方法、装置及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant