应用缓存的清除方法、装置及计算机设备与流程

文档序号:12550458阅读:755来源:国知局
应用缓存的清除方法、装置及计算机设备与流程

本发明属于信息处理技术领域,尤其涉及终端应用管理技术领域,具体涉及一种应用缓存的清除方法、装置及计算机设备。



背景技术:

随着移动终端的功能越来越丰富,移动终端被使用的频次也越来越高。在一些情况下,移动终端还可能被机主之外的其他人使用。为了满足多种使用场景和保护机主隐私,一些移动终端已经支持多用户模式。也就是说,在移动终端上除了机主用户,还可以添加子用户以及访客用户等。

在多用户模式下,移动终端为不同的用户设置了独立的用户空间,使得不同用户间的数据可以相互独立。然而,不同用户的应用缓存数据会占据移动终端较多的存储空间。



技术实现要素:

本发明实施例提供一种应用缓存的清除方法、装置及计算机设备,能节省终端的存储空间。

本发明实施例提供一种应用缓存的清除方法,包括:

获取当前用户账号外的用户账号对应的应用管理列表,各所述应用管理列表中包含相应的用户账号对应的存储空间中安装的应用的信息;

当检测到应用缓存清除操作时,确定需要清除应用缓存的目标用户账号和目标应用,所述目标用户账号为非当前用户账号;

在与所述目标用户账号对应的应用管理列表中,获取与所述目标用户账号对应的目标用户标识号,及与所述目标应用对应的目标应用包名;

将所述目标应用包名及所述目标用户标识号作为运行参数,在终端只读存储器中查找所述目标应用的缓存,并将查找到的所述目标应用的缓存清除。

本发明实施例提供一种应用缓存的清除装置,包括:

第一获取模块,用于获取当前用户账号外的用户账号对应的应用管理列表,各所述应用管理列表中包含相应的用户账号对应的存储空间中安装的应用的信息;

确定模块,用于当检测到应用缓存清除操作时,确定需要清除应用缓存的目标用户账号和目标应用,所述目标用户账号为非当前用户账号;

第二获取模块,用于在与所述目标用户账号对应的应用管理列表中,获取与所述目标用户账号对应的目标用户标识号,及与所述目标应用对应的目标应用包名;

第一清除模块,用于将所述目标应用包名及所述目标用户标识号作为运行参数,在终端只读存储器中查找所述目标应用的缓存,并将查找到的所述目标应用的缓存清除。

本发明实施例还提供一种计算机设备,包括存储器,处理器,以及存储在所述存储器中并可在所述处理器中运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例提供的应用缓存的清除方法中的步骤。

附图说明

下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其有益效果显而易见。

图1是本发明实施例提供的应用缓存的清除方法的流程示意图。

图2是本发明实施例提供的应用缓存的清除方法的另一流程示意图。

图3A至图3D是本发明实施例提供的应用缓存的清除方法的场景示意图。

图4是本发明实施例提供的应用缓存的清除装置的结构示意图。

图5是本发明实施例提供的应用缓存的清除装置的另一结构示意图。

图6是本发明实施例提供的移动终端的结构示意图。

具体实施方式

请参照图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本发明具体实施例,其不应被视为限制本发明未在此详述的其它具体实施例。

以下将详细说明。

请参阅图1,图1是本发明实施例提供的应用缓存的清除方法的流程示意图,流程可以包括:

在步骤S101中,获取当前用户账号外的用户账号对应的应用管理列表,各应用管理列表中包含相应的用户账号对应的存储空间中安装的应用的信息。

可以理解的是,本发明实施例的执行主体可以是智能手机、平板电脑等终端设备。

比如,为了丰富终端的功能以满足多种使用场景和保护机主隐私,一些版本的操作系统支持多用户模式。也就是说,在安装这些版本的操作系统的终端(如平板电脑)上除了有机主用户,还可以添加子用户以及访客用户等。当终端创建机主用户之外的其它用户账号时,终端会为新创建的用户账号开辟独立的用户空间,使得不同用户账号间的数据可以相互独立。然而,不同用户所安装的应用的缓存数据会占据终端较多的存储空间。

在本发明实施例的步骤S101中,终端可以先获取当前用户账号外的各用户账号对应的应用管理列表,各应用管理列表中包含相应的用户账号对应的存储空间中安装的应用的信息。

比如,终端中包含甲、乙、丙三个用户账号,终端的当前用户账号为甲账号。那么,终端可以先获取乙账号和丙账号对应的应用管理列表。各账号对应的应用管理列表中包含了各账号对应的存储空间中安装的所有应用的相关信息,例如应用的应用名称、版本号、缓存数据大小、应用包名(packageName),以及各账号对应的用户标识号(userID)等信息。

在一种实施方式中,终端可以通过如下步骤来获取当前用户账号外的用户账号对应的应用管理列表:

获取当前用户账号外的用户账号对应的用户标识号;

将各用户标识号作为运行参数,获取与当前用户账号外的各用户账号对应的应用管理列表。

比如,终端安装的是安卓(Android)操作系统,那么终端可以通过调用安卓系统中的原生方法getUserIds()来获取终端中所有用户账号对应的用户标识号(userID)。然后,终端可以获取当前用户账号对应的用户标识号。那么,在所有用户标识号中,除当前用户账号对应的用户标识号之外的用户标识号即为当前用户账号外的其他用户账号对应的用户标识号。

在获取到其它用户账号对应的用户标识号之后,终端可以将各用户标识号作为运行参数,获取与各用户账号对应的应用管理列表。例如,终端可以调用安卓系统中的原生方法getInstalledPackagesAsUser(int flags,int userId)来获取与各用户账号对应的应用管理列表。该方法getInstalledPackagesAsUser(int flags,int userId)的运行参数中包含用户标识号userId。终端只要传入用户账号对应的用户标识号即可获取到该用户账号对应的应用管理列表。

例如,在获取到乙账号对应的用户标识号之后,终端将乙账号对应的用户标识号作为运行参数,调用方法getInstalledPackagesAsUser(int flags,int userId)即可获取到乙账号对应的应用管理列表。

可以理解的是,通过获取当前用户账号外的其它用户账号对应的应用管理列表,终端的的当前用户即可了解到其它用户账号对应的存储空间中安装了哪些应用,以及这些应用的相关信息。

在步骤S102中,当检测到应用缓存清除操作时,确定需要清除应用缓存的目标用户账号和目标应用,该目标用户账号为非当前用户账号。

比如,在获取到当前用户账号外的其它用户账号对应的应用管理列表后,终端检测到用于清除非当前用户账号对应的存储空间中安装的应用的缓存的操作,此时终端可以确定出需要清除应用缓存的目标用户账号和目标应用。

例如,当前用户账号为甲账号,终端在获取到与乙账号对应的乙应用管理列表,以及与丙账号对应的丙应用管理列表后,终端检测到用于指示清除乙账号对应的存储空间中安装的A应用的缓存的操作,此时终端可以将乙账号确定为目标用户账号,并将A应用确定为目标应用。

在步骤S103中,在与该目标用户账号对应的应用管理列表中,获取与该目标用户账号对应的目标用户标识号,及与该目标应用对应的目标应用包名。

在步骤S104中,将该目标应用包名及该目标用户标识号作为运行参数,在终端只读存储器中查找该目标应用的缓存,并将查找到的该目标应用的缓存清除。

比如,步骤S103和S104可以包括:

在确定出需要清除应用缓存的目标用户账号和目标应用之后,终端可以在该目标用户账号对应的应用管理列表中,获取与该目标用户账号对应的目标用户标识号,以及与该目标应用对应的目标应用包名。然后,终端可以将该目标用户标识号及目标应用包名作为运行参数,在终端的只读存储器(ROM)中查找该目标应用的缓存,并将查找到的该目标应用的缓存清除。

例如,终端在将需要清除应用缓存的乙账号下的A应用确定为目标应用,并将乙账号确定为目标用户账号之后,终端可以在乙账号对应的应用管理列表中获取与乙账号对应的用户标识号,以及A应用的应用包名。

然后,终端可以将乙账号对应的用户标识号,以及A应用的应用包名作为运行参数,在终端的只读存储器中查找乙账号下安装的A应用的缓存数据,并将查找到的缓存数据清除。

例如,终端安装的是安卓操作系统,那么在获取到目标应用包名和目标用户标识号之后,终端可以调用并执行安卓系统中用于清除应用缓存的方法deleteApplicationCacheFilesLI(),该方法以应用包名packageName及用户标识号userId为运行参数。例如,目标应用包名为packagename1,目标用户标识号为userid1,那么在执行方法deleteApplicationCacheFilesLI()时,终端所执行的操作语句为deleteApplicationCacheFilesLI(packagename1,userid1)。

在执行操作语句deleteApplicationCacheFilesLI(packagename1,userid1)时,终端会根据目标应用包名packagename1及目标用户标识号userid1,查找目标应用保存在终端只读存储器中的缓存数据,并将查找到的该目标应用的缓存数据从只读存储器中清除。

可以理解的是,本发明实施例中,在包含多个用户账号的情况下,终端可以清除非当前用户账号对应的存储空间中安装的应用的缓存数据,从而可以节省终端的存储空间。

请参阅图2,图2为本发明实施例提供的应用缓存的清除方法的另一流程示意图,流程可以包括:

在步骤S201中,终端获取当前用户账号外的用户账号对应的用户标识号。

在步骤S202中,终端将各用户标识号作为运行参数,获取与当前用户账号外的各用户账号对应的应用管理列表,各应用管理列表中包含相应的用户账号对应的存储空间中安装的应用的信息。

比如,步骤S201和S202可以包括:

终端中包含甲、乙、丙三个用户账号,终端的当前用户账号为甲账号。那么,终端可以先获取乙账号和丙账号对应的用户标识号。然后,终端将乙账号的用户标识号作为运行参数,获取乙账号对应的应用管理列表,例如为乙应用管理列表。之后,终端可以将丙账号的用户标识号作为运行参数,获取丙账号对应的应用管理列表,例如为丙应用管理列表。

各用户账号对应的应用管理列表中包含了各用户账号对应的存储空间中安装的所有应用的相关信息,例如应用的应用名称、版本号、缓存数据大小、应用包名,以及各用户账号对应的用户标识号等信息。

比如,终端安装的是安卓操作系统,那么终端可以通过调用安卓系统中的原生方法getUserIds()来获取终端中所有用户账号对应的用户标识号。然后,终端可以获取当前用户账号对应的用户标识号。那么,在所有用户标识号中,除当前用户账号对应的用户标识号之外的用户标识号即为当前用户账号外的其他用户账号对应的用户标识号。

在获取到其它用户账号对应的用户标识号之后,终端可以将各用户标识号作为运行参数,获取与各用户账号对应的应用管理列表。例如,终端可以调用安卓系统中的原生方法getInstalledPackagesAsUser(int flags,int userId)来获取与各用户账号对应的应用管理列表。该方法getInstalledPackagesAsUser(int flags,int userId)的运行参数中包含用户标识号userId。终端只要传入用户账号对应的用户标识号即可获取到该用户账号对应的应用管理列表。

例如,在获取到乙账号对应的用户标识号之后,终端将乙账号对应的用户标识号作为运行参数,调用方法getInstalledPackagesAsUser(int flags,int userId)即可获取到乙账号对应的应用管理列表。

可以理解的是,通过获取当前用户账号外的其它用户账号对应的应用管理列表,终端的的当前用户即可了解到其它用户账号对应的存储空间中安装了哪些应用,以及这些应用的相关信息。

在步骤S203中,当检测到应用缓存清除操作时,终端确定需要清除应用缓存的目标用户账号和目标应用,该目标用户账号为非当前用户账号。

比如,当前用户账号为甲账号,终端在获取到与乙账号对应的乙应用管理列表,以及与丙账号对应的丙应用管理列表后,终端检测到用于指示清除乙账号对应的存储空间中安装的A应用的缓存的操作,此时终端可以确定出相应的目标用户账号,及目标应用。

也就是说,当检测到用于指示清除乙账号对应的存储空间中安装的A应用的缓存的操作时,终端可以将乙账号确定为目标用户账号,并将乙账号下安装的A应用确定为目标应用。

在步骤S204中,终端在与该目标用户账号对应的应用管理列表中,获取与该目标用户账号对应的目标用户标识号,及与该目标应用对应的目标应用包名。

比如,在将乙账号确定为目标用户账号,并将乙账号下安装的A应用确定为目标应用之后,终端可以在步骤S202中获取到的乙账号对应的乙应用管理列表中,获取与目标用户账号对应的目标用户标识号(即乙账号对应的用户标识号),以及目标应用的应用包名(即A应用的应用包名)。

例如,终端在乙应用管理列表中获取到的目标用户标识号为02,目标应用包名为packagename1。

在步骤S205中,终端将该目标应用包名及该目标用户标识号作为运行参数,在只读存储器中查找该目标应用的缓存,并将查找到的该目标应用的缓存清除。

比如,在获取到的目标用户标识号02以及目标应用包名packagename1之后,终端可以将该目标用户标识号和目标应用包名作为运行参数,在终端的只读存储器中查找乙账号下安装的A应用的缓存数据,并将查找到的缓存数据清除。

比如,终端安装的是安卓操作系统,那么在获取到目标应用包名和目标用户标识号之后,终端可以调用并执行安卓系统中用于清除应用缓存的方法deleteApplicationCacheFilesLI(),该方法以应用包名packageName及用户标识号userId为运行参数。

例如,在目标应用包名为packagename1,目标用户标识号为02的情况下,在执行方法deleteApplicationCacheFilesLI()时,终端所执行的操作语句为deleteApplicationCacheFilesLI(packagename1,02)。

在步骤S206中,终端将该目标应用包名及该目标用户标识号作为运行参数,检测终端的扩展存储器中是否包含该目标应用的缓存。

在步骤S207中,当检测出终端的扩展存储器中包含该目标应用的缓存时,终端清除该扩展存储器中包含的该目标应用的缓存。

比如,步骤S206和S207可以包括:

终端将目标应用包名packagename1和目标用户标识号02作为运行参数,检测终端的扩展存储器中是否包含目标应用的缓存数据。

需要说明的是,终端的扩展存储器可以是诸如安全数码卡(Secure Digital Memory Card,简称SD卡)、Micro SD卡等用于扩展终端存储容量的数据存储卡。

如果检测出终端的扩展存储器中未存储有目标应用的缓存数据,那么终端可以执行其它操作,即步骤S208。例如,终端可以将目标应用的缓存清除结果返回给当前用户等。

如果检测出终端的扩展存储器中存储有目标应用的缓存数据,那么终端可以将保存在扩展存储器中的目标应用的缓存数据清除。

例如,终端安装的安卓操作系统,那么终端可以调用并执行安卓系统中的方法clearExternalStorageDataSync()来检测终端的扩展存储器中是否存储有目标应用的缓存数据,并在扩展存储器中存储有目标应用的缓存数据的情况下,将该目标应用的缓存数据清除。该方法clearExternalStorageDataSync()的运行参数中包括目标应用的目标应用包名和目标用户标识号。

在一种实施方式中,在步骤S207之后,终端还可以将目标应用的缓存清除结果返回给当前用户。例如,终端可以生成提示信息,该提示信息用于告知当前用户是否已经成功将目标应用的缓存文件清除。

在一种实施方式中,步骤S203中当检测到应用缓存清除操作时,终端确定需要清除应用缓存的目标用户账号和目标应用的步骤,可以包括:

当检测到应用缓存清除操作时,检测当前用户账号是否具有预设清除权限,所述预设清除权限为清除非当前用户账号对应的存储空间中安装的应用的缓存的权限;

当检测出当前用户账号具有预设清除权限时,确定需要清除应用缓存的目标用户账号和目标应用。

比如,当终端具有多个用户账号时,可以只允许其中的一个或少数几个用户账号能够清除其他用户账号下安装的应用的缓存数据,而非全部用户账号都可以清除其他用户账号下安装的应用的缓存数据。

在一实施方式中,终端可以预先设置一个清除权限,并将该清除权限赋予一个或多个用户账号。只有被赋予该清除权限的用户账号才能够清除其他用户账号下安装的应用的缓存数据。

那么,当检测到用于清除非当前用户账号对应的存储空间中安装的应用的缓存的操作时,终端可以检测当前用户账号是否具有预设清除权限,该预设清除权限为允许清除非当前用户账号对应的存储空间中安装的应用的缓存的权限。也即,当终端检测到当前用户要清除其他用户账号下安装的应用的缓存时,终端可以检测当前用户账号是否具有预设清除权限。

如果终端检测出当前用户账号具有上述预设清除权限,即当前用户具有清除其他用户账号下安装的应用的缓存的权限,那么终端可以将需要清除应用缓存的用户账号确定为目标用户账号,并将需要清除缓存的应用确定为目标应用。

在一种实施方式,终端还可以执行如下步骤:

当检测出当前用户账号不具有预设清除权限时,终端获取当前用户的身份验证信息;

当检测出当前用户的身份验证信息和预设身份验证信息匹配时,终端赋予当前用户账号该预设清除权限。

比如,在对当前用户账号所拥有的权限进行检测之后,终端判断出当前用户账号不具有预设清除权限,那么终端还可以获取当前用户的身份验证信息,并判断该身份验证信息是否和预设身份验证信息相匹配。该预设身份验证信息可以是终端机主的身份验证信息。例如,该身份验证信息可以是终端机主预先设定的密码信息等。

如果终端判断出当前用户的身份验证信息和预设身份验证信息相匹配,那么可以认为当前用户得到终端机主的许可,终端机主允许其删除其他用户账号下安装的应用的缓存数据。此时,终端可以将预设清除权限赋予当前用户账号,以使得当前用户账号能够清除其他用户账号下安装的应用的缓存数据。

如果终端判断出当前用户的身份验证信息和预设身份验证信息不匹配,那么终端可以不对当前用户账号授予预设清除权限,并提示当前用户无权清除其他用户账号下安装的应用的缓存数据,以使当前用户无法清除其它用户账号下安装的应用的缓存数据。

在一种实施方式中,在赋予当前用户账号预设清除权限之后,终端还可以对赋予当前用户账号的预设清除权限设置有效时长。例如,在赋予当前用户账号预设清除权限之后,终端可以对该赋予的权限设置一个有效时长,例如1小时。也就是说,在1小时内,当前用户账号具有预设清除权限。而在1小时之后,终端将自动取消赋予当前用户账号的预设清除权限。

在一种实施方式中,在赋予当前用户账号预设清除权限之后,终端也可以执行如下步骤:当检测到目标应用的缓存已被清除时,终端将赋予当前用户账号的预设清除权限取消。

比如,在赋予当前用户账号预设清除权限之后,终端可以检测目标应用的缓存是否已被成功清除。如果终端检测到目标应用的缓存已被成功清除,那么终端可以将赋予当前用户账号的预设清除权限取消。若在此之后,终端的当前用户又需要清除其他用户账号下安装的应用,那么当前用户需要再次申请预设清除权限。

可以理解的是,通过动态地申请和撤销预设清除权限这种方式,可以提高终端清除应用缓存的灵活性。

在一种实施方式中,可以将步骤S205至S207中对应的操作集成在一个新创建的方法中,该新创建的方法可以是创建于安卓应用框架层(Android Framework)中的方法。例如,该新创建的方法可以命名为deleteApplicationCacheFilesCrossUser,该方法的可执行程序代码可以如下:

需要说明的是,在一种实施方式中,方法deleteApplicationCacheFilesCrossUser()的运行参数中还可以包括用于监听缓存清除结果的对象observer。

当然,上述方法deleteApplicationCacheFilesCrossUser()的运行参数中也可以不包含用于监听缓存清除结果的对象observer。也就是说,如果不需要将目标应用的缓存清除结果返回给当前用户,那么该方法的运行参数中就可以不包含observer。

在上述方法deleteApplicationCacheFilesCrossUser()的第一部分,终端可以检查该方法的调用者(也即当前用户账号)是否具有调用本方法的权限,而调用本方法的权限可以是安卓系统中允许删除缓存文件的权限android.Manifest.permission.DELETE_CACHE_FILES。如果检测出该方法的调用者具有调用该允许删除缓存文件的权限,那么终端就继续往下执行本方法。否则,终端可以取消执行本方法,也即不对目标应用的缓存进行清除。

需要说明的是,上述调用方法deleteApplicationCacheFilesCrossUser()的权限(允许删除缓存文件的权限)和上文所述的预设清除权限是不一样的权限。在一种实施方式中,终端可以将这两种权限预先分配给指定的用户账号,使得只有同时具备这两种权限的用户账号才能清除其它用户账号下安装的应用的缓存。

或者,终端也可以只设置上述两种权限中的任意一种,那么同样的,只有具备相应权限的用户账号才能清除其它用户账号下安装的应用的缓存。又或者,终端也可以不设置上述两种权限,等等。

在一种实施方式中,用户账号可以动态地申请或取消上述两种权限。比如,在当前用户输入的身份验证信息与机主预先保存在终端中的身份验证信息相匹配的情况下,终端可以赋予当前用户账号相应的权限。

需要说明的是,由于缓存文件可以提高应用的运行效率,比如,对于应用中使用的某张照片,当终端将该照片从网络下载到终端之后,终端可以将该照片存入缓存文件中。这样,当应用再次需要使用该照片时,就可以直接从缓存文件中获取该照片,而不需要在网络上重新下载。

因此,在一种实施方式中,终端可以将清除非当前用户账号中安装的应用的缓存的功能只提供给机主用户,或者少数几个用户。比如终端可以设置两个权限,分别为预设清除权限和调用方法deleteApplicationCacheFilesCrossUser()的权限。只有同时具备这两个权限的用户账号才能清除其他用户账号下安装的应用的缓存。

可以理解的是,通过设置上述权限可以提高终端应用的缓存文件的数据安全性,避免缓存文件被随意删除。

上述方法deleteApplicationCacheFilesCrossUser()中的第二部分,用于在终端调试本方法时输出相应的日志文件。也就是说,在正常执行本方法时,终端不会执行该第二步。只有在终端对本方法进行调试时,才会输出相应的日志文件。在方法deleteApplicationCacheFilesCrossUser()中写入语句if(DEBUG_PMS)Slog.d(TAG,"deleteAppCaches()user:"+userId)可以提高本方法的健壮性,使本方法更加完善。

在一种的实施方式中,在上述方法deleteApplicationCacheFilesCrossUser()中也可以不写入第二部分中的if(DEBUG_PMS)Slog.d(TAG,"deleteAppCaches()user:"+userId)的语句。

在上述方法deleteApplicationCacheFilesCrossUser()中的第三部分,终端可以启动一个新的线程以清除目标应用的缓存。在可能的实施方式中,在此步骤中,终端调用并执行方法deleteApplicationCacheFilesLI()来清除目标应用保存在终端只读存储器中的缓存,该方法deleteApplicationCacheFilesLI()以目标应用的目标应用包名和目标用户标识号为运行参数。

需要说明的是,在此步骤中,定义了一个布尔型(boolean)变量succeded,并将方法deleteApplicationCacheFilesLI()的返回赋值给该变量succeded。定义并将方法deleteApplicationCacheFilesLI()的返回赋值给变量succeded是为了在后续步骤中将目标应用缓存的清除结果返回给当前用户时,使用该变量succeded作为一个运行参数。

在一种实施方式中,如果不需要将目标应用缓存的清除结果返回给当前用户,那么也就不需要定义该布尔型变量succeded,以及将方法deleteApplicationCacheFilesLI()的返回赋值给变量succeded。

在一种实施方式中,在调用并执行方法deleteApplicationCacheFilesLI()清除目标应用的缓存数据的过程中,可以控制终端禁止其它进程调用该方法deleteApplicationCacheFilesLI()。在本实施例中,可以通过调用synchronized()方法来防止其它进程也调用该方法。这可以保证终端成功地将目标应用的缓存清除。

在上述方法deleteApplicationCacheFilesCrossUser()中的第四部分,可以调用并执行方法clearExternalStorageDataSync()。也就是说,终端会检测其扩展存储空间中是否包含有目标应用的缓存文件,若检测到终端的扩展存储空间中存储有目标应用的缓存文件,那么终端可以将终端扩展存储空间中的目标应用的缓存文件清除。

可以理解的是,终端有可能将应用的缓存文件按照用户的设置,存储到扩展存储空间。因此,通过执行方法clearExternalStorageDataSync(),可以提高对目标应用的缓存的清除的有效性,避免因终端将目标应用的缓存文件存储到扩展存储空间所导致的未能成功清除或未能完全清除目标应用的缓存的问题出现。

在上述方法deleteApplicationCacheFilesCrossUser()中的第五部分,终端可以将目标应用缓存的清除结果反馈给当前用户。也就是,终端可以告知用户是否成功将目标应用的缓存清除。如果在将目标应用的缓存清除结果反馈给当前用户时出现异常,那么终端可以输出相应的日志文件。

可以理解的是,将目标应用的缓存清除结果反馈给当前用户,可以使当前用户直观地了解到目标应用的缓存清除结果。

需要说明的是,在可能的实施方式中,终端也可以不将目标应用缓存的清除结果反馈给当前用户。

请参阅图3A至图3D,图3A至图3D为本发明实施例提供的应用缓存的清除方法的场景示意图。

例如,终端中包含甲、乙、丙三个用户账号。其中,甲账号对应的存储空间中安装了A应用、B应用和C应用。乙账号对应的存储空间中安装了A应用和D应用。丙账号对应的存储空间中安装了A应用。

例如,当前用户账号为甲账号,那么终端可以先获取乙账号和丙账号对应的应用管理列表。乙账号对应的应用管理列表中包含了乙账号下安装的A应用和D应用的相关信息,如各应用的应用名称、版本号、缓存数据大小、应用包名,以及乙账号对应的用户标识号等信息。丙账号对应的应用管理列表中包含了丙账号下安装的A应用的相关信息。

可以理解的是,在获取到乙账号和丙账号对应的应用管理列表后,当前用户在相应的应用管理界面上就可以了解到乙账号和丙账号对应的存储空间中安装的各应用的相关信息,如图3A。

比如,当前用户甲点击了用户乙安装的A应用,以查看用户乙安装的A应用的相关信息,如图3B。

在终端界面上,用户甲可以查看到用户乙所安装的A应用的相关信息,其中包括用户乙安装的A应用的缓存大小,例如为120KB,如图3C。

此时,当前用户认为乙账号下安装的A应用占用的缓存过多,并点击了终端界面上的“清除缓存”按钮,将乙账号下安装的A应用的缓存清除,如图3D。

终端在接收到当前用户输入的用于指示清除应用的缓存的指令时,可以先检测甲账号是否具有预设清除权限,该预设清除权限为清除非当前用户账号下安装的应用的缓存的权限。

例如,终端检测出当前的甲账号具有预设清除权限,那么终端可以将需要清除应用缓存的乙账号确定为目标用户账号,并将乙账号下安装的A应用确定为目标应用。

然后,终端可以在之前获取到的乙账号对应的应用管理列表中,获取目标用户账号(乙账号)对应的目标用户标识号,例如为02,以及目标应用(即A应用)对应的目标应用包名,例如为packagename1。

在此之后,终端可以将目标应用包名packagename1及目标用户标识号02作为运行参数,在只读存储器中查找乙账号下安装的A应用的缓存数据,并将查找到的缓存数据清除。

另外,终端可以将目标应用包名packagename1及目标用户标识号02作为运行参数,检测终端的扩展存储器(如SD卡)中是否保存有乙账号下安装的A应用的缓存数据。当检测到终端的扩展存储器中保存有乙账号下安装的A应用的缓存数据时,终端可以将保存在该扩展存储器中的乙账号安装的A应用的缓存数据清除。

在一种实施方式中,若终端安装的操作系统为安卓系统,那么终端可以调用并执行方法deleteApplicationCacheFilesLI(),该方法以乙账号安装的A应用的应用包名packagename1及用户标识号02为运行参数。在执行该方法时,终端会根据应用包名packagename1以及用户标识号02,在终端的只读存储器中查找乙账号安装的A应用对应的缓存数据,并将查找到的乙账号安装的A应用保存在终端只读存储器中的缓存数据删除。

然后,终端可以调用并执行方法clearExternalStorageDataSync(),该方法以乙账号安装的A应用的应用包名packagename1及乙账号的用户标识号02为运行参数。在执行该方法时,终端会检测其扩展存储器(如SD卡)中是否包含有乙账号安装的A应用的缓存数据。当检测到终端扩展存储器中保存有乙账号安装的A应用的缓存数据时,终端就将保存在该扩展存储器中的乙账号安装的A应用的缓存数据清除。

请参阅图4,图4为本发明实施例提供的应用缓存的清除装置的结构示意图。应用缓存的清除装置300可以包括:第一获取模块301,确定模块302,第二获取模块303,以及第一清除模块304。

第一获取模块301,用于获取当前用户账号外的用户账号对应的应用管理列表,各所述应用管理列表中包含相应的用户账号对应的存储空间中安装的应用的信息。

比如,终端中包含甲、乙、丙三个用户账号,终端的当前用户账号为甲账号。那么,第一获取模块301可以先获取乙账号和丙账号对应的应用管理列表。各账号对应的应用管理列表中包含了各账号对应的存储空间中安装的所有应用的相关信息,例如应用的应用名称、版本号、缓存数据大小、应用包名(packageName),以及各账号对应的用户标识号(userID)等信息。

在一种实施方式中,第一获取模块301可以用于:

获取当前用户账号外的用户账号对应的用户标识号;

将各用户标识号作为运行参数,获取与当前用户账号外的各用户账号对应的应用管理列表。

比如,终端安装的是安卓(Android)操作系统,那么第一获取模块301可以通过调用安卓系统中的原生方法getUserIds()来获取终端中所有用户账号对应的用户标识号(userID)。然后,终端可以获取当前用户账号对应的用户标识号。那么,在所有用户标识号中,除当前用户账号对应的用户标识号之外的用户标识号即为当前用户账号外的其他用户账号对应的用户标识号。

在获取到其它用户账号对应的用户标识号之后,第一获取模块301可以将各用户标识号作为运行参数,获取与各用户账号对应的应用管理列表。例如,第一获取模块301可以调用安卓系统中的原生方法getInstalledPackagesAsUser(int flags,int userId)来获取与各用户账号对应的应用管理列表。该方法getInstalledPackagesAsUser(int flags,int userId)的运行参数中包含用户标识号userId。第一获取模块301只要传入用户账号对应的用户标识号即可获取到该用户账号对应的应用管理列表。

例如,在获取到乙账号对应的用户标识号之后,第一获取模块301将乙账号对应的用户标识号作为运行参数,调用方法getInstalledPackagesAsUser(int flags,int userId)即可获取到乙账号对应的应用管理列表。

可以理解的是,通过获取当前用户账号外的其它用户账号对应的应用管理列表,终端的的当前用户即可了解到其它用户账号对应的存储空间中安装了哪些应用,以及这些应用的相关信息。

确定模块302,用于当检测到应用缓存清除操作时,确定需要清除应用缓存的目标用户账号和目标应用,所述目标用户账号为非当前用户账号。

比如,在第一获取模块301获取到当前用户账号外的其它用户账号对应的应用管理列表后,终端检测到用于清除非当前用户账号对应的存储空间中安装的应用的缓存的操作,此时确定模块302可以确定出需要清除应用缓存的目标用户账号和目标应用。

例如,当前用户账号为甲账号,终端在获取到与乙账号对应的乙应用管理列表,以及与丙账号对应的丙应用管理列表后,终端检测到用于指示清除乙账号对应的存储空间中安装的A应用的缓存的操作,此时确定模块302可以将乙账号确定为目标用户账号,并将A应用确定为目标应用。

第二获取模块303,用于在与所述目标用户账号对应的应用管理列表中,获取与所述目标用户账号对应的目标用户标识号,及与所述目标应用对应的目标应用包名。

第一清除模块304,用于将所述目标应用包名及所述目标用户标识号作为运行参数,在终端只读存储器中查找所述目标应用的缓存,并将查找到的所述目标应用的缓存清除。

比如,在确定模块302确定出需要清除应用缓存的目标用户账号和目标应用之后,第二获取模块303可以在该目标用户账号对应的应用管理列表中,获取与该目标用户账号对应的目标用户标识号,以及与该目标应用对应的目标应用包名。然后,第一清除模块304可以将该目标用户标识号及目标应用包名作为运行参数,在终端的只读存储器(ROM)中查找该目标应用的缓存,并将查找到的该目标应用的缓存清除。

例如,确定模块302在将需要清除应用缓存的乙账号下的A应用确定为目标应用,并将乙账号确定为目标用户账号之后,第二获取模块303可以在乙账号对应的应用管理列表中获取与乙账号对应的用户标识号,以及A应用的应用包名。

然后,第一清除模块304可以将乙账号对应的用户标识号,以及A应用的应用包名作为运行参数,在终端的只读存储器中查找乙账号下安装的A应用的缓存数据,并将查找到的缓存数据清除。

例如,终端安装的是安卓操作系统,那么在第二获取模块303获取到目标应用包名和目标用户标识号之后,第一清除模块304可以调用并执行安卓系统中用于清除应用缓存的方法deleteApplicationCacheFilesLI(),该方法以应用包名packageName及用户标识号userId为运行参数。例如,目标应用包名为packagename1,目标用户标识号为userid1,那么在执行方法deleteApplicationCacheFilesLI()时,终端所执行的操作语句为deleteApplicationCacheFilesLI(packagename1,userid1)。

在执行操作语句deleteApplicationCacheFilesLI(packagename1,userid1)时,第一清除模块304会根据目标应用包名packagename1及目标用户标识号userid1,查找目标应用保存在终端只读存储器中的缓存数据,并将查找到的该目标应用的缓存数据从只读存储器中清除。

可以理解的是,本发明实施例中,在包含多个用户账号的情况下,终端可以清除非当前用户账号对应的存储空间中安装的应用的缓存数据,从而可以节省终端的存储空间。

请一并参阅图5,图5为本发明实施例提供的应用缓存的清除装置的另一结构示意图。应用缓存的清除装置300还可以包括:第二清除模块305以及授权模块306。

第二清除模块305,用于将所述目标应用包名及所述目标用户标识号作为运行参数,检测终端的扩展存储器中是否包含所述目标应用的缓存;当检测出终端的扩展存储器中包含所述目标应用的缓存时,清除所述扩展存储器中包含的所述目标应用的缓存。

比如,在第一清除模块304将查找到的目标应用保存在终端只读存储器中的缓存数据清除之后,终端的第二清除模块305还可以将目标应用包名和目标用户标识号作为运行参数,检测终端的扩展存储器中是否包含目标应用的缓存数据。

需要说明的是,终端的扩展存储器可以是诸如安全数码卡(Secure Digital Memory Card,简称SD卡)、Micro SD卡等用于扩展终端存储容量的数据存储卡。

如果检测出终端的扩展存储器中未存储有目标应用的缓存数据,那么终端可以执行其它操作。例如,终端可以将目标应用的缓存清除结果返回给当前用户等。

如果检测出终端的扩展存储器中存储有目标应用的缓存数据,那么第二清除模块305可以将保存在扩展存储器中的目标应用的缓存数据清除。

例如,终端安装的安卓操作系统,那么第二清除模块305可以调用并执行安卓系统中的方法clearExternalStorageDataSync()来检测终端的扩展存储器中是否存储有目标应用的缓存数据,并在扩展存储器中存储有目标应用的缓存数据的情况下,将该目标应用的缓存数据清除。该方法clearExternalStorageDataSync()的运行参数中包括目标应用的目标应用包名和目标用户标识号。

授权模块306,用于当检测出当前用户账号不具有预设清除权限时,获取当前用户的身份验证信息;当检测出所述当前用户的身份验证信息和预设身份验证信息匹配时,赋予当前用户账号所述预设清除权限。

比如,在一种实施方式中,终端的确定模块302可以用于:

当检测到应用缓存清除操作时,检测当前用户账号是否具有预设清除权限,所述预设清除权限为清除非当前用户账号对应的存储空间中安装的应用的缓存的权限;

当检测出当前用户账号具有预设清除权限时,确定需要清除应用缓存的目标用户账号和目标应用。

例如,当终端具有多个用户账号时,可以只允许其中的一个或少数几个用户账号能够清除其他用户账号下安装的应用的缓存数据,而非全部用户账号都可以清除其他用户账号下安装的应用的缓存数据。

在一实施方式中,终端可以预先设置一个清除权限,并将该清除权限赋予一个或多个用户账号。只有被赋予该清除权限的用户账号才能够清除其他用户账号下安装的应用的缓存数据。

那么,当检测到用于清除非当前用户账号对应的存储空间中安装的应用的缓存的操作时,终端可以检测当前用户账号是否具有预设清除权限,该预设清除权限为允许清除非当前用户账号对应的存储空间中安装的应用的缓存的权限。也即,当终端检测到当前用户要清除其他用户账号下安装的应用的缓存时,终端的确定模块302可以检测当前用户账号是否具有预设清除权限。

如果确定模块302检测出当前用户账号具有上述预设清除权限,即当前用户具有清除其他用户账号下安装的应用的缓存的权限,那么确定模块302可以将需要清除应用缓存的用户账号确定为目标用户账号,并将需要清除缓存的应用确定为目标应用,该目标用户账号为非当前用户账号。

而如果在对当前用户账号所拥有的权限进行检测之后,确定模块302判断出当前用户账号不具有预设清除权限,那么授权模块306还可以获取当前用户的身份验证信息,并判断该身份验证信息是否和预设身份验证信息相匹配。该预设身份验证信息可以是终端机主的身份验证信息。例如,该身份验证信息可以是终端机主预先设定的密码信息等。

如果授权模块306判断出当前用户的身份验证信息和预设身份验证信息相匹配,那么可以认为当前用户得到终端机主的许可,终端机主允许其删除其他用户账号下安装的应用的缓存数据。此时,授权模块306可以将预设清除权限赋予当前用户账号,以使得当前用户账号能够清除其他用户账号下安装的应用的缓存数据。

如果授权模块306判断出当前用户的身份验证信息和预设身份验证信息不匹配,那么授权模块306可以不对当前用户账号授予预设清除权限,并提示当前用户无权清除其他用户账号下安装的应用的缓存数据,以使当前用户无法清除其它用户账号下安装的应用的缓存数据。

本发明实施例还提供一种计算机设备,包括存储器,处理器,以及存储在所述存储器中并可在所述处理器中运行的计算机程序,所述处理器执行所述计算机程序时可以实现本发明实施例中提供的应用缓存的清除方法中的步骤。

例如,上述计算机设备可以是移动终端,如平板电脑、手机等。请参阅图6,图6为本发明实施例提供的移动终端结构示意图。该移动终端500可以包括输入单元501、显示单元502、包括有一个或一个以上计算机可读存储介质的存储器503、传感器504、包括有一个或者一个以上处理核心的处理器505以及电源506等部件。本领域技术人员可以理解,图6中示出的移动终端结构并不构成对移动终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

输入单元501可用于接收输入的数字、字符信息或用户特征信息(比如指纹),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。在一些实施例中,输入单元501可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。

显示单元502可用于显示由用户输入的信息或提供给用户的信息以及移动终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元504可包括显示面板。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。

存储器503可用于存储应用程序和数据。存储器503存储的应用程序中包含有可执行代码。应用程序可以组成各种功能模块。处理器505通过运行存储在存储器503的应用程序,从而执行各种功能应用以及数据处理。

移动终端还可包括至少一种传感器504,比如光传感器、运动传感器以及指纹传感器等。

处理器505是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器503内的应用程序,以及调用存储在存储器503内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。

移动终端还包括给各个部件供电的电源506(比如电池)。优选的,电源可以通过电源管理系统与处理器505逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

尽管图6中未示出,移动终端还可以包括摄像头、蓝牙模块等,在此不再赘述。

具体在本实施例中,移动终端中的处理器505会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行代码加载到存储器503中,并由处理器505来运行存储在存储器503中的应用程序,从而实现各种功能:

获取当前用户账号外的用户账号对应的应用管理列表,各所述应用管理列表中包含相应的用户账号对应的存储空间中安装的应用的信息;当检测到应用缓存清除操作时,确定需要清除应用缓存的目标用户账号和目标应用,所述目标用户账号为非当前用户账号;在与所述目标用户账号对应的应用管理列表中,获取与所述目标用户账号对应的目标用户标识号,及与所述目标应用对应的目标应用包名;将所述目标应用包名及所述目标用户标识号作为运行参数,在终端只读存储器中查找所述目标应用的缓存,并将查找到的所述目标应用的缓存清除。

处理器505在执行获取当前用户账号外的用户账号对应的应用管理列表的步骤时,可以包括:获取当前用户账号外的用户账号对应的用户标识号;将各所述用户标识号作为运行参数,获取与当前用户账号外的各用户账号对应的应用管理列表。

处理器505还可以执行如下步骤:将所述目标应用包名及所述目标用户标识号作为运行参数,检测终端的扩展存储器中是否包含所述目标应用的缓存;当检测出终端的扩展存储器中包含所述目标应用的缓存时,清除所述扩展存储器中包含的所述目标应用的缓存。

处理器505在执行当检测到应用缓存清除操作时,确定需要清除应用缓存的目标用户账号和目标应用的步骤时,可以包括:当检测到应用缓存清除操作时,检测当前用户账号是否具有预设清除权限,所述预设清除权限为清除非当前用户账号对应的存储空间中安装的应用的缓存的权限;当检测出当前用户账号具有预设清除权限时,确定需要清除应用缓存的目标用户账号和目标应用。

处理器505还可以执行如下步骤:当检测出当前用户账号不具有预设清除权限时,获取当前用户的身份验证信息;当检测出所述当前用户的身份验证信息和预设身份验证信息匹配时,赋予当前用户账号所述预设清除权限。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对应用缓存的清除方法的详细描述,此处不再赘述。

本发明实施例提供的所述应用缓存的清除装置与上文实施例中的应用缓存的清除方法属于同一构思,在所述应用缓存的清除装置上可以运行所述应用缓存的清除方法实施例中提供的任一方法,其具体实现过程详见所述应用缓存的清除方法实施例,此处不再赘述。

需要说明的是,对本发明实施例所述应用缓存的清除方法而言,本领域普通测试人员可以理解实现本发明实施例所述应用缓存的清除方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述计算机程序可存储于一计算机可读取存储介质中,如存储在存储器中,并被至少一个处理器执行,在执行过程中可包括如所述应用缓存的清除方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)等。

对本发明实施例的所述应用缓存的清除装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,所述存储介质譬如为只读存储器,磁盘或光盘等。

以上对本发明实施例所提供的一种应用缓存的清除方法、装置以及计算机设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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