在应用程序中进行进程回收处理的方法及装置的制造方法

文档序号:9843974阅读:159来源:国知局
在应用程序中进行进程回收处理的方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别是一种在应用程序中进行进程回收处理的方法及装置。
【背景技术】
[0002]在终端设备中,出于成本的考虑,系统内存非常有限,当系统在较大的负载下运行的时候,容易出现内存不足的情况。
[0003]目前,在Andrο i d (安卓)操作系统中,系统会在内存降低到系统设定的阈值的时候,根据进程的活跃度回收进程。虽然这从一定程度上缓解了内存不足的情况,然而现有的根据进程的活跃度回收进程的方法,有时候会造成操作系统应用的进程被回收掉,导致终端设备无法正常的运行的缺陷。此外,系统在内存降低到系统设定的阈值的时候,才会根据进程的活跃度回收进程,不能实现进程的及时回收,在回收之前进程仍然会长期占用内存资源。

【发明内容】

[0004]本发明提供了一种在应用程序中进行进程回收处理的方法及装置以克服上述问题或者至少部分地解决上述问题。
[0005]根据本发明的一个方面,提供了一种在应用程序中进行进程回收处理的方法,包括:
[0006]监听预设的进程回收事件;
[0007]当监听到所述预设的进程回收事件时,反射调用活动管理接口,通过活动监控器对象获取当前进程各组件的Map引用关系,基于所述Map引用关系获取当前进程内运行的各组件的属性信息;
[0008]将所述当前进程内运行的各组件的属性信息与进程回收规则对应的组件的属性信息进行比对,确定是否对所述当前进程进行回收处理。
[0009]可选地,在所述监听预设的进程回收事件之前,所述方法还包括:
[0010]注册活动监控器对象,以在反射调用所述活动管理接口后传入所述活动监控器对象。
[0011]可选地,所述预设的进程回收事件包括:组件恢复事件。
[0012]可选地,所述方法还包括:在指定类中注册不能被回收的组件;
[0013]将所述当前进程内运行的各组件的属性信息与进程回收规则对应的组件的属性信息进行比对,确定是否对所述当前进程进行回收处理,包括:
[0014]判断所述当前进程内运行的各组件是否注册到所述指定类中;
[0015]若所述当前进程内运行的各组件中存在至少一个组件注册到所述指定类中,则确定对所述当前进程不进行回收处理;
[0016]若所述当前进程内运行的各组件中不存在组件注册到所述指定类中,则确定对所述当前进程进行回收处理。
[0017]可选地,判断所述当前进程内运行的各组件是否注册到所述指定类中,包括:
[0018]调用所述指定类的判断方法,由所述判断方法查找所述当前进程内运行的各组件是否注册到所述指定类中;
[0019]接收所述判断方法返回的查找结果;
[0020]根据所述查找结果确定是否回收所述当前进程。
[0021]可选地,将所述当前进程内运行的各组件的属性信息与进程回收规则对应的组件的属性信息进行比对,确定是否对所述当前进程进行回收处理,包括:
[0022]判断所述当前进程内运行的各组件中是否存在被恢复的组件;
[0023]若是,则确定对所述当前进程不进行回收处理;
[0024]若否,则确定对所述当前进程进行回收处理。
[0025]可选地,所述方法还包括:
[0026]对应用程序中的各进程设置计数字段,用于对该进程中被恢复和/或被暂停的组件进行计数;
[0027]当接收到组件恢复事件时,对被恢复的组件所在进程的计数字段增加计数值;
[0028]当接收到组件暂停事件时,对被暂停的组件所在进程的计数字段减少计数值。
[0029]可选地,判断所述当前进程内运行的各组件中是否存在被恢复的组件,包括:
[0030]读取所述当前进程的计数字段;
[0031 ]判断所述计数字段的计数值是否大于指定阈值;
[0032]若是,则确定所述当前进程内运行的各组件中存在被恢复的组件;
[0033]若否,则确定所述当前进程内运行的各组件中不存在被恢复的组件。
[0034]可选地,将所述当前进程内运行的各组件的属性信息与进程回收规则对应的组件的属性信息进行比对,确定是否对所述当前进程进行回收处理,包括:
[0035]判断所述当前进程是否为空进程或后台进程;
[0036]若是,则确定对所述当前进程进行回收处理。
[0037]可选地,将所述当前进程内运行的各组件的属性信息与进程回收规则对应的组件的属性信息进行比对,确定是否对所述当前进程进行回收处理,包括:
[0038]判断所述当前进程中活动和服务的数量是否都为O;
[0039]若是,则确定对所述当前进程进行回收处理。
[0040]根据本发明的另一个方面,还提供了一种在应用程序中进行进程回收处理的装置,包括:
[0041]监听模块,适于监听预设的进程回收事件;
[0042]获取模块,适于当监听到所述预设的进程回收事件时,反射调用活动管理接口,通过活动监控器对象获取当前进程各组件的Map引用关系,基于所述Map引用关系获取当前进程内运行的各组件的属性信息;
[0043]确定模块,适于将所述当前进程内运行的各组件的属性信息与进程回收规则对应的组件的属性信息进行比对,确定是否对所述当前进程进行回收处理。
[0044]可选地,所述装置还包括:
[0045]对象注册模块,适于注册活动监控器对象,以在反射调用所述活动管理接口后传入所述活动监控器对象。
[0046]可选地,所述预设的进程回收事件包括:组件恢复事件。
[0047]可选地,所述装置还包括:
[0048]组件注册模块,适于在指定类中注册不能被回收的组件;
[0049]所述确定模块,还适于判断所述当前进程内运行的各组件是否注册到所述指定类中;若所述当前进程内运行的各组件中存在至少一个组件注册到所述指定类中,则确定对所述当前进程不进行回收处理;若所述当前进程内运行的各组件中不存在组件注册到所述指定类中,则确定对所述当前进程进行回收处理。
[0050]可选地,所述确定模块还适于:
[0051]调用所述指定类的判断方法,由所述判断方法查找所述当前进程内运行的各组件是否注册到所述指定类中;
[0052]接收所述判断方法返回的查找结果;
[0053]根据所述查找结果确定是否回收所述当前进程。
[0054]可选地,所述确定模块还适于:
[0055]判断所述当前进程内运行的各组件中是否存在被恢复的组件;
[0056]若是,则确定对所述当前进程不进行回收处理;
[0057]若否,则确定对所述当前进程进行回收处理。
[0058]可选地,所述装置还包括:
[0059]计数模块,适于对应用程序中的各进程设置计数字段,用于对该进程中被恢复和/或被暂停的组件进行计数;当接收到组件恢复事件时,对被恢复的组件所在进程的计数字段增加计数值;当接收到组件暂停事件时,对被暂停的组件所在进程的计数字段减少计数值。
[0060]可选地,所述确定模块还适于:
[0061 ]读取所述当前进程的计数字段;
[0062]判断所述计数字段的计数值是否大于指定阈值;
[0063]若是,则确定所述当前进程内运行的各组件中存在被恢复的组件;
[0064]若否,则确定所述当前进程内运行的各组件中不存在被恢复的组件。
[0065]可选地,所述确定模块还适于:
[0066]判断所述当前进程是否为空进程或后台进程;
[0067]若是,则确定对所述当前进程进行回收处理。
[0068]可选地,所述确定模块还适于:
[0069]判断所述当前进程中活动和服务的数量是否都为O;
[0070]若是,则确定对所述当前进程进行回收处理。
[0071]本发明提供的技术方案实现了对应用程序的进程的回收处理,首先设置了预设的进程回收事件,并对预设的进程回收事件进行主动监听,当监听到预设的进程回收事件时,每隔一预定时间段触发一次进程回收操作,即以轮询的方式触发进程回收操作,获取当前进程内运行的各组件的属性信息,进而将当前进程内运行的各组件的属性信息与进程回收规则对应的组件的属性信息进行比对,确定是否对当前进程进行回收处理。本发明提供的技术方案实现了对进程进行及时回收处理的目的,解决了现有技术中不能实现进程的及时回收,导致在回收之前进程仍然会长期占用内存资源的问题。并且,本发明实施例是将当前进程内运行的各组件的属性信息与进程回收规则对应的组件的属性信息进行比对,确定是否对当前进程进行回收处理,而不是仅仅根据进程的活跃度回收进程,从而使得操作系统应用的进程不会被回收掉,能够保证终端设备的正常运行。
[0072]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
[0073]根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
【附图说明】
[0074]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0075]图1示出了根据本发明一个实施例的在应用程序中进行进程回收处理的方法的流程图;
[0076]图2所示为Activity的状态转换示意图;
[0077]图3示出了根据本发明一个实施例的确定是否对当前进程进行回收处理的方法的流程图;
[0078]图4示出了根据本发明另一个实施例的确定是否对当前进程进行回收处理的方法的流程图;
[0079]图5示出了根据本发明再一个实施例的确定是否对当前进程进行回收处理的方法的流程图;
[0080]图6示出了根据本发明又一个实施例的在应用程序中进行进程回收处理的方法的流程图;
[0081]图7示出了根据本发明又一个实施例的在应用程序中进行进程回收处理的方法的流程图;
[0082]图8示出了根据本发明一个实施例的在应用程序中进行进程回收处理的装置的结构示意图;以及
[0083]图9示出了根据本发明另一个实施例的在应用程序中进行进程回收处理的装置的结构示意图。
【具体实施方式】
[0084]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1