应用实时切换方法、设备、存储介质及装置与流程

文档序号:17479375发布日期:2019-04-20 06:20阅读:140来源:国知局
应用实时切换方法、设备、存储介质及装置与流程

本发明涉及智能终端技术领域,尤其涉及一种应用实时切换方法、设备、存储介质及装置。



背景技术:

智能终端在某些特定的功能需求下,需要集成多个功能相同的app,比如广告功能,由于不同广告类应用程序具有不同的广告资源,为了查找到所需资源,智能终端将配置多个广告类应用程序。但同类应用程序中同一时间只允许一个应用程序运行,因此,在对应用程序进行切换时需要对被切换应用程序进行禁用,并对待切换应用程序进行启动。

对被切换应用程序进行禁用,目前行业内的常规做法是调用禁用程序(packagemanager.setapplicationenabledsetting),通过该禁用程序将被切换应用程序的状态设置为“禁用(disable)”,从而禁用该应用,并将待切换应用程序的状态设置为“启用(enable)”。然而,应用程序一般都需要常驻内存,有常驻(persistent)属性,当应用程序具有persistent属性时,调用上述禁用程序无法杀死应用,被禁用的应用仍然会继续在系统中运行,因此,现有技术仍然无法有效地对应用程序进行切换。



技术实现要素:

本发明的主要目的在于提供一种应用实时切换方法、设备、存储介质及装置,旨在解决现有技术中无法有效地对应用程序进行切换的技术问题。

为实现上述目的,本发明提供一种应用实时切换方法,所述方法包括以下步骤:

在获取到当前禁用包名列表时,将所述当前禁用包名列表中的待禁用包名从系统已安装包名数据库中删除,并对所述待禁用包名对应的待禁用应用进行禁用;

将当前应用安装目录中的应用包名与所述系统已安装包名数据库及所述当前禁用包名列表分别进行对比,并根据对比结果获得待加载包名;

将所述待加载包名加载至所述系统已安装包名数据库中,并对所述待加载包名对应的待加载应用进行启动,以实现将所述待禁用应用切换至所述待加载应用。

优选地,所述将当前应用安装目录中的应用包名与所述系统已安装包名数据库及所述当前禁用包名列表分别进行对比,并根据对比结果获得待加载包名,具体包括:

将当前应用安装目录中的应用包名与所述系统已安装包名数据库进行对比;

若所述应用包名不属于所述系统已安装包名数据库,则将所述应用包名与所述当前禁用包名列表进行对比;

若所述应用包名不属于所述当前禁用包名列表,则将所述应用包名作为待加载包名。

优选地,所述若所述应用包名不属于所述系统已安装包名数据库,则将所述应用包名与所述当前禁用包名列表进行对比之后,所述应用实时切换方法还包括:

若所述应用包名属于所述当前禁用包名列表,则抛出异常,禁止将所述应用包名加载至所述系统已安装包名数据库中。

优选地,所述将所述待加载包名加载至所述系统已安装包名数据库中,并对所述待加载包名对应的待加载应用进行启动,以实现将所述待禁用应用切换至所述待加载应用,具体包括:

将所述待加载包名加载至所述系统已安装包名数据库中,并对所述待加载包名对应的待加载应用发送预设启动广播,以使所述待加载应用根据所述预设启动广播进行自启动,以实现将所述待禁用应用切换至所述待加载应用。

优选地,所述在获取到当前禁用包名列表时,将所述当前禁用包名列表中的待禁用包名从系统已安装包名数据库中删除,并对所述待禁用包名对应的待禁用应用进行禁用,具体包括:

接收服务器发送的当前禁用包名列表,或者,获取当前应用禁用信息,并根据所述当前应用禁用信息生成当前禁用包名列表;

将所述当前禁用包名列表中的待禁用包名从系统已安装包名数据库中删除,并对所述待禁用包名对应的待禁用应用进行禁用。

优选地,所述当前应用禁用信息包括:异常应用包名、正常应用包名和待切换应用包名中的至少一项;

相应地,所述获取当前应用禁用信息,并根据所述当前应用禁用信息生成当前禁用包名列表,具体包括:

检测系统应用是否出现异常,当检测到所述系统应用出现异常时,获取异常应用包名;

检测应用异常是否恢复,当检测到应用异常恢复时,获取正常应用包名;

获取待切换应用包名,根据所述异常应用包名、所述正常应用包名和/或所述待切换应用包名生成当前禁用包名列表。

优选地,所述当前应用安装目录包括:下载应用安装目录和系统应用预装目录。

此外,为实现上述目的,本发明还提供一种应用实时切换设备,所述应用实时切换设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的应用实时切换程序,所述应用实时切换程序被所述处理器执行时实现如上文所述应用实时切换方法的步骤。

此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有应用实时切换程序,所述应用实时切换程序被处理器执行时实现如上文所述应用实时切换方法的步骤。

此外,为实现上述目的,本发明还提供一种应用实时切换装置,所述应用实时切换装置包括:

包名删除模块,用于在获取到当前禁用包名列表时,将所述当前禁用包名列表中的待禁用包名从系统已安装包名数据库中删除,并对所述待禁用包名对应的待禁用应用进行禁用;

包名对比模块,用于将当前应用安装目录中的应用包名与所述系统已安装包名数据库及所述当前禁用包名列表分别进行对比,并根据对比结果获得待加载包名;

应用切换模块,用于将所述待加载包名加载至所述系统已安装包名数据库中,并对所述待加载包名对应的待加载应用进行启动,以实现将所述待禁用应用切换至所述待加载应用。

在本发明中,通过在获取到当前禁用包名列表时,将当前禁用包名列表中的待禁用包名从系统已安装包名数据库中删除,并对待禁用包名对应的待禁用应用进行禁用;将当前应用安装目录中的应用包名与系统已安装包名数据库及当前禁用包名列表分别进行对比,并根据对比结果获得待加载包名;将待加载包名加载至系统已安装包名数据库中,并对待加载包名对应的待加载应用进行启动。通过在系统已安装包名数据库中删除待禁用包名,使得系统无法运行待禁用应用,由于待加载应用的文件仍保存于应用安装目录中,通过在该数据库中添加待加载包名,系统可运行待加载应用,从而有效地将待禁用应用切换至待加载应用。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的应用实时切换设备结构示意图;

图2为本发明应用实时切换方法第一实施例的流程示意图;

图3为本发明应用实时切换方法第二实施例的流程示意图;

图4为本发明应用实时切换方法第三实施例的流程示意图;

图5为本发明应用实时切换装置第一实施例的功能模块图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的应用实时切换设备结构示意图。

如图1所示,所述应用实时切换设备可以包括:处理器1001,例如cpu,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的结构并不构成对所述应用实时切换设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及应用实时切换程序。

在图1所示的应用实时切换设备中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接外设;所述应用实时切换设备通过处理器1001调用存储器1005中存储的应用实时切换程序,并执行本发明实施例提供的应用实时切换方法。

所述应用实时切换设备通过处理器1001调用存储器1005中存储的应用实时切换程序,并执行以下操作:

在获取到当前禁用包名列表时,将所述当前禁用包名列表中的待禁用包名从系统已安装包名数据库中删除,并对所述待禁用包名对应的待禁用应用进行禁用;

将当前应用安装目录中的应用包名与所述系统已安装包名数据库及所述当前禁用包名列表分别进行对比,并根据对比结果获得待加载包名;

将所述待加载包名加载至所述系统已安装包名数据库中,并对所述待加载包名对应的待加载应用进行启动,以实现将所述待禁用应用切换至所述待加载应用。

进一步地,处理器1001可以调用存储器1005中存储的应用实时切换程序,还执行以下操作:

将当前应用安装目录中的应用包名与所述系统已安装包名数据库进行对比;

若所述应用包名不属于所述系统已安装包名数据库,则将所述应用包名与所述当前禁用包名列表进行对比;

若所述应用包名不属于所述当前禁用包名列表,则将所述应用包名作为待加载包名。

进一步地,处理器1001可以调用存储器1005中存储的应用实时切换程序,还执行以下操作:

若所述应用包名属于所述当前禁用包名列表,则抛出异常,禁止将所述应用包名加载至所述系统已安装包名数据库中。

进一步地,处理器1001可以调用存储器1005中存储的应用实时切换程序,还执行以下操作:

将所述待加载包名加载至所述系统已安装包名数据库中,并对所述待加载包名对应的待加载应用发送预设启动广播,以使所述待加载应用根据所述预设启动广播进行自启动,以实现将所述待禁用应用切换至所述待加载应用。

进一步地,处理器1001可以调用存储器1005中存储的应用实时切换程序,还执行以下操作:

接收服务器发送的当前禁用包名列表,或者,获取当前应用禁用信息,并根据所述当前应用禁用信息生成当前禁用包名列表;

将所述当前禁用包名列表中的待禁用包名从系统已安装包名数据库中删除,并对所述待禁用包名对应的待禁用应用进行禁用。

进一步地,所述当前应用禁用信息包括:异常应用包名、正常应用包名和待切换应用包名中的至少一项;处理器1001可以调用存储器1005中存储的应用实时切换程序,还执行以下操作:

检测系统应用是否出现异常,当检测到所述系统应用出现异常时,获取异常应用包名;

检测应用异常是否恢复,当检测到应用异常恢复时,获取正常应用包名;

获取待切换应用包名,根据所述异常应用包名、所述正常应用包名和/或所述待切换应用包名生成当前禁用包名列表。

在本实施例中,通过在获取到当前禁用包名列表时,将当前禁用包名列表中的待禁用包名从系统已安装包名数据库中删除,并对待禁用包名对应的待禁用应用进行禁用;将当前应用安装目录中的应用包名与系统已安装包名数据库及当前禁用包名列表分别进行对比,并根据对比结果获得待加载包名;将待加载包名加载至系统已安装包名数据库中,并对待加载包名对应的待加载应用进行启动。通过在系统已安装包名数据库中删除待禁用包名,使得系统无法运行待禁用应用,由于待加载应用的文件仍保存于应用安装目录中,通过在该数据库中添加待加载包名,系统可运行待加载应用,从而有效地将待禁用应用切换至待加载应用。

基于上述硬件结构,提出本发明应用实时切换方法的实施例。

参照图2,图2为本发明应用实时切换方法第一实施例的流程示意图。

在第一实施例中,所述应用实时切换方法包括以下步骤:

步骤s10:在获取到当前禁用包名列表时,将所述当前禁用包名列表中的待禁用包名从系统已安装包名数据库中删除,并对所述待禁用包名对应的待禁用应用进行禁用。

需要说明的是,本实施例的执行主体是应用实时切换设备,所述应用实时切换设备可以是个人电脑或者智能手机等电子设备,本实施例对此不加以限制。本实施例的应用场景是,当检测到应用实时切换设备中的应用程序需要进行切换或者禁用时,根据待切换或待禁用的应用程序包名生成当前禁用包名列表,以使所述应用实时切换设备根据该当前禁用包名列表对应用程序进行切换或禁用。

可以理解的是,在安卓系统中,包名(packagename)是判断一个应用程序的唯一标识,所述系统已安装包名数据库存储有所述应用实时切换设备系统中已安装应用对应的包名,若应用程序的包名属于所述系统已安装包名数据库,则系统可以识别出该应用程序,并对该应用程序进行启动和运行;若应用程序的包名不属于所述系统已安装包名数据库,则系统无法识别出该应用程序,也无法对该应用程序进行启动和运行。

在具体实现中,所述当前禁用包名列表中包括待禁用应用对应的待禁用包名,为了对所述待禁用应用进行禁用,将所述当前禁用包名列表中的待禁用包名从系统已安装包名数据库中删除,以使系统无法识别出所述待禁用应用,从而对所述待禁用应用进行禁用。

步骤s20:将当前应用安装目录中的应用包名与所述系统已安装包名数据库及所述当前禁用包名列表分别进行对比,并根据对比结果获得待加载包名。

需要说明的是,在获取到历史禁用包名列表时,删除了所述系统已安装包名数据库中的历史禁用包名,当获取到所述当前禁用包名列表时,若历史禁用包名对应的历史禁用应用不再被禁用,将所述历史禁用应用作为待加载应用,并将该历史禁用包名作为待加载包名重新加载至所述系统已安装包名数据库中。

可以理解的是,所述当前应用安装目录为所述应用实时切换设备实际安装的应用程序对应的安装目录,所述当前应用安装目录中保存有应用程序的所有文件。所述待禁用包名从所述系统已安装包名数据库中删除,但不会从所述当前应用安装目录中删除,因此,为了在历史禁用包名中查找到待加载包名,将当前应用安装目录中的应用包名与所述系统已安装包名数据库及所述当前禁用包名列表分别进行对比,从而根据对比结果在历史禁用包名中查找到待加载包名。

步骤s30:将所述待加载包名加载至所述系统已安装包名数据库中,并对所述待加载包名对应的待加载应用进行启动,以实现将所述待禁用应用切换至所述待加载应用。

需要说明的是,由于待加载应用的文件均保存在所述当前应用安装目录中,即使将所述待加载包名从所述系统已安装包名数据库中删除,系统暂时无法对所述待加载应用进行启动和运行,但只要将所述待加载包名重新加载进所述系统已安装包名数据库中,所述待加载应用就能重新启动和运行。通过对所述待禁用应用进行禁用,并对所述待加载应用进行启动,从而实现将所述待禁用应用切换至所述待加载应用。

在本实施例中,通过在系统已安装包名数据库中删除待禁用包名,使得系统无法运行待禁用应用,由于待加载应用的文件仍保存于应用安装目录中,通过在系统已安装包名数据库中添加待加载包名,系统可运行待加载应用,从而有效地将所述待禁用应用切换至所述待加载应用。

参照图3,图3为本发明应用实时切换方法第二实施例的流程示意图,基于上述图2所示的实施例,提出本发明应用实时切换方法的第二实施例。

在第二实施例中,所述步骤s20,具体包括:

步骤s201:将当前应用安装目录中的应用包名与所述系统已安装包名数据库进行对比。

需要说明的是,所述当前应用安装目录为所述应用实时切换设备实际安装的应用程序对应的安装目录,所述当前应用安装目录中保存有应用程序的所有文件。所述待禁用包名从所述系统已安装包名数据库中删除,但不会从所述当前应用安装目录中删除,因此,为了在历史禁用包名中查找到待加载包名,将当前应用安装目录中的应用包名与所述系统已安装包名数据库及所述当前禁用包名列表分别进行对比。

步骤s202:若所述应用包名不属于所述系统已安装包名数据库,则将所述应用包名与所述当前禁用包名列表进行对比。

可以理解的是,将所述当前应用安装目录中的应用包名与所述系统已安装包名数据库进行对比,若所述应用包名属于所述系统已安装包名数据库,说明所述应用包名没有从所述系统已安装包名数据库中删除,所述应用包名不属于所述当前禁用包名列表,从而说明所述应用包名对应的应用属于正常运行的应用,无需禁用或重新加载。若所述应用包名不属于所述系统已安装包名数据库,说明所述应用包名已从所述系统已安装包名数据库中删除,将所述应用包名与所述当前禁用包名列表进行对比,从而判断该应用包名是否为待加载包名。

步骤s203:若所述应用包名不属于所述当前禁用包名列表,则将所述应用包名作为待加载包名。

需要说明的是,若所述应用包名不属于所述当前禁用包名列表,说明所述应用包名属于历史禁用包名列表,将所述应用包名作为待加载包名,以对所述应用包名对应的应用重新进行加载。

进一步地,所述步骤s202之后,所述方法还包括:

若所述应用包名属于所述当前禁用包名列表,则抛出异常,禁止将所述应用包名加载至所述系统已安装包名数据库中。

可以理解的是,若所述应用包名属于所述当前禁用包名列表,则说明该应用包名为待禁用包名,抛出异常,禁止将所述应用包名加载至所述系统已安装包名数据库中,从而保证不将待禁用包名加载进系统中,避免系统对所述待禁用应用进行启动和运行。

进一步地,所述步骤s30,具体包括:

将所述待加载包名加载至所述系统已安装包名数据库中,并对所述待加载包名对应的待加载应用发送预设启动广播,以使所述待加载应用根据所述预设启动广播进行自启动,以实现将所述待禁用应用切换至所述待加载应用。

需要说明的是,将所述待加载包名加载至所述系统已安装包名数据库之后,将对所述待加载包名对应的待加载应用发送预设启动广播,所述预设启动广播可为boot_complete广播,以使所述待加载应用根据所述预设启动广播进行自启动。

在本实施例中,通过将当前应用安装目录中的应用包名与所述系统已安装包名数据库及所述当前禁用包名列表分别进行对比,准确地从历史禁用包名中查找到待加载包名,并对所述待加载包名对应的待加载应用进行加载,从而提高了应用实时切换的效率。

参照图4,图4为本发明应用实时切换方法第三实施例的流程示意图,基于上述图3所示的实施例,提出本发明应用实时切换方法的第三实施例。

在第三实施例中,所述步骤s10,具体包括:

步骤s101:接收服务器发送的当前禁用包名列表,或者,获取当前应用禁用信息,并根据所述当前应用禁用信息生成当前禁用包名列表。

需要说明的是,所述当前禁用包名列表可以由服务器检测并生成后,下发至所述应用实时切换设备,也可以由所述应用实时切换设备自行检测生成,所述应用实时切换设备将预先在上述两种方式中选择并设置当前禁用包名列表的获取方式。

步骤s102:将所述当前禁用包名列表中的待禁用包名从系统已安装包名数据库中删除,并对所述待禁用包名对应的待禁用应用进行禁用。

可以理解的是,所述系统已安装包名数据库存储有所述应用实时切换设备系统中已安装应用对应的包名,若应用程序的包名属于所述系统已安装包名数据库,则系统可以识别出该应用程序,并对该应用程序进行启动和运行;若应用程序的包名不属于所述系统已安装包名数据库,则系统无法识别出该应用程序,也无法对该应用程序进行启动和运行。将所述当前禁用包名列表中的待禁用包名从系统已安装包名数据库中删除,以使系统无法识别出所述待禁用应用,从而对所述待禁用应用进行禁用。

进一步地,所述当前应用禁用信息包括:异常应用包名、正常应用包名和待切换应用包名中的至少一项;

相应地,所述获取当前应用禁用信息,并根据所述当前应用禁用信息生成当前禁用包名列表,具体包括:

检测系统应用是否出现异常,当检测到所述系统应用出现异常时,获取异常应用包名;

检测应用异常是否恢复,当检测到应用异常恢复时,获取正常应用包名;

获取待切换应用包名,根据所述异常应用包名、所述正常应用包名和/或所述待切换应用包名生成当前禁用包名列表。

需要说明的是,根据所述异常应用包名生成当前禁用包名列表,将根据该当前禁用包名列表对所述异常应用包名对应的异常应用进行禁用。根据所述正常应用包名生成当前禁用包名列表,将根据该当前禁用包名列表对所述正常应用包名对应的正常应用进行启动。根据所述待切换包名生成当前禁用包名列表,将根据该当前禁用包名列表对所述待切换应用进行切换。

进一步地,所述当前应用安装目录包括:下载应用安装目录和系统应用预装目录。

可以理解的是,所述系统应用预装目录为所述应用实时切换设备自带的预装应用对应的安装目录,保存有预装应用的所有文件,所述下载应用安装目录为用户自行下载的应用对应的安装目录,保存有下载的应用的所有文件。所述下载应用安装目录和系统应用预装目录包括了所述应用实时切换设备上的所有应用的安装目录,从而对所述应用实时切换设备中的任意应用进行禁用或者切换。

在本实施例中,通过接收服务器下发的当前禁用包名列表或者根据当前应用禁用信息生成当前禁用包名列表,能够及时获取到准确的应用切换信息,从而提高了应用实时切换的效率和准确率。

此外,本发明实施例还提出一种存储介质,所述存储介质上存储有应用实时切换程序,所述应用实时切换程序被处理器执行时实现如下操作:

在获取到当前禁用包名列表时,将所述当前禁用包名列表中的待禁用包名从系统已安装包名数据库中删除,并对所述待禁用包名对应的待禁用应用进行禁用;

将当前应用安装目录中的应用包名与所述系统已安装包名数据库及所述当前禁用包名列表分别进行对比,并根据对比结果获得待加载包名;

将所述待加载包名加载至所述系统已安装包名数据库中,并对所述待加载包名对应的待加载应用进行启动,以实现将所述待禁用应用切换至所述待加载应用。

进一步地,所述应用实时切换程序被处理器执行时还实现如下操作:

将当前应用安装目录中的应用包名与所述系统已安装包名数据库进行对比;

若所述应用包名不属于所述系统已安装包名数据库,则将所述应用包名与所述当前禁用包名列表进行对比;

若所述应用包名不属于所述当前禁用包名列表,则将所述应用包名作为待加载包名。

进一步地,所述应用实时切换程序被处理器执行时还实现如下操作:

若所述应用包名属于所述当前禁用包名列表,则抛出异常,禁止将所述应用包名加载至所述系统已安装包名数据库中。

进一步地,所述应用实时切换程序被处理器执行时还实现如下操作:

将所述待加载包名加载至所述系统已安装包名数据库中,并对所述待加载包名对应的待加载应用发送预设启动广播,以使所述待加载应用根据所述预设启动广播进行自启动,以实现将所述待禁用应用切换至所述待加载应用。

进一步地,所述应用实时切换程序被处理器执行时还实现如下操作:

接收服务器发送的当前禁用包名列表,或者,获取当前应用禁用信息,并根据所述当前应用禁用信息生成当前禁用包名列表;

将所述当前禁用包名列表中的待禁用包名从系统已安装包名数据库中删除,并对所述待禁用包名对应的待禁用应用进行禁用。

进一步地,所述当前应用禁用信息包括:异常应用包名、正常应用包名和待切换应用包名中的至少一项;

所述应用实时切换程序被处理器执行时还实现如下操作:

检测系统应用是否出现异常,当检测到所述系统应用出现异常时,获取异常应用包名;

检测应用异常是否恢复,当检测到应用异常恢复时,获取正常应用包名;

获取待切换应用包名,根据所述异常应用包名、所述正常应用包名和/或所述待切换应用包名生成当前禁用包名列表。

在本实施例中,通过在获取到当前禁用包名列表时,将当前禁用包名列表中的待禁用包名从系统已安装包名数据库中删除,并对待禁用包名对应的待禁用应用进行禁用;将当前应用安装目录中的应用包名与系统已安装包名数据库及当前禁用包名列表分别进行对比,并根据对比结果获得待加载包名;将待加载包名加载至系统已安装包名数据库中,并对待加载包名对应的待加载应用进行启动。通过在系统已安装包名数据库中删除待禁用包名,使得系统无法运行待禁用应用,由于待加载应用的文件仍保存于应用安装目录中,通过在该数据库中添加待加载包名,系统可运行待加载应用,从而有效地将待禁用应用切换至待加载应用。

参照图5,图5为本发明应用实时切换装置第一实施例的功能模块图,基于所述应用实时切换方法,提出本发明应用实时切换装置的第一实施例。

在本实施例中,所述应用实时切换装置包括:

包名删除模块10,用于在获取到当前禁用包名列表时,将所述当前禁用包名列表中的待禁用包名从系统已安装包名数据库中删除,并对所述待禁用包名对应的待禁用应用进行禁用。

需要说明的是,本实施例的应用场景是,当检测到应用实时切换设备中的应用程序需要进行切换或者禁用时,根据待切换或待禁用的应用程序包名生成当前禁用包名列表,以使所述应用实时切换设备根据该当前禁用包名列表对应用程序进行切换或禁用。

可以理解的是,在安卓系统中,包名(packagename)是判断一个应用程序的唯一标识,所述系统已安装包名数据库存储有所述应用实时切换设备系统中已安装应用对应的包名,若应用程序的包名属于所述系统已安装包名数据库,则系统可以识别出该应用程序,并对该应用程序进行启动和运行;若应用程序的包名不属于所述系统已安装包名数据库,则系统无法识别出该应用程序,也无法对该应用程序进行启动和运行。

在具体实现中,所述当前禁用包名列表中包括待禁用应用对应的待禁用包名,为了对所述待禁用应用进行禁用,将所述当前禁用包名列表中的待禁用包名从系统已安装包名数据库中删除,以使系统无法识别出所述待禁用应用,从而对所述待禁用应用进行禁用。

包名对比模块20,用于将当前应用安装目录中的应用包名与所述系统已安装包名数据库及所述当前禁用包名列表分别进行对比,并根据对比结果获得待加载包名。

需要说明的是,在获取到历史禁用包名列表时,删除了所述系统已安装包名数据库中的历史禁用包名,当获取到所述当前禁用包名列表时,若历史禁用包名对应的历史禁用应用不再被禁用,将所述历史禁用应用作为待加载应用,并将该历史禁用包名作为待加载包名重新加载至所述系统已安装包名数据库中。

可以理解的是,所述当前应用安装目录为所述应用实时切换设备实际安装的应用程序对应的安装目录,所述当前应用安装目录中保存有应用程序的所有文件。所述待禁用包名从所述系统已安装包名数据库中删除,但不会从所述当前应用安装目录中删除,因此,为了在历史禁用包名中查找到待加载包名,将当前应用安装目录中的应用包名与所述系统已安装包名数据库及所述当前禁用包名列表分别进行对比,从而根据对比结果在历史禁用包名中查找到待加载包名。

应用切换模块30,用于将所述待加载包名加载至所述系统已安装包名数据库中,并对所述待加载包名对应的待加载应用进行启动,以实现将所述待禁用应用切换至所述待加载应用。

需要说明的是,由于待加载应用的文件均保存在所述当前应用安装目录中,即使将所述待加载包名从所述系统已安装包名数据库中删除,系统暂时无法对所述待加载应用进行启动和运行,但只要将所述待加载包名重新加载进所述系统已安装包名数据库中,所述待加载应用就能重新启动和运行。通过对所述待禁用应用进行禁用,并对所述待加载应用进行启动,从而实现将所述待禁用应用切换至所述待加载应用。

在本实施例中,通过在系统已安装包名数据库中删除待禁用包名,使得系统无法运行待禁用应用,由于待加载应用的文件仍保存于应用安装目录中,通过在系统已安装包名数据库中添加待加载包名,系统可运行待加载应用,从而有效地将所述待禁用应用切换至所述待加载应用。

在一实施例中,所述包名对比模块20,还用于将当前应用安装目录中的应用包名与所述系统已安装包名数据库进行对比;若所述应用包名不属于所述系统已安装包名数据库,则将所述应用包名与所述当前禁用包名列表进行对比;若所述应用包名不属于所述当前禁用包名列表,则将所述应用包名作为待加载包名。

在一实施例中,所述包名对比模块20,还用于若所述应用包名属于所述当前禁用包名列表,则抛出异常,禁止将所述应用包名加载至所述系统已安装包名数据库中。

在一实施例中,所述应用切换模块30,还用于将所述待加载包名加载至所述系统已安装包名数据库中,并对所述待加载包名对应的待加载应用发送预设启动广播,以使所述待加载应用根据所述预设启动广播进行自启动,以实现将所述待禁用应用切换至所述待加载应用。

在一实施例中,所述包名删除模块10,还用于接收服务器发送的当前禁用包名列表,或者,获取当前应用禁用信息,并根据所述当前应用禁用信息生成当前禁用包名列表;将所述当前禁用包名列表中的待禁用包名从系统已安装包名数据库中删除,并对所述待禁用包名对应的待禁用应用进行禁用。

在一实施例中,所述当前应用禁用信息包括:异常应用包名、正常应用包名和待切换应用包名中的至少一项;

所述包名删除模块10,还用于检测系统应用是否出现异常,当检测到所述系统应用出现异常时,获取异常应用包名;检测应用异常是否恢复,当检测到应用异常恢复时,获取正常应用包名;获取待切换应用包名,根据所述异常应用包名、所述正常应用包名和/或所述待切换应用包名生成当前禁用包名列表。

在一实施例中,所述当前应用安装目录包括:下载应用安装目录和系统应用预装目录。

本发明所述应用实时切换装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

单词第一、第二、以及第三等的使用不表示任何顺序,可将这些单词解释为名称。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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