著录项信息
专利名称 | 后台应用程序的控制方法、装置及终端设备 |
申请号 | CN201410436455.8 | 申请日期 | 2014-08-29 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2014-12-24 | 公开/公告号 | CN104239094A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/445 | IPC分类号 | G;0;6;F;9;/;4;4;5查看分类表>
|
申请人 | 小米科技有限责任公司 | 申请人地址 | 北京市海淀区清河中街68号华润五彩城购物中心二期13层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 小米科技有限责任公司 | 当前权利人 | 小米科技有限责任公司 |
发明人 | 袁军;李明浩;梁金祥;陶建涛 |
代理机构 | 北京弘权知识产权代理事务所(普通合伙) | 代理人 | 逯长明;许伟群 |
摘要
本公开是关于一种后台应用程序的控制方法、装置及终端设备,该方法包括:根据操作系统中正在运行的应用程序建立程序列表;遍历程序列表中的标识;遍历到的标识为当前标识,确定当前标识对应的应用程序是否为后台应用程序;当当前标识对应的应用程序为后台应用程序时,确定预设的白名单中是否保存当前标识、以及程序列表中对应的应用程序为后台应用程序的标识的个数是否超过预设阈值;当白名单中保存当前标识且个数超过预设阈值时,从程序列表中选取对应的应用程序为后台应用程序的一个标识,关闭选取的标识对应的应用程序;当白名单中未保存当前标识且个数超过预设阈值时,关闭当前标识对应的应用程序。该方案能够更好地控制后台应用程序。
后台应用程序的控制方法、装置及终端设备\n技术领域\n[0001] 本公开涉及终端设备技术领域,尤其涉及一种后台应用程序的控制方法、装置及终端设备。\n背景技术\n[0002] 随着终端设备朝着智能化的方向发展,应用程序(Application,APP)越来越多,用户享受到了终端设备智能化带来的便捷。用户在使用终端设备时,习惯将一些常用应用程序一直保持后台运行状态,常用应用程序包括微博、微信、QQ等等,终端设备上保持后台运行状态的应用程序可以称为后台应用程序,当后台应程序数量较少时,占用终端设备的内存资源也较少;当后台应用程序数量较多时,占用终端设备的内存资源也较多,会影响终端设备的处理速度,因此,如何控制终端设备的后台应用程序变得非常重要。\n[0003] 相关技术中控制后台应用程序的方法是:设置最大阈值,终端设备监控后台应用程序的数量是否超过最大阈值,若后台应用程序的数量小于或等于最大阈值,允许后台应用程序保持后台运行状态;若后台应用程序的数量大于最大阈值,则会结束占用内存最大的后台应用程序。例如,最大阈值为25,若后台应用程序的数量为24,则允许后台应用程序保持后台运行状态;若后台应用程序的数量为26,则会结束占用内存最大的后台应用程序,以释放内存。\n[0004] 上述方法中,仅仅是根据后台应用程序的数量是否超过最大阈值来确定是否要结束某个后台应用程序,在后台应用程序大于最大阈值时,会结束占用内存最大的后台应用程序,而占用内存最大的后台应用程序可能是用户希望一直保持后台运行状态的,结束这些后台应用程序会影响用户体验。因此,上述方法并不能很好地控制终端设备的后台应用程序,影响用户体验。\n发明内容\n[0005] 为克服相关技术中存在的问题,本公开提供一种后台应用程序的控制方法、装置及终端设备。\n[0006] 根据本公开实施例的第一方面,提供一种后台应用程序的控制方法,包括:\n[0007] 根据操作系统中正在运行的应用程序建立程序列表,所述程序列表中至少保存有所述操作系统中正在运行的应用程序的标识;\n[0008] 遍历所述程序列表中的标识;\n[0009] 遍历到的标识为当前标识,确定所述当前标识对应的应用程序是否为后台应用程序;\n[0010] 当所述当前标识对应的应用程序为后台应用程序时,确定预设的白名单中是否保存所述当前标识、以及所述程序列表中对应的应用程序为后台应用程序的标识的个数是否超过预设阈值,所述白名单中保存的是用户指定的后台应用程序的标识;\n[0011] 当所述白名单中保存所述当前标识且所述个数超过所述预设阈值时,从所述程序列表中选取对应的应用程序为后台应用程序的一个标识,关闭选取的标识对应的应用程序;\n[0012] 当所述白名单中未保存所述当前标识且所述个数超过所述预设阈值时,关闭所述当前标识对应的应用程序。\n[0013] 结合第一方面,在第一方面的第一种可能的实现方式中,所述根据操作系统中正在运行的应用程序建立程序列表的步骤包括:\n[0014] 计算操作系统中正在运行的每个应用程序的运行状态优先级,所述运行状态优先级由高到低排序为前台、可见、可感知、后台;\n[0015] 按照应用程序的运行状态优先级由高到低的顺序排列应用程序的标识,得到程序列表。\n[0016] 结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述确定所述当前标识对应的应用程序是否为后台应用程序的步骤包括:\n[0017] 获取所述当前标识对应的应用程序的运行状态优先级;\n[0018] 当所述当前标识对应的应用程序的运行状态优先级为后台时,确定所述当前标识对应的应用程序为后台应用程序。\n[0019] 结合第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述从所述程序列表中选取对应的应用程序为后台应用程序的一个标识的步骤包括:\n[0020] 在所述程序列表中查找位于所述当前标识之前且所述白名单中未保存的标识;\n[0021] 当查找到至少一个位于所述当前标识之前且所述白名单中未保存的标识时,选取查找到的任一标识或者选取查找到的距离所述当前标识最近的标识;\n[0022] 当未查找到位于所述当前标识之前且所述白名单中未保存的标识时,选取所述当前标识。\n[0023] 结合第一方面,在第一方面的第四种可能的实现方式中,所述方法还包括:\n[0024] 当所述白名单中保存所述当前标识且所述个数未超过所述预设阈值时,获取所述当前标识对应的应用程序的不活跃时长;\n[0025] 确定所述不活跃时长是否超过第一预设时长;\n[0026] 当所述不活跃时长超过所述第一预设时长时,关闭所述当前标识对应的应用程序。\n[0027] 结合第一方面的第四种可能的实现方式中,在第一方面的第五种可能的实现方式中,所述方法还包括:\n[0028] 当所述不活跃时长未超过所述第一预设时长时,检测所述不活跃时长是否超过第二预设时长;\n[0029] 当所述不活跃时长超过所述第二预设时长时,释放所述当前标识对应的应用程序中的用户界面所占用的内存,所述第二预设时长小于所述第一预设时长。\n[0030] 结合第一方面,在第一方面的第六种可能的实现方式中,所述方法还包括:\n[0031] 当所述白名单中未保存所述当前标识且所述个数未超过所述预设阈值时,获取所述当前标识对应的应用程序的不活跃时长;\n[0032] 确定所述不活跃时长是否超过第三预设时长;\n[0033] 当所述不活跃时长超过所述第三预设时长时,释放所述当前标识对应的应用程序中的用户界面所占用的内存。\n[0034] 结合第一方面的第四种可能的实现方式、第一方面的第五种可能的实现方式或者第一方面的第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述获取所述当前标识对应的应用程序的不活跃时长的步骤包括:\n[0035] 统计所述当前标识对应的应用程序的进程未与所述操作系统中其他进程交互的时长;\n[0036] 将统计的时长确定为所述当前标识对应的应用程序的不活跃时长。\n[0037] 根据本公开实施例的第二方面,提供一种后台应用程序的控制装置,包括:\n[0038] 建立单元,用于根据操作系统中正在运行的应用程序建立程序列表,所述程序列表中至少保存有所述操作系统中正在运行的应用程序的标识;\n[0039] 遍历单元,用于遍历所述程序列表中的标识;\n[0040] 第一确定单元,用于遍历到的标识为当前标识,确定所述当前标识对应的应用程序是否为后台应用程序;\n[0041] 第二确定单元,用于当所述当前标识对应的应用程序为后台应用程序时,确定预设的白名单中是否保存所述当前标识、以及所述程序列表中对应的应用程序为后台应用程序的标识的个数是否超过预设阈值,所述白名单中保存的是用户指定的后台应用程序的标识;\n[0042] 第一关闭单元,用于当所述白名单中保存所述当前标识且所述个数超过所述预设阈值时,从所述程序列表中选取对应的应用程序为后台应用程序的一个标识,关闭选取的标识对应的应用程序;当所述白名单中未保存所述当前标识且所述个数超过所述预设阈值时,关闭所述当前标识对应的应用程序。\n[0043] 结合第二方面,在第二方面的第一种可能的实现方式中,所述建立单元包括:\n[0044] 计算子单元,用于计算操作系统中正在运行的每个应用程序的运行状态优先级,所述运行状态优先级由高到低排序为前台、可见、可感知、后台;\n[0045] 排序子单元,用于按照应用程序的运行状态优先级由高到低的顺序排列应用程序的标识,得到程序列表。\n[0046] 结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述第一确定单元包括:\n[0047] 获取子单元,用于获取所述当前标识对应的应用程序的运行状态优先级;\n[0048] 第一确定子单元,用于当所述当前标识对应的应用程序的运行状态优先级为后台时,确定所述当前标识对应的应用程序为后台应用程序。\n[0049] 结合第二方面的第一种可能的实现方式或者第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述第一关闭单元包括:\n[0050] 查找子单元,用于在所述程序列表中查找位于所述当前标识之前且所述白名单中未保存的标识;\n[0051] 选取子单元,用于当查找到至少一个位于所述当前标识之前且所述白名单中未保存的标识时,选取查找到的任一标识或者选取查找到的距离所述当前标识最近的标识;当未查找到位于所述当前标识之前且所述白名单中未保存的标识时,选取所述当前标识。\n[0052] 结合第二方面,在第二方面的第四种可能的实现方式中,所述装置还包括:\n[0053] 第一获取单元,用于当所述白名单中保存所述当前标识且所述个数未超过所述预设阈值时,获取所述当前标识对应的应用程序的不活跃时长;\n[0054] 第三确定单元,用于确定所述不活跃时长是否超过第一预设时长;\n[0055] 第二关闭单元,用于当所述不活跃时长超过所述第一预设时长时,关闭所述当前标识对应的应用程序。\n[0056] 结合第二方面的第四种可能的实现方式中,在第二方面的第五种可能的实现方式中,所述装置还包括:\n[0057] 检测单元,用于当所述不活跃时长未超过所述第一预设时长时,检测所述不活跃时长是否超过第二预设时长;\n[0058] 第一释放单元,用于当所述不活跃时长超过所述第二预设时长时,释放所述当前标识对应的应用程序中的用户界面所占用的内存,所述第二预设时长小于所述第一预设时长。\n[0059] 结合第二方面,在第二方面的第六种可能的实现方式中,所述装置还包括:\n[0060] 第二获取单元,用于当所述白名单中未保存所述当前标识且所述个数未超过所述预设阈值时,获取所述当前标识对应的应用程序的不活跃时长;\n[0061] 第四确定单元,用于确定所述不活跃时长是否超过第三预设时长;\n[0062] 第二释放单元,用于当所述不活跃时长超过所述第三预设时长时,释放所述当前标识对应的应用程序中的用户界面所占用的内存。\n[0063] 结合第二方面的第四种可能的实现方式、第二方面的第五种可能的实现方式或者第二方面的第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述第一获取单元和所述第二获取单元包括:\n[0064] 统计子单元,用于统计所述当前标识对应的应用程序的进程未与所述操作系统中其他进程交互的时长;\n[0065] 第二确定子单元,用于将统计的时长确定为所述当前标识对应的应用程序的不活跃时长。\n[0066] 根据本公开实施例的第三方面,提供一种终端设备,包括:\n[0067] 处理器;\n[0068] 用于存储处理器可执行指令的存储器:\n[0069] 其中,所述处理器被配置为:\n[0070] 根据操作系统中正在运行的应用程序建立程序列表,所述程序列表中至少保存有所述操作系统中正在运行的应用程序的标识;\n[0071] 遍历所述程序列表中的标识;\n[0072] 遍历到的标识为当前标识,确定所述当前标识对应的应用程序是否为后台应用程序;\n[0073] 当所述当前标识对应的应用程序为后台应用程序时,确定预设的白名单中是否保存所述当前标识、以及所述程序列表中对应的应用程序为后台应用程序的标识的个数是否超过预设阈值,所述白名单中保存的是用户指定的后台应用程序的标识;\n[0074] 当所述白名单中保存所述当前标识且所述个数超过所述预设阈值时,从所述程序列表中选取对应的应用程序为后台应用程序的一个标识,关闭选取的标识对应的应用程序;\n[0075] 当所述白名单中未保存所述当前标识且所述个数超过所述预设阈值时,关闭所述当前标识对应的应用程序。\n[0076] 本公开的实施例提供的技术方案可以包括以下有益效果:终端设备在确定要关闭的后台应用程序时,不仅考虑后台应用程序的数量是否超过预设阈值,还需要考虑该后台应用程序的标识是否保存在预设的白名单中,白名单中保存的是用户指定的后台应用程序的标识,也就是说这些白名单中的标识对应的后台应用程序是用户不希望关闭的,对于遍历到的当前标识,当白名单中保存当前标识且后台应用程序的个数超过预设阈值时,选取一个后台应用程序并关闭;当白名单中未保存当前标识且后台应用程序的个数超过预设阈值时,关闭当前标识对应的应用程序,由于不会轻易关闭用户指定的后台应用程序,相对于相关技术中结束占用内存最大且可能是用户指定的后台应用程序的方法,能够更好地控制后台应用程序,提升用户体验。\n[0077] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。\n附图说明\n[0078] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。\n[0079] 图1是根据一示例性实施例示出的一种后台应用程序的控制方法的流程图。\n[0080] 图2是根据一示例性实施例示出的另一种后台应用程序的控制方法的流程图。\n[0081] 图3是根据一示例性实施例示出的一种后台应用程序的控制装置的框图。\n[0082] 图4是根据一示例性实施例示出的一种终端设备的框图。\n具体实施方式\n[0083] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。\n[0084] 图1是根据一示例性实施例示出的一种后台应用程序的控制方法的流程图,如图1所示,该方法用于终端设备中,包括以下步骤。\n[0085] 在步骤S11中,根据操作系统中正在运行的应用程序建立程序列表。\n[0086] 终端设备上通常会安装操作系统,常用的有安卓系统、Windows系统、IOS系统等等;终端设备上通常还会安装很多应用程序来满足用户的各种需求,用户也会安装自己需要的应用程序,这些应用程序需要在终端设备的操作系统中才能运行,因此在控制后台应用程序时,可以首先根据操作系统中正在运行的应用程序建立程序列表,将操作系统中正在运行的应用程序的标识保存在程序列表中,应用程序的标识可以但不限于是应用程序的名称、图标等等信息。\n[0087] 程序列表中可以保存操作系统中正在运行的应用程序的标识、上一次被激活的时间、运行状态优先级等信息,至少保存有操作系统中正在运行的应用程序的标识。\n[0088] 在步骤S12中,遍历程序列表中的标识。\n[0089] 在步骤S13中,遍历到的标识为当前标识,确定当前标识对应的应用程序是否为后台应用程序。\n[0090] 可以遍历程序列表中的标识,遍历到的标识为当前标识,由于本发明是对后台应用程序进行控制,因此,可以首先确定当前标识对应的应用程序是否是后台应用程序。\n[0091] 当当前标识对应的应用程序为后台应用程序时,在步骤S14中,确定预设的白名单中是否保存当前标识、以及程序列表中对应的应用程序为后台应用程序的标识的个数是否超过预设阈值。\n[0092] 当当前标识对应的应用程序不为后台应用程序时,执行步骤S12。\n[0093] 白名单中保存的是用户指定的后台应用程序的标识,即用户不希望关闭的后台应用程序的标识,例如,用户指定的后台应用程序为QQ、微信、飞信、百度地图等等,白名单中可以保存QQ、微信、飞信、百度地图等等应用程序的标识。\n[0094] 预设阈值可以根据终端设备的硬件配置和实际需要进行设定,例如可以设置为10个、20个、25个等等。\n[0095] 当白名单中保存当前标识且所述个数超过预设阈值时,在步骤S15中,从程序列表中选取对应的应用程序为后台应用程序的一个标识,关闭选取的标识对应的应用程序。\n[0096] 若白名单中保存当前标识且程序列表中对应的应用程序为后台应用程序的标识的个数超过预设阈值,为了保证操作系统的正常运行和用户体验,可以选取一个后台应用程序,并关闭选取的后台应用程序。\n[0097] 当白名单中未保存当前标识且所述个数超过预设阈值时,在步骤S16中,关闭当前标识对应的应用程序。\n[0098] 若白名单中未保存当前标识且程序列表中对应的应用程序为后台应用程序的标识的个数超过预设阈值,可以直接关闭当前标识对应的应用程序,由于白名单中未保存当前标识,也就是说当前标识对应的应用程序不是用户指定的后台应用程序,因此可以直接关闭,从而节省内存资源,提升用户体验。\n[0099] 当白名单中保存当前标识且所述个数未超过预设阈值时,以及当白名单中未保存当前标识且所述个数未超过预设阈值时,执行步骤S12。\n[0100] 该方案中,终端设备在确定要关闭的后台应用程序时,不仅考虑后台应用程序的数量是否超过预设阈值,还需要考虑该后台应用程序的标识是否保存在预设的白名单中,白名单中保存的是用户指定的后台应用程序的标识,也就是说这些白名单中的标识对应的后台应用程序是用户不希望关闭的,对于遍历到的当前标识,当白名单中保存当前标识且后台应用程序的个数超过预设阈值时,选取一个后台应用程序并关闭;当白名单中未保存当前标识且后台应用程序的个数超过预设阈值时,关闭当前标识对应的应用程序,由于不会轻易关闭用户指定的后台应用程序,相对于相关技术中结束占用内存最大且可能是用户指定的后台应用程序的方法,能够更好地控制后台应用程序,提升用户体验。\n[0101] 可选的,在S11中根据操作系统中正在运行的应用程序建立程序列表的步骤包括:\n[0102] 计算操作系统中正在运行的每个应用程序的运行状态优先级;\n[0103] 按照应用程序的运行状态优先级由高到低的顺序排列应用程序的标识,得到程序列表。\n[0104] 通常应用程序的运行状态优先级由高到低排序为前台、可见、可感知、后台,因此终端设备可以计算操作系统中正在运行的每个应用程序的运行状态优先级,然后按照应用程序的运行状态优先级由高到低的顺序排列应用程序的标识,从而得到程序列表。\n[0105] 这里仅仅是列举了一种程序列表的建立方法,还有其它多种方法建立程序列表,例如还可以按照应用程序的运行状态优先级由低到高的顺序排列应用程序的标识,从而得到程序列表,其它建立程序列表的方法这里不再一一说明。\n[0106] 由于操作系统中正在运行的应用程序在短时间内变化比较小,因此,为了节省资源,终端设备可以设定周期计算操作系统中正在运行的每个应用程序的运行状态优先级,设定周期可以根据实际需要进行设定,例如,设置为30秒、45秒、60秒等等。\n[0107] 可选的,在S13中确定当前标识对应的应用程序是否为后台应用程序的步骤包括:\n[0108] 获取当前标识对应的应用程序的运行状态优先级;\n[0109] 当当前标识对应的应用程序的运行状态优先级为后台时,确定当前标识对应的应用程序为后台应用程序。\n[0110] 由于终端设备可以计算操作系统中正在运行的应用程序的运行状态优先级,因此可以根据当前标识对应的应用程序的运行状态优先级来确定后台应用程序,即将运行状态优先级为后台的应用程序确定为后台应用程序。\n[0111] 可选的,在S15中从程序列表中选取对应的应用程序为后台应用程序的一个标识的步骤包括:\n[0112] 在程序列表中查找位于当前标识之前且白名单中未保存的标识;\n[0113] 当查找到至少一个位于当前标识之前且白名单中未保存的标识时,选取查找到的任一标识或者选取查找到的距离当前标识最近的标识;\n[0114] 当未查找到位于当前标识之前且白名单中未保存的标识时,选取当前标识。\n[0115] 在程序列表中选取对应的应用程序为后台应用程序的一个标识时,可以首先在程序列表中查找位于当前标识之前且白名单中未保存的标识,也就是首先查找一个用户未指定的后台应用程序,若查找到至少一个标识,就可以选取查找到的任一标识或者选取查找到的距离当前标识最近的标识;若未查找,即当前标识之前的标识对应的后台应用程序都是用户指定的后台应用程序,则选取当前标识。\n[0116] 可选的,所述方法还包括:\n[0117] 当白名单中保存当前标识且所述个数未超过预设阈值时,获取当前标识对应的应用程序的不活跃时长;\n[0118] 确定不活跃时长是否超过第一预设时长;\n[0119] 当不活跃时长超过第一预设时长时,关闭当前标识对应的应用程序。\n[0120] 为了避免内存资源的浪费,对于白名单中保存当前标识且所述个数未超过预设阈值的情况,还可以获取当前标识对应的应用程序的不活跃时长,如果该不活跃时长超过第一预设时长,就可以直接关闭当前标识对应的应用程序,也就是说,即使白名单中保存当前标识且所述个数未超过预设阈值,在当前标识对应的应用程序长时间不活跃的情况下,也可以关闭。第一预设时长可以根据实际需要进行设定,例如可以设定为3分钟、5分钟、10分钟等等。\n[0121] 例如,对于QQ,用户在使用完之后转为后台运行状态,若不活跃时长超过10分钟,虽然白名单中保存了QQ的标识,但是仍可以关闭QQ,以节省内存资源。\n[0122] 可选的,所述方法还包括:\n[0123] 当不活跃时长未超过第一预设时长时,检测不活跃时长是否超过第二预设时长;\n[0124] 当不活跃时长超过第二预设时长时,释放当前标识对应的应用程序中的用户界面所占用的内存,第二预设时长小于第一预设时长。\n[0125] 继续沿用上例,当不活跃时长未超过第一预设时长时,还可以继续检测不活跃时长是否超过第二预设时长,第二预设时长要小于第一预设时长,若超过,释放当前标识对应的应用程序中的用户界面所占用的内存;若未超过,可以遍历程序列表中的下一个标识。第二预设时长可以根据实际需要进行设定,例如可以设定为3分钟、5分钟、10分钟等等。\n[0126] 例如,例如,对于QQ,用户在使用完之后转为后台运行状态,若不活跃时长超过5分钟,虽然白名单中保存了QQ的标识,但是仍可以释放QQ的用户界面占用的内存,以节省内存资源。\n[0127] 应用程序一般包括两部分:逻辑代码和用户界面(User Interface,UI),UI通常包括图片、动画等元素,正常情况下这两部分都会存储在内存中。在安卓系统,UI主要是应用组件(Activities),Activities是用于存放应用程序的UI的容器。由于逻辑代码占用内存较小,因此在本发明中不销毁应用程序的逻辑代码,而是释放不活跃时长超过第二预设时长的应用程序的UI占用的内存,从而可以节省大量内存,当该应用程序的运行状态变为前台时,由于保存了应用程序的逻辑代码,可以自动重建UI,不影响用户使用。\n[0128] 可选的,所述方法还包括:\n[0129] 当白名单中未保存当前标识且所述个数未超过预设阈值时,获取当前标识对应的应用程序的不活跃时长;\n[0130] 确定不活跃时长是否超过第三预设时长;\n[0131] 当不活跃时长超过第三预设时长时,释放当前标识对应的应用程序中的用户界面所占用的内存。\n[0132] 相应地,为了节省内存资源,对于白名单中未保存当前标识且所述个数未超过预设阈值的情况,还可以获取当前标识对应的应用程序的不活跃时长,如果该不活跃时长超过第三预设时长,就可以释放当前标识对应的应用程序中的用户界面所占用的内存。\n[0133] 第三预设时长可以根据实际需要进行设定,例如可以设定为3分钟、5分钟、10分钟等等。\n[0134] 例如,对于计算器,用户在使用完之后转为后台运行状态,若不活跃时长超过5分钟,由于白名单中未保存计算器的标识,可以释放计算器的用户界面所占用的内存,以节省内存资源。\n[0135] 可选的,上述获取当前标识对应的应用程序的不活跃时长的步骤包括:\n[0136] 统计当前标识对应的应用程序的进程未与操作系统中其他进程交互的时长;\n[0137] 将统计的时长确定为当前标识对应的应用程序的不活跃时长。\n[0138] 应用程序的不活跃状态是指应用程序的进程未与操作系统中其他进程交互的状态,交互可以包括发送数据请求、响应其他进程发送的数据请求、通信请求等。可以通过统计当前标识对应的应用程序的进程未与操作系统中其他进程交互的时长,得到当前标识对应的应用程序的不活跃时长。\n[0139] 图2是根据一示例性实施例示出的另一种后台应用程序的控制方法的流程图,如图2所示,该方法用于终端设备中,包括以下步骤。\n[0140] 在步骤S21中,计算操作系统中正在运行的每个应用程序的运行状态优先级。\n[0141] 通常应用程序的运行状态优先级由高到低排序为前台、可见、可感知、后台。不同的操作系统计算应用程序的运行状态优先级的方法可能不同,以安卓系统为例,可以通过组件管理服务(Activity Manager Service)计算应用程序的运行状态优先级。\n[0142] 在步骤S22中,按照应用程序的运行状态优先级由高到低的顺序排列应用程序的标识,得到程序列表。\n[0143] 这里仅仅是列举了一种程序列表的建立方法,还有其它多种方法建立程序列表,例如还可以按照应用程序的运行状态优先级由低到高的顺序排列应用程序的标识,从而得到程序列表,其它建立程序列表的方法这里不再一一说明。\n[0144] 应用程序的标识可以但不限于是应用程序的名称、图标等等信息。\n[0145] 在步骤S23中,遍历程序列表中的标识。\n[0146] 每次遍历到标识时进行后台应用程序的控制过程是相同的,下面以遍历到的一个标识为例进行说明。\n[0147] 在步骤S24中,遍历到的标识为当前标识,获取当前标识对应的应用程序的运行状态优先级。\n[0148] 当当前标识对应的应用程序的运行状态优先级为后台时,在步骤S25中,当前标识对应的应用程序为后台应用程序,执行S26。\n[0149] 当当前标识对应的应用程序的运行状态优先级不为后台时,执行S40。\n[0150] 在步骤S26中,确定预设的白名单中是否保存当前标识。\n[0151] 白名单中保存的是用户指定的后台应用程序的标识,即用户不希望关闭的后台应用程序的标识,例如,用户指定的后台应用程序为QQ、微信、飞信、百度地图等等,白名单中可以保存QQ、微信、飞信、百度地图等等应用程序的标识。\n[0152] 当白名单中保存当前标识时,在步骤S27中,确定程序列表中对应的应用程序为后台应用程序的标识的个数是否超过预设阈值。\n[0153] 预设阈值可以根据终端设备的硬件配置和实际需要进行设定,例如可以设置为10个、20个、25个等等。\n[0154] 当所述个数超过预设阈值时,在步骤S28中,在程序列表中查找位于当前标识之前且白名单中未保存的标识。\n[0155] 当查找到至少一个时,在步骤S29中,选取查找到的任一标识或者选取查找到的距离当前标识最近的标识,执行S31。\n[0156] 当未查找时,在步骤S30中,选取当前标识,执行S31。\n[0157] 在步骤S31中,关闭选取的标识对应的应用程序,执行S40。\n[0158] 当所述个数未超过预设阈值时,在步骤S32中,获取当前标识对应的应用程序的不活跃时长,确定不活跃时长是否超过第一预设时长。\n[0159] 当不活跃时长超过第一预设时长时,在步骤S33中,关闭当前标识对应的应用程序,执行S40。\n[0160] 为了避免内存资源的浪费,对于白名单中保存当前标识且所述个数未超过预设阈值的情况,还可以获取当前标识对应的应用程序的不活跃时长,如果该不活跃时长超过第一预设时长,就可以直接关闭当前标识对应的应用程序,也就是说,即使白名单中保存当前标识且所述个数未超过预设阈值,在当前标识对应的应用程序长时间不活跃的情况下,也可以关闭。第一预设时长可以根据实际需要进行设定,例如可以设定为3分钟、5分钟、10分钟等等。\n[0161] 例如,对于QQ,用户在使用完之后转为后台运行状态,若不活跃时长超过10分钟,虽然白名单中保存了QQ的标识,但是仍可以关闭QQ,以节省内存资源。\n[0162] 当不活跃时长未超过第一预设时长时,在步骤S34中,检测不活跃时长是否超过第二预设时长。\n[0163] 当不活跃时长超过第二预设时长时,在步骤S35中,释放当前标识对应的应用程序中的用户界面所占用的内存,执行S40。\n[0164] 当不活跃时长不超过第二预设时长时,执行S40。\n[0165] 继续沿用上例,当不活跃时长未超过第一预设时长时,还可以继续检测不活跃时长是否超过第二预设时长,第二预设时长要小于第一预设时长,若超过,释放当前标识对应的应用程序中的用户界面所占用的内存;若未超过,可以遍历程序列表中的下一个标识。第二预设时长可以根据实际需要进行设定,例如可以设定为3分钟、5分钟、10分钟等等。\n[0166] 例如,例如,对于QQ,用户在使用完之后转为后台运行状态,若不活跃时长超过5分钟,虽然白名单中保存了QQ的标识,但是仍可以释放QQ的用户界面占用的内存,以节省内存资源。\n[0167] 由于释放不活跃时长超过第二预设时长的应用程序的UI占用的内存,从而可以节省大量内存,当该应用程序的运行状态变为前台时,可以自动重建UI,不影响用户使用。\n[0168] 当白名单中未保存当前标识时,在步骤S36中,确定程序列表中对应的应用程序为后台应用程序的标识的个数是否超过预设阈值。\n[0169] 当所述个数超过预设阈值时,在步骤S37中,关闭当前标识对应的应用程序,执行S40。\n[0170] 若白名单中未保存当前标识且程序列表中对应的应用程序为后台应用程序的标识的个数超过预设阈值,可以直接关闭当前标识对应的应用程序,由于白名单中未保存当前标识,也就是说当前标识对应的应用程序不是用户指定的后台应用程序,因此可以直接关闭,从而节省内存资源,提升用户体验。\n[0171] 当所述个数未超过预设阈值时,在步骤S38中,获取当前标识对应的应用程序的不活跃时长,确定不活跃时长是否超过第三预设时长。\n[0172] 当不活跃时长超过第三预设时长时,在步骤S39中,释放当前标识对应的应用程序中的用户界面所占用的内存,执行S40。\n[0173] 当不活跃时长不超过第三预设时长时,执行S40。\n[0174] 相应地,为了节省内存资源,对于白名单中未保存当前标识且所述个数未超过预设阈值的情况,还可以获取当前标识对应的应用程序的不活跃时长,如果该不活跃时长超过第三预设时长,就可以释放当前标识对应的应用程序中的用户界面所占用的内存。\n[0175] 第三预设时长可以根据实际需要进行设定,例如可以设定为3分钟、5分钟、10分钟等等。\n[0176] 例如,对于计算器,用户在使用完之后转为后台运行状态,若不活跃时长超过5分钟,由于白名单中未保存计算器的标识,可以释放计算器的用户界面所占用的内存,以节省内存资源。\n[0177] 在步骤S40中,结束。\n[0178] 图3是根据一示例性实施例示出的一种后台应用程序的控制装置框图。参照图3,该装置包括建立单元31,遍历单元32,第一确定单元33,第二确定单元34和第一关闭单元\n35。\n[0179] 该建立单元31被配置为,根据操作系统中正在运行的应用程序建立程序列表,程序列表中至少保存有操作系统中正在运行的应用程序的标识。\n[0180] 该遍历单元32被配置为,遍历程序列表中的标识。\n[0181] 该第一确定单元33被配置为,遍历到的标识为当前标识,确定当前标识对应的应用程序是否为后台应用程序。\n[0182] 该第二确定单元34被配置为,当当前标识对应的应用程序为后台应用程序时,确定预设的白名单中是否保存当前标识、以及程序列表中对应的应用程序为后台应用程序的标识的个数是否超过预设阈值,白名单中保存的是用户指定的后台应用程序的标识。\n[0183] 该第一关闭单元35被配置为,当白名单中保存当前标识且所述个数超过预设阈值时,从程序列表中选取对应的应用程序为后台应用程序的一个标识,关闭选取的标识对应的应用程序;当白名单中未保存当前标识且所述个数超过预设阈值时,关闭当前标识对应的应用程序。\n[0184] 该方案中,终端设备在确定要关闭的后台应用程序时,不仅考虑后台应用程序的数量是否超过预设阈值,还需要考虑该后台应用程序的标识是否保存在预设的白名单中,白名单中保存的是用户指定的后台应用程序的标识,也就是说这些白名单中的标识对应的后台应用程序是用户不希望关闭的,对于遍历到的当前标识,当白名单中保存当前标识且后台应用程序的个数超过预设阈值时,选取一个后台应用程序并关闭;当白名单中未保存当前标识且后台应用程序的个数超过预设阈值时,关闭当前标识对应的应用程序,由于不会轻易关闭用户指定的后台应用程序,相对于相关技术中结束占用内存最大且可能是用户指定的后台应用程序的方法,能够更好地控制后台应用程序,提升用户体验。\n[0185] 可选的,建立单元31包括计算子单元和排序子单元。\n[0186] 该计算子单元被配置为,计算操作系统中正在运行的每个应用程序的运行状态优先级,运行状态优先级由高到低排序为前台、可见、可感知、后台。\n[0187] 该排序子单元被配置为,按照应用程序的运行状态优先级由高到低的顺序排列应用程序的标识,得到程序列表。\n[0188] 可选的,第一确定单元33包括获取子单元和第一确定子单元。\n[0189] 该获取子单元被配置为,获取当前标识对应的应用程序的运行状态优先级。\n[0190] 该第一确定子单元被配置为,当当前标识对应的应用程序的运行状态优先级为后台时,确定当前标识对应的应用程序为后台应用程序。\n[0191] 可选的,第一关闭单元35包括查找子单元和选取子单元。\n[0192] 该查找子单元被配置为,在程序列表中查找位于当前标识之前且白名单中未保存的标识。\n[0193] 该选取子单元被配置为,当查找到至少一个位于当前标识之前且白名单中未保存的标识时,选取查找到的任一标识或者选取查找到的距离当前标识最近的标识;当未查找到位于当前标识之前且白名单中未保存的标识时,选取当前标识。\n[0194] 可选的,所述装置还包括第一获取单元,第三确定单元和第二关闭单元。\n[0195] 该第一获取单元被配置为,当白名单中保存当前标识且所述个数未超过预设阈值时,获取当前标识对应的应用程序的不活跃时长。\n[0196] 该第三确定单元被配置为,确定不活跃时长是否超过第一预设时长。\n[0197] 该第二关闭单元被配置为,当不活跃时长超过第一预设时长时,关闭当前标识对应的应用程序。\n[0198] 可选的,所述装置还包括检测单元和第一释放单元。\n[0199] 该检测单元被配置为,当不活跃时长未超过第一预设时长时,检测不活跃时长是否超过第二预设时长。\n[0200] 该第一释放单元被配置为,当不活跃时长超过第二预设时长时,释放当前标识对应的应用程序中的用户界面所占用的内存,第二预设时长小于第一预设时长。\n[0201] 可选的,所述装置还包括第二获取单元,第四确定单元和第二释放单元。\n[0202] 该第二获取单元被配置为,当白名单中未保存当前标识且所述个数未超过预设阈值时,获取当前标识对应的应用程序的不活跃时长。\n[0203] 该第四确定单元被配置为,确定不活跃时长是否超过第三预设时长。\n[0204] 该第二释放单元被配置为,当不活跃时长超过第三预设时长时,释放当前标识对应的应用程序中的用户界面所占用的内存。\n[0205] 可选的,第一获取单元和第二获取单元包括统计子单元和第二确定子单元。\n[0206] 该统计子单元被配置为,统计当前标识对应的应用程序的进程未与操作系统中其他进程交互的时长。\n[0207] 该第二确定子单元被配置为,将统计的时长确定为当前标识对应的应用程序的不活跃时长。\n[0208] 关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。\n[0209] 图4是根据一示例性实施例示出的一种用于后台应用程序的控制装置800的框图。\n例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。\n[0210] 参照图4,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。\n[0211] 处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。\n[0212] 存储器804被配置为存储各种类型的数据以支持在装置800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。\n[0213] 电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源控制系统,一个或多个电源,及其他与为装置800生成、控制和分配电力相关联的组件。\n[0214] 多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当装置800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。\n[0215] 音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。\n[0216] I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。\n[0217] 传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到装置800的打开/结束状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。\n[0218] 通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置\n800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播控制系统的广播信号或广播相关信息。\n在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。\n[0219] 在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。\n[0220] 在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。\n[0221] 一种非临时性计算机可读存储介质,当所述存储介质中的指令由终端设备的处理器执行时,使得终端设备能够执行一种后台应用程序的控制方法,所述方法包括:\n[0222] 根据操作系统中正在运行的应用程序建立程序列表,所述程序列表中至少保存有所述操作系统中正在运行的应用程序的标识;\n[0223] 遍历所述程序列表中的标识;\n[0224] 遍历到的标识为当前标识,确定所述当前标识对应的应用程序是否为后台应用程序;\n[0225] 当所述当前标识对应的应用程序为后台应用程序时,确定预设的白名单中是否保存所述当前标识、以及所述程序列表中对应的应用程序为后台应用程序的标识的个数是否超过预设阈值,所述白名单中保存的是用户指定的后台应用程序的标识;\n[0226] 当所述白名单中保存所述当前标识且所述个数超过所述预设阈值时,从所述程序列表中选取对应的应用程序为后台应用程序的一个标识,关闭选取的标识对应的应用程序;\n[0227] 当所述白名单中未保存所述当前标识且所述个数超过所述预设阈值时,关闭所述当前标识对应的应用程序。\n[0228] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。\n[0229] 应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
法律信息
- 2017-12-08
- 2015-01-14
实质审查的生效
IPC(主分类): G06F 9/445
专利申请号: 201410436455.8
申请日: 2014.08.29
- 2014-12-24
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2013-06-19
|
2013-04-08
| | |
2
| |
2013-07-24
|
2013-04-16
| | |
3
| |
2010-10-13
|
2010-06-09
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |