内存中图集的管理方法、装置、终端及存储介质与流程

文档序号:18213370发布日期:2019-07-19 22:28阅读:237来源:国知局
内存中图集的管理方法、装置、终端及存储介质与流程

本申请涉及计算机技术领域,特别涉及一种内存中图集的管理方法、装置、终端及存储介质。



背景技术:

随着应用程序的功能越来越丰富,应用程序中的用户界面(userinterface,ui)越来越多,每个用户界面能够显示的图片也越来越多。通常,终端的硬盘中可以存储有应用程序的多个图集,每个图集可以包括多个图片,该多个图片可以用于显示在至少一个用户界面中。

相关技术中,终端在运行应用程序的过程中,接收到开启用户界面的指令时,可以将该用户界面所能够显示的图片所属的图集均从硬盘加载至内存中,以便在用户界面中显示图片。当终端接收到关闭用户界面的指令时,可以将该用户界面所能够显示的图片所属的图集均从内存中删除。

但是,若终端频繁接收到同一个用户界面的开启或关闭的指令,该用户界面所能够显示的图片所属的图集也会被频繁的加载至内存,该加载图集的时耗较高。



技术实现要素:

本申请提供了一种内存中图集的管理方法、装置、终端及存储介质,可以解决相关技术中加载图集的时耗较高。所述技术方案如下:

一方面,提供了一种内存中图集的管理方法,所述方法包括:

响应于关闭应用程序的第一用户界面的指令,取消显示所述第一用户界面;

从内存中已加载的图集中确定备选图集,所述备选图集所包括的图片均未显示在所述应用程序的任一用户界面中;

若所述内存中所述备选图集的个数大于个数阈值,删除至少一个所述备选图集,使所述内存中所述备选图集的个数不大于所述个数阈值。

另一方面,提供了一种内存中图集的管理装置,所述装置包括:

取消显示模块,用于响应于关闭应用程序的第一用户界面的指令,取消显示所述第一用户界面;

确定模块,用于从内存中已加载的图集中确定备选图集,所述备选图集所包括的图片均未显示在所述应用程序的任一用户界面中;

删除模块,用于若所述内存中所述备选图集的个数大于个数阈值,删除至少一个所述备选图集,使所述内存中所述备选图集的个数不大于所述个数阈值。

又一方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述方面所述的内存中图集的管理方法。

再一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方面所述的内存中图集的管理方法。

本申请提供的技术方案带来的有益效果至少可以包括:

本申请提供了一种内存中图集的管理方法、装置、终端及存储介质,终端可以在接收到关闭用户界面的指令时,仅在显示屏上取消显示用户界面,而不会将该用户界面中显示的图片所属的图集从内存中删除,即内存中可以加载有所包括的图片均未显示在任一用户界面的备选图集。因此,当终端再次接收到开启该用户界面的指令并显示该用户界面时,可以直接基于内存中已加载的备选图集直接在该用户界面中显示图片,从而减少了图集加载的次数,避免了加载图集的时耗,提高了开启用户界面的效率。并且,当备选图集的个数大于个数阈值时,终端可以删除至少一个备选图集,以避免内存空间占用较高影响该终端的正常使用。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种内存中图集的管理方法的应用场景的示意图;

图2是本发明实施例提供的一种内存中图集的管理方法的流程图;

图3是本发明实施例提供的另一种内存中图集的管理方法的流程图;

图4是本发明实施例提供的一种应用程序中各组件的关系示意图;

图5是本发明实施例提供的一种用户界面的示意图;

图6是本发明实施例提供的另一种用户界面的示意图;

图7是本发明实施例提供的又一种用户界面的示意图;

图8是本发明实施例提供的一种内存中图集的管理装置的结构示意图;

图9是本发明实施例提供的一种确定模块的结构示意图;

图10是本发明实施例提供的另一种内存中图集的管理装置的结构示意图;

图11是本发明实施例提供的一种终端的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

相关技术中,游戏类的应用程序所包括的用户界面较多,每个用户界面(也可以称为ui面板或者ui页面)所能够显示的图片也较多。目前,游戏类的应用程序一般采用unity(一种游戏引擎)开发而成。在采用unity开发游戏类应用程序时,可以将多个用于显示在用户界面中的图片(一般为二维的位图)打包在一个图集中,该图集的文件格式可以为压缩包格式,例如可以为资源簇(assetbundle)格式。并且,可以将每个用户界面的界面数据打包在一个界面压缩包中。每个用户界面的界面压缩包的依赖文件中记录有该用户界面所能够显示的图片所属图集的图集列表,该图集列表可以为一个预设体(prefab),该图集列表中记录有图集的标识,以及图集包括的每个图片的标识,因此每个用户界面的界面压缩包的加载依赖项包括该用户界面所能够显示的图片所属的图集。其中,用户界面所能够显示的图片可以属于一个图集,也可以属于多个不同的图集,也即是,每个用户界面可以引用一个或多个图集。

相应的,终端在运行应用程序的过程中,在加载某个用户界面之前,需要先加载该用户界面所能够显示的图片所属的图集,即将该用户界面所引用的图集从硬盘加载至内存。终端在关闭用户界面时,即会将该用户界面所引用的图集从内存中删除,即卸载该图集。因此,若终端频繁接收到同一个用户界面的加载或关闭的指令,该用户界面所引用的图集也会被频繁的加载或卸载,导致加载图集的时耗较高,占用终端处理器的处理资源较多。

本发明实施例提供的内存中图集的管理方法,终端在接收到关闭用户界面的指令时,可以仅在显示屏上取消显示该用户界面,而不会将该用户界面中显示的图片所属的图集从内存中删除。因此,当终端再次接收到开启该用户界面的指令并显示该用户界面时,可以直接基于内存中已加载的图集直接在该用户界面中显示图片,从而减少了图集加载的次数,避免了加载图集的时耗,提高了开启用户界面的效率。

并且,当内存中备选图集的个数大于个数阈值时,终端可以删除至少一个备选图集,从而能够避免备选图集占用过多内存空间而影响该终端的正常使用。

请参考图1,其示出了本发明实施例提供的内存中图集的管理方法的应用场景的示意图。该内存中图集的管理方法可以应用于终端00中。参考图1,该终端00可以为智能手机,或者,该终端00也可以为计算机、平板电脑、可穿戴设备或者车载设备等,本发明实施例对该终端00的类型不做限定。

在本发明实施例中,终端00中可以安装有应用程序01,该应用程序01能够提供多个用户界面。终端00的硬盘中可以存储有该应用程序01的多个用户界面的界面数据,以及多个图集,每个图集可以包括多个图片,该多个图片可以用于显示在应用程序01的至少一个用户界面中。其中,每个用户界面的界面数据以及每个图集均能够以压缩包的文件格式存储,例如可以以assetbundle的文件格式存储。终端在显示应用程序01的某个用户界面时,可以将该用户界面的界面数据,以及该用户界面当前所需显示的图片所属的图集均加载至内存,从而显示该用户界面并在该用户界面显示图片。

可选的,该应用程序01可以为游戏类应用程序,或者也可以为即时通讯类、购物类或者多媒体类等其他类型的应用程序。

请参考图2,其示出了本发明一个实施例提供的内存中图集的管理方法的流程图。本实施例以该内存中图集的管理方法应用于图1所示的终端00来举例说明。参考图2,该方法可以包括:

步骤101、响应于关闭应用程序的第一用户界面的指令,取消显示该第一用户界面。

在本发明实施例中,终端在接收到关闭第一用户界面的指令时,可以只将该第一用户界面从终端的显示屏上取消显示,而不将该第一用户界面中显示的图片所属的图集从内存中删除。即该第一用户界面取消显示之前所显示的图片所属的图集,在第一用户界面取消显示之后可以继续保留在内存中,由此使得终端再次接收到开启该第一用户界面的指令并显示该第一用户界面时,可以基于该内存中已加载的图集直接在该第一用户界面上显示图片,从而减少了图集加载的次数,避免了加载图集的时耗,提高了开启用户界面的效率。其中,第一用户界面可以为应用程序中的任一用户界面。

可选的,在本发明实施例中,终端将第一用户界面从终端的显示屏上取消显示后,还可以将该第一用户界面的界面数据保留在内存中,以便在再次接收到开启该第一用户界面的指令时,可以基于该内存中已加载的界面数据,直接显示该第一用户界面。

步骤102、从内存中已加载的图集中确定备选图集,该备选图集所包括的图片均未显示在该应用程序的任一用户界面中。

在本发明实施例中,由于终端在关闭用户界面后,并不会将该用户界面中显示的图片所属的图集从内存中删除,因此内存中已加载的图集中,部分图集所包括的图片可以显示在某个用户界面中,另一部分图集所包括的图片均未显示在任一用户界面中,终端可以将所包括的图片均未显示在任一用户界面中的图集确定为备选图集。

示例的,假设内存中已加载的图集中,第一图集所包括的图片只能够显示在第一用户界面中,则终端基于该第一用户界面的关闭指令关闭该第一用户界面后,可以确定该第一图集所包括的图片均未显示在应用程序的任一用户界面中,进而即可将该第一图集确定为备选图集。

步骤103、若内存中备选图集的个数大于个数阈值,删除至少一个备选图集,使该内存中备选图集的个数不大于该个数阈值。

在本发明实施例中,终端可以在应用程序运行的过程中,实时统计内存中备选图集的个数,并检测备选图集的个数是否大于个数阈值。当检测到内存中备选图集的个数大于个数阈值时,终端可以删除至少一个备选图集,使该内存中备选图集的个数不大于该个数阈值。

其中,该个数阈值可以是由应用程序的开发人员预先配置的,例如,该个数阈值可以记录在应用程序的安装包中。并且,开发人员可以针对不同的应用程序的特点,灵活调整该个数阈值。

示例的,假设该个数阈值为2,若终端检测到当前内存中备选图集的个数为1,则无需删除备选图集。若终端检测到内存中备选图集的个数为3,则可以删除一个备选图集,使得内存中备选图集的个数保持为2,避免图集占用的内存空间较大。

由于备选图集中的图片未显示在任一用户界面中,因此将这些备选图集中的一个或多个删除并不影响当前在终端的显示屏上显示的用户界面。并且,删除至少一个备选图集,使该内存中备选图集的个数不大于该个数阈值,可以降低内存中加载的图集的数量,避免图集占用的内存空间较大。当备选图集的个数不大于该个数阈值时,可以将备选图集保留在内存中,从而可以在不影响终端正常显示的前提下,减少再次开启用户界面的时耗,以及降低占用的处理器的处理资源。

可选的,终端在检测到内存中备选图集的个数大于个数阈值时,可以采用缓存淘汰算法删除至少一个备选图集。该缓存淘汰算法可以包括:最近最少使用算法(leastrecentlyused,lru)、最不经常使用算法(leastfrequentlyused,lfu)、自适应缓存替换算法(adaptivereplacementcache,arc)、先进先出算法(first-infirst-out,fifo)或最近最常使用算法(mostrecentlyused,mru)等。

综上所述,本发明实施例提供了一种内存中图集的管理方法,终端可以在接收到关闭用户界面的指令时,仅在显示屏上取消显示用户界面,而不会将该用户界面中显示的图片所属的图集从内存中删除,即内存中可以加载有所包括的图片均未显示在任一用户界面的备选图集。因此,当终端再次接收到开启该用户界面的指令并显示该用户界面时,可以直接基于内存中已加载的备选图集直接在该用户界面中显示图片,从而减少了图集加载的次数,避免了加载图集的时耗,提高了开启用户界面的效率。并且,当备选图集的个数大于个数阈值时,终端可以删除至少一个备选图集,以避免内存空间占用较高影响该终端的正常使用。

图3是本发明实施例提供的另一种内存中图集的管理方法的流程图。本实施例以该内存中图集的管理方法应用于图1所示的终端00来举例说明。参考图3可以看出,该方法可以包括:

步骤201、响应于在第二用户界面中显示目标图片的指令,根据该目标图片的图片组件中记录的图集的标识,确定该目标图片所属的图集。

在本发明实施例中,应用程序中的每个图片对应有一个图片组件,图片组件可以用于将其对应的图片显示在用户界面中。并且,每个图片组件中可以记录有该图片组件对应的图片所属的图集的标识。因此终端接收到在第二用户界面中显示目标图片的指令后,可以获取该目标图片对应的图片组件中记录的图集的标识,并将该标识指示的图集确定为该目标图片所属的图集。其中,图集的标识可以以字符串的形式记录,且图集的标识可以为图集的名称或者编号等。

可选的,目标图片可以是指终端在接收到开启第二用户界面的指令,并显示第二用户界面后,该第二用户界面初始所需显示的图片。相应的,在第二用户界面中显示目标图片的指令即可以为该开启第二用户界面的指令。

或者,当该第二用户界面为能够滚动显示的界面时,该目标图片可以不是该第二用户界面初始所需显示的图片,而是终端基于接收到的滚动第二用户界面的指令,滚动该第二用户界面后,在滚动后的界面中显示的图片。相应的,在用户界面中显示目标图片的指令即为由该滚动操作触发的指令。

又或者,当第二用户界面中的图片被另一个用户界面遮挡时,若终端基于接收到的关闭该另一个用户界面的指令,取消显示该另一个用户界面后,则该第二用户界面中被该另一个用户界面遮挡的图片可以重新显示。此时,目标图片可以是指终端关闭该另一个用户界面后,重新显示在第二用户界面中的图片。相应的,在第二用户界面中显示目标图片的指令即为关闭该另一个用户界面的指令。

示例的,假设终端接收到在第二用户界面中显示第一图片的指令,且终端获取到的该第一图片对应的图片组件中记录的图集的标识为:图集1,则终端可以将该图集1指示的图集确定为第一图片所属的图集。

在本发明实施例中,每个用户界面的界面数据中可以包括该用户界面所能够显示的每个图片对应的图片组件。终端在用户界面中显示图片时,为了能够确定该图片所属的图集,可以在应用程序的开发过程中,在图片组件中记录该图片组件对应的图片所属的图集的标识。

图4是本发明实施例提供的一种应用程序中各组件的关系示意图。参考图4,用户界面10与图片组件20的关系满足关系(1):用户界面10所能够显示的各个图片对应的图片组件20均记录在用户界面10的界面数据中。图片组件20与图片30的关系满足关系(2):图片组件20用于将图片30显示在用户界面。图片30和图集列表40的关系满足关系(3):该图片30的标识记录在其所属图集的图集列表40中,图片30的标识可以为图片的名称。图集列表40和图集50的关系满足关系(4):图集列表40和该图集列表40中记录的图片标识所指示的图片30可以打包在图集50中。用户界面10与图集列表40的关系满足关系(5):两者解耦,即用户界面10的依赖文件中未记载该用户界面10所能够显示的图片所属图集的图集列表40。图片组件20与图集列表40之间的关系满足关系(6):每个图片组件20中可以记录有对应的一个图片所属的图集的标识,该图集的标识记录在图集列表40中。图片组件20与图集50之间的关系满足关系(7):每个图片组件20中可以记录有对应的一个图片所属的图集的标识。

在本发明实施例中,开发人员在开发应用程序的过程中,可以先生成压缩包格式的图集。该生成图集的过程可以包括:确定每个图集50包括的图片30,并将每个图集50包括的图片30的标识,以及该图集50的标识记录在该图集50的图集列表40中。表1是本发明实施例提供的一种图集列表,参考表1,图集的标识为atlas_chat,该图集中包括34个图片,其中第一个图片(即element0)的标识为common_bagbaitou1,最后一个图片(即element33)的标识为main_liaotiandi。由此一来,当需要在用户界面10中显示某个图集50中的图片30时,终端即可根据该图集50的标识和图片30的标识,从内存中确定所需显示的图片30,并将该图片30显示在用户界面10中。

进一步的,可以将每个图集50的图集列表40以及该图集列表40中记录的图片标识所指示的图片30打包,得到压缩包格式(例如assetbundle格式)的图集50。

表1

开发人员在开发过程中还可以删除应用程序中每个用户界面10的依赖文件中的相关代码,以解除每个用户界面10的界面压缩包对图集列表40的依赖,也即是将该用户界面10与图集列表40解耦,从而可以使得在加载用户界面10时,无需预先加载该用户界面10所能够显示的所有图片30所属的图集50,避免占用过多的内存。在从内存中删除图集50时,可以无需删除引用该图集50的用户界面10的界面数据,从而确保再次开启该用户界面时,可以基于内存中已加载的界面数据,直接显示用户界面。

在生成用户界面的界面压缩包时,可以使每个图片30对应的图片组件20继承传统的图片组件(image组件)的功能,并且,开发人员可以在每个图片组件20的代码中创建一个用于记录图集50的标识的字段,获取该图片组件20对应的图片30所属的图集50的标识,并将该图集50的标识写入该字段。由此,终端通过图片组件20在用户界面10中显示图片30时,即可根据该图片组件20中记录的标识,确定该图片30所属的图集50。

步骤202、检测该目标图片所属的图集是否已经加载在内存中。

在本发明实施例中,终端确定目标图片所属的图集后,可以先检测该目标图片所属的图集是否已加载在内存中。若目标图片所属的图集已经加载在内存中,则可以执行步骤203;若目标图片所属的图集未加载在内存中,则可以执行步骤204。

步骤203、基于已加载的图集在该第二用户界面中显示目标图片。

若该目标图片所属的图集已经加载在内存中,则终端可以基于已加载的图集(例如备选图集)直接在该第二用户界面中显示目标图片,从而可以提高在第二用户界面中显示目标图片的效率,改善用户体验。

步骤204、将该目标图片所属的图集从硬盘加载至内存,以在第二用户界面中显示该目标图片。

若该目标图片所属的图集未加载在内存中,则终端可以将该目标图片所属的图集从硬盘加载至内存,以在第二用户界面中显示该目标图片。

可选的,终端启动应用程序时,可以将该应用程序中内存占用较大或用户使用较频繁的部分用户界面的界面数据预先从硬盘加载至内存,使得终端在接收到这些用户界面中某个用户界面的开启指令时,只需加载该用户界面中当前所需显示的图片所属的图集,无需加载该用户界面的界面数据,减少加载时耗,用户体验较好。

当终端接收到某个用户界面的开启指令时,若该用户界面的界面数据还未被加载至内存中,则终端可以将该用户界面的界面数据以及该用户界面中当前所需显示的图片所属的图集加载至内存中,以在该用户界面中显示该目标图片。

示例的,假设终端检测到目标图片所属的标识为图集1的图集未加载在内存中,则可以将该标识为图集1的图集从硬盘加载在内存,从而可以在用户界面中显示该目标图片。

步骤205、响应于关闭应用程序的第一用户界面的指令,取消显示该第一用户界面。

在本发明实施例中,该第一用户界面取消显示之前所显示的图片所属的图集,在第一用户界面取消显示之后可以继续保留在内存中,由此使得终端再次接收到开启该第一用户界面的指令并显示该第一用户界面时,可以基于该内存中已加载的图集直接在该第一用户界面上显示图片,从而减少了图集加载的次数,避免了加载图集的时耗,提高了开启该第一用户界面的效率。其中,该第一用户界面可以与第二用户界面为同一个用户界面。

步骤206、统计内存中已加载的图集中每个图集的引用次数。

在本发明实施例中,每个图集的引用次数可以是指显示在应用程序的用户界面的图片中,属于该图集的图片的个数。其中,每个图集的引用次数的初始值均为零,终端可以在应用程序运行后,基于接收到的在用户界面中显示图片或者取消显示图片的指令,实时统计并记录内存中每个图集的引用次数。

对于内存中已加载的图集中每个图集,终端可以响应于在任一用户界面中显示该图集包括的图片的指令,将该图集的引用次数增加一次。并且,终端可以响应于在任一用户界面中取消显示该图集包括的图片的指令,将该图集的引用次数减少一次。也即是,对于每个图集,该图集中的每个图片在任一用户界面中显示一次,即可将该图集的引用次数增加一次。该图集中的每个图片在任一用户界面中取消显示一次,即可将该图集的引用次数减少一次。

例如,终端接收到在第二用户界面中显示目标图片的指令,并显示该目标图片后,可以将该目标图片所属的图集的引用次数增加一次。终端接收到在第二用户界面中取消显示目标图片的指令,并取消显示该目标图片后,可以将该目标图片所属的图集的引用次数减少一次。

根据上述分析可知,引用次数越多的图集,说明该图集中所包括的图片中,有越多的图片显示在用户界面中。引用次数为零的图集,说明该图集中所包括的所有图片均未显示在用户界面中。

示例的,假设某个图集中包括10个图片,若终端接收到在一个用户界面中显示该10个图片中第一个图片的指令,则终端可以将该第一个图片显示在该用户界面中,并可以将该图集的引用次数增加1次。若终端又接收到在该用户界面中显示该10个图片中第二个图片的指令,则终端可以将该第二个图片显示在该用户界面中,并可以将该图集的引用次数再增加1次。若终端又接收到在另一个用户界面中显示该10个图片中第一个图片的指令,则终端可以将该第一个图片显示在另一个用户界面中,并可以将该图集的引用次数再增加1次。若终端又接收到在另一个用户界面中取消显示该10个图片中第一个图片的指令,则终端可以将该第一个图片从另一个用户界面中取消显示,并可以将该图集的引用次数减少1次。

需要说明的是,由于终端可以在接收到关闭用户界面的指令时,取消显示该用户界面所显示的图片,因此在用户界面中取消显示目标图片的指令可以为关闭该用户界面的指令。或者,当用户界面为能够滚动显示的界面时,终端可以在接收到滚动用户界面的指令,并滚动该用户界面后,取消显示部分图片,因此在用户界面中取消显示目标图片的指令可以为滚动该用户界面的指令。又或者,由于当终端接收到开启另一个用户界面的指令并显示该另一个用户界面时,可能会遮挡该之前显示的用户界面,导致取消显示该用户界面中的部分图片,因此在用户界面中取消显示目标图片的指令还可以为开启另一个用户界面的指令。

还需要说明的是,终端可以根据图集中所包括的图片对应的图片组件是否被启动以确定该图片是否显示在用户界面中,进而更新该图片所属的图集的引用次数。例如,当终端启动某个图片对应的图片组件时,可以确定该图片组件对应的图片显示在用户界面中,因此可以将该图片所属的图集的引用次数增加一次。当终端关闭某个图片对应的图片组件时,则可以确定该图片组件对应的图片未显示在用户界面中,因此可以将该图片所属的图集的引用次数减少一次。

步骤207、将内存中已加载的图集中引用次数为零的图集确定为备选图集。

终端在实时统计内存中已加载的每个图集的引用次数的过程中,可以将引用次数为零的图集确定为备选图集。也即是可以将所包括的图片均未显示在用户界面中的图集确定为备选图集。

步骤208、采用最近最少使用算法,在缓存列表中按序记录引用次数为零的备选图集的标识。

在本发明实施例中,终端还可以在其内存中维护一个缓存列表,终端确定出引用次数为零的备选图集后,可以将该备选图集的标识记录在该缓存列表中。并且,终端可以采用lru算法,在缓存列表中按序记录引用次数为零的备选图集的标识。也即是,对于终端最近确定出的备选图集,终端可以将该备选图集的标识记录在缓存列表的首位。

可选的,终端接收到开启应用程序的指令时,可以先将缓存列表初始化为空表,即该缓存列表中不含有任何元素,此时备选图集占用的内存空间为0m(兆)。

图5是本发明实施例提供的一种用户界面的示意图。假设该用户界面为游戏类应用程序的背包界面,该背包界面中所能够显示的图片均属于标识为图集1的图集。若终端接收到开启该背包界面的指令,并在该背包界面中显示如图5所示的m(m为大于1的整数)个图片后,则可以将该标识为图集1的图集的引用次数增加m次。此时,由于标识为图集1的图集的引用次数不为零,因此缓存列表仍为空表。

进一步的,若终端接收到关闭该背包界面的指令,并取消显示该背包界面后,由于该背包界面之前显示的m个图片均被取消显示,因此终端可以将该标识为图集1的图集的引用次数减少m次。此时,标识为图集1的图集的引用次数为0次,终端可以将该标识为图集1的图集确定为备选图集,并可以将该图集的标识记录在缓存列表中。此时,缓存列表可以更新为{图集1},该缓存列表中含有一个元素。假设应用程序的每个图集占用的内存空间为1m,则此时内存中的备选图集占用的内存空间为1m。

图6是本发明实施例提供的另一种用户界面的示意图。假设该用户界面为游戏类应用程序的设置界面,该设置界面中所能够显示的图片均属于标识为图集2的图集。若终端接收到开启该设置界面的指令,并在该设置界面中显示如图6所示的n(n为大于1的整数)个图片后,则可以将该标识为图集2的图集的引用次数增加n次。此时,由于标识为图集2的图集的引用次数不为零,不能将该图集的标识记录在缓存列表中,因此缓存列表仍为{图集1},内存中备选图集占用的内存空间仍为1m。

进一步的,若终端接收到关闭该设置图集的指令,并取消显示该设置界面后,由于该设置界面之前显示的n个图片均被取消显示,因此终端可以将该标识为图集2的图集的引用次数减少n次。此时,标识为图集2的图集的引用次数为0次,终端可以将该标识为图集2的图集确定为备选图集,并可以将该图集的标识记录在缓存列表的首位。此时,缓存列表可以更新为{图集2,图集1},该缓存列表中含有两个元素,内存中备选图集占用的内存空间为2m。

若终端再次接收开启背包界面的指令,显示该背包界面,并在该背包界面中显示如图5所示的m个图片,由于此时标识为图集1的图集的引用次数可以增加至m次,该图集的引用次数大于零。因此,终端可以将缓存列表中该图集的标识删除,缓存列表可以更新为{图集2},该缓存列表中含有一个元素,备选图集占用的内存空间为1m。并且,由于终端再次接收到开启该背包界面的指令时,该标识为图集1的图集作为备选图集仍加载在内存中,因此终端在该背包界面中显示该m个图片时,无需重新加载该图集,减少再次开启背包界面的时耗。

若终端再次接收到关闭该背包界面的指令,并取消显示该背包界面,则可以将标识:图集1重新记录在缓存列表中,且将该标识:图集1记录在缓存列表的首位,此时缓存列表可以更新为{图集1,图集2},该缓存列表中含有两个元素,备选图集占用的内存空间为2m。

步骤209、检测内存中备选图集的个数是否大于个数阈值。

在本发明实施例中,终端可以在应用程序运行的过程中,实时统计内存中备选图集的个数,并检测备选图集的个数是否大于个数阈值。例如,终端可以实时检测缓存列表中记录的标识的个数(即缓存列表中包括的元素的个数),并将该个数作为内存中备选图集的个数。

若内存中备选图集的个数不大于个数阈值,则终端无需执行删除备选图集的操作,并可以继续统计内存中备选图集的个数,即可以继续执行步骤206;若内存中备选图集的个数大于个数阈值,则可以执行步骤210。

步骤210、删除缓存列表中位于末位的至少一个标识所指示的备选图集。

当终端检测到内存中备选图集的个数大于个数阈值时,终端可以删除缓存列表中位于末位的至少一个标识所指示的备选图集,使该内存中备选图集的个数不大于该个数阈值。相应的,终端可以将删除的备选图集的标识从缓存列表中删除。

由于用户在使用应用程序时,通常会在短时间内对几个常用的用户界面进行频繁访问,即终端可能会频繁接收到同一个用户界面的开启或关闭指令。因此在本发明实施例中,采用lru算法在缓存列表中按序记录备选图集的标识,可以确保最新确定出的备选图集能够位于缓存列表的首位,即用户最近关闭的用户界面所引用的图集的标识可以位于缓存列表的首位。相应的,在删除位于缓存列表末位的至少一个标识指示的备选图集时,可以确保用户最近开启过的用户界面所引用的图集不会被删除,即可以保留在内存中。当用户再次开启该用户界面时,可以直接基于内存中已加载的图集直接在该用户界面中显示图片。

由此可以避免频繁加载或删除用户经常访问的用户界面所引用的图集(即高热度图集),减少开启用户界面的时耗,提高图集的命中率。

示例的,假设个数阈值为2,即缓存列表的容量为2。图7是本发明实施例提供的又一种用户界面的示意图。假设该用户界面为游戏类应用程序的地图界面,该地图界面中所能够显示的图片均属于标识为图集3的图集。若终端接收到开启该地图界面的指令,并在该地图界面中显示如图7所示的h(h为大于1的整数)个图片后,则可以将该标识为图集3的图集的引用次数增加h次。此时,由于标识为图集3的图集的引用次数不为零,不能该图集的标识记录在缓存列表中,因此缓存列表仍为{图集1,图集2},内存中备选图集占用的内存空间仍为2m。

进一步的,若终端接收到关闭该地图图集的指令,并取消显示该地图界面后,由于该地图界面之前显示的h个图片均被取消显示,因此终端可以将该标识为图集3的图集的引用次数减少h次。此时,标识为图集3的图集的引用次数为0次,终端可以将该标识为图集3的图集确定为备选图集。由于此时备选图集的个数为3,超过了设定的个数阈值2,因此终端可以先将该缓存列表中位于末位的标识图集2删除,然后再将该图集的标识图集3记录在该缓存列表的首位。此时缓存列表可以更新为{图集3,图集1},该缓存列表中仍含有两个元素,内存中备选图集占用的内存空间为2m。

需要说明的是,终端在删除该缓存列表中位于末位的标识图集2的同时,可以将该标识图集2所指示的设置图集也从内存中删除,从而避免备选图集占用过多的内存空间。因此,若终端再次接收到开启设置界面的指令时,需要重新将该设置界面显示的目标图片所属的图集从硬盘加载至内存中。

需要说明的是,本发明实施例提供的方法的步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。例如步骤205可以在步骤203或步骤204之前执行,步骤206至步骤208也可以在步骤203或步骤204之前执行,步骤209和步骤210也可以在步骤208之前执行。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。

综上所述,本发明实施例提供了一种内存中图集的管理方法,终端可以在接收到关闭用户界面的指令时,仅在显示屏上取消显示用户界面,而不会将该用户界面中显示的图片所属的图集从内存中删除,即内存中可以加载有所包括的图片均未显示在任一用户界面的备选图集。因此,当终端再次接收到开启该用户界面的指令并显示该用户界面时,可以直接基于内存中已加载的备选图集直接在该用户界面中显示图片,从而减少了图集加载的次数,避免了加载图集的时耗,提高了开启用户界面的效率。并且,当备选图集的个数大于个数阈值时,终端可以删除至少一个备选图集,以避免内存空间占用较高影响该终端的正常使用。

图8是本发明实施例提供的一种内存中图集的管理装置,参考图8可以看出,该装置可以包括:

取消显示模块401,该取消显示模块401可以用于响应于关闭应用程序的第一用户界面的指令,取消显示该第一用户界面。

确定模块402,该确定模块402可以用于从内存中已加载的图集中确定备选图集,该备选图集所包括的图片均未显示在该应用程序的任一用户界面中。

删除模块403,该删除模块403可以用于若该内存中该备选图集的个数大于个数阈值,删除至少一个该备选图集,使该内存中该备选图集的个数不大于该个数阈值。

图9是本发明实施例提供的一种确定模块的结构示意图。参考图9,该确定模块402,可以包括:

统计子模块4021,该统计子模块4021可以用于统计内存中已加载的图集中每个图集的引用次数,该引用次数可以是指显示在应用程序的用户界面的图片中,属于该图集的图片的个数。

确定子模块4022,该确定子模块4022可以用于将该内存中已加载的图集中,引用次数为零的图集确定为备选图集。

可选的,该统计子模块4021,可以用于:

对于内存中已加载的图集中每个图集,响应于在任一用户界面中显示该图集包括的图片的指令,将该图集的引用次数增加一次。

对于内存中已加载的图集中每个图集,响应于在任一用户界面中取消显示该图集包括的图片的指令,将该图集的引用次数减少一次。

其中,每个该图集的引用次数的初始值为零。

图10是本发明实施例提供的另一种内存中图集的管理装置的结构示意图。参考图10,该装置还可以包括:

加载模块404,响应于在第二用户界面中显示目标图片的指令,若该目标图片所属的图集未加载在内存中,则将该目标图片所属的图集从硬盘加载至该内存,以在该用户界面中显示该目标图片。

可选的,该加载模块404还可以用于:在将该目标图片所属的图集从硬盘加载至该内存之前,根据该目标图片的图片组件中记录的图集的标识,确定该目标图片所属的图集;

其中,该图片组件用于将该目标图片显示在用户界面中。

可选的,删除模块403,可以用于:采用缓存淘汰算法,删除至少一个备选图集。该缓存淘汰算法可以为最近最少使用算法。

可选的,如图10所示,该装置还可以包括:

记录模块405,用于采用最近最少使用算法,在缓存列表中按序记录确定出的备选图集的标识。

删除模块403,还可以用于删除缓存列表中位于末位的至少一个标识所指示的备选图集。

综上所述,本发明实施例提供了一种内存中图集的管理装置,该装置在接收到关闭用户界面的指令时,仅在显示屏上取消显示用户界面,而不会将该用户界面中显示的图片所属的图集从内存中删除。因此,当终端再次接收到开启该用户界面的指令并显示该用户界面时,可以直接基于内存中已加载的备选图集直接在该用户界面中显示图片,从而减少了图集加载的次数,避免了加载图集的时耗,提高了开启用户界面的效率。并且,在备选图集的个数大于个数阈值时,删除至少一个备选图集,可以避免该终端的内存占用较高影响该终端的正常使用。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

图11示出了本发明一个示例性实施例提供的终端500的结构框图。该终端500可以是:智能手机、平板电脑、笔记本电脑或台式电脑。终端500还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

通常,终端500包括有:处理器501和存储器502。

处理器501可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器501可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器501可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器501还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器502还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器502中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器501所执行以实现本申请中方法实施例提供的内存中图集的管理方法。

在一些实施例中,终端500还可选包括有:外围设备接口503和至少一个外围设备。处理器501、存储器502和外围设备接口503之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口503相连。具体地,外围设备包括:射频电路504、触摸显示屏505、摄像头506、音频电路507、定位组件508和电源509中的至少一种。

外围设备接口503可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器501和存储器502。在一些实施例中,处理器501、存储器502和外围设备接口503被集成在同一芯片或电路板上;在一些其他实施例中,处理器501、存储器502和外围设备接口503中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路504用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路504通过电磁信号与通信网络以及其他通信设备进行通信。射频电路504将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路504包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路504可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路504还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏505用于显示用户界面。该用户界面可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏505是触摸显示屏时,显示屏505还具有采集在显示屏505的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器501进行处理。此时,显示屏505还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏505可以为一个,设置终端500的前面板;在另一些实施例中,显示屏505可以为至少两个,分别设置在终端500的不同表面或呈折叠设计;在再一些实施例中,显示屏505可以是柔性显示屏,设置在终端500的弯曲表面上或折叠面上。甚至,显示屏505还可以设置成非矩形的不规则图形,也即异形屏。显示屏505可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。

摄像头组件506用于采集图像或视频。可选地,摄像头组件506包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtualreality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件506还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

音频电路507可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器501进行处理,或者输入至射频电路504以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端500的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器501或射频电路504的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路507还可以包括耳机插孔。

定位组件508用于定位终端500的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。定位组件508可以是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。

电源509用于为终端500中的各个组件进行供电。电源509可以是交流电、直流电、一次性电池或可充电电池。当电源509包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。

在一些实施例中,终端500还包括有一个或多个传感器510。该一个或多个传感器510包括但不限于:加速度传感器511、陀螺仪传感器512、压力传感器513、指纹传感器514、光学传感器515以及接近传感器516。

加速度传感器511可以检测以终端500建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器511可以用于检测重力加速度在三个坐标轴上的分量。处理器501可以根据加速度传感器511采集的重力加速度信号,控制触摸显示屏505以横向视图或纵向视图进行用户界面的显示。加速度传感器511还可以用于游戏或者用户的运动数据的采集。

陀螺仪传感器512可以检测终端500的机体方向及转动角度,陀螺仪传感器512可以与加速度传感器511协同采集用户对终端500的3d动作。处理器501根据陀螺仪传感器512采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变用户界面)、拍摄时的图像稳定、游戏控制以及惯性导航。

压力传感器513可以设置在终端500的侧边框和/或触摸显示屏505的下层。当压力传感器513设置在终端500的侧边框时,可以检测用户对终端500的握持信号,由处理器501根据压力传感器513采集的握持信号进行左右手识别或快捷操作。当压力传感器513设置在触摸显示屏505的下层时,由处理器501根据用户对触摸显示屏505的压力操作,实现对用户界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

指纹传感器514用于采集用户的指纹,由处理器501根据指纹传感器514采集到的指纹识别用户的身份,或者,由指纹传感器514根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器501授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器514可以被设置终端500的正面、背面或侧面。当终端500上设置有物理按键或厂商logo时,指纹传感器514可以与物理按键或厂商logo集成在一起。

光学传感器515用于采集环境光强度。在一个实施例中,处理器501可以根据光学传感器515采集的环境光强度,控制触摸显示屏505的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏505的显示亮度;当环境光强度较低时,调低触摸显示屏505的显示亮度。在另一个实施例中,处理器501还可以根据光学传感器515采集的环境光强度,动态调整摄像头组件506的拍摄参数。

接近传感器516,也称距离传感器,通常设置在终端500的前面板。接近传感器516用于采集用户与终端500的正面之间的距离。在一个实施例中,当接近传感器516检测到用户与终端500的正面之间的距离逐渐变小时,由处理器501控制触摸显示屏505从亮屏状态切换为息屏状态;当接近传感器516检测到用户与终端500的正面之间的距离逐渐变大时,由处理器501控制触摸显示屏505从息屏状态切换为亮屏状态。

本领域技术人员可以理解,图11中示出的结构并不构成对终端500的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

本发明实施例提供了一种计算机可读存储介质,该存储介质存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由处理器加载并执行以实现上述实施例提供的内存中图集的管理方法。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1