[发明专利]在应用程序中进行进程回收处理的方法及装置有效
申请号: | 201510967818.5 | 申请日: | 2015-12-21 |
公开(公告)号: | CN105607953B | 公开(公告)日: | 2018-10-09 |
发明(设计)人: | 宋照春;张炅轩;姚彤 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京智汇东方知识产权代理事务所(普通合伙) 11391 | 代理人: | 康正德;孙晓芳 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序 进行 进程 回收 处理 方法 装置 | ||
本发明提供了一种在应用程序中进行进程回收处理的方法及装置。该方法包括:监听预设的进程回收事件;当监听到预设的进程回收事件时,反射调用活动管理接口,通过活动监控器对象获取当前进程各组件的Map引用关系,基于Map引用关系获取当前进程内运行的各组件的属性信息;将当前进程内运行的各组件的属性信息与进程回收规则对应的组件的属性信息进行比对,确定是否对当前进程进行回收处理。本发明提供的技术方案能够实现对进程进行及时回收处理的目的,解决了现有技术中不能实现进程的及时回收,导致在回收之前进程仍然会长期占用内存资源的问题。
技术领域
本发明涉及计算机技术领域,特别是一种在应用程序中进行进程回收处理的方法及装置。
背景技术
在终端设备中,出于成本的考虑,系统内存非常有限,当系统在较大的负载下运行的时候,容易出现内存不足的情况。
目前,在Android(安卓)操作系统中,系统会在内存降低到系统设定的阈值的时候,根据进程的活跃度回收进程。虽然这从一定程度上缓解了内存不足的情况,然而现有的根据进程的活跃度回收进程的方法,有时候会造成操作系统应用的进程被回收掉,导致终端设备无法正常的运行的缺陷。此外,系统在内存降低到系统设定的阈值的时候,才会根据进程的活跃度回收进程,不能实现进程的及时回收,在回收之前进程仍然会长期占用内存资源。
发明内容
本发明提供了一种在应用程序中进行进程回收处理的方法及装置以克服上述问题或者至少部分地解决上述问题。
根据本发明的一个方面,提供了一种在应用程序中进行进程回收处理的方法,包括:
监听预设的进程回收事件;
当监听到所述预设的进程回收事件时,反射调用活动管理接口,通过活动监控器对象获取当前进程各组件的Map引用关系,基于所述Map引用关系获取当前进程内运行的各组件的属性信息;
将所述当前进程内运行的各组件的属性信息与进程回收规则对应的组件的属性信息进行比对,确定是否对所述当前进程进行回收处理;
其中,所述方法还包括:
对应用程序中的各进程设置计数字段,用于对该进程中被恢复和/或被暂停的组件进行计数;
当接收到组件恢复事件时,对被恢复的组件所在进程的计数字段增加计数值;
当接收到组件暂停事件时,对被暂停的组件所在进程的计数字段减少计数值。
可选地,在所述监听预设的进程回收事件之前,所述方法还包括:
注册活动监控器对象,以在反射调用所述活动管理接口后传入所述活动监控器对象。
可选地,所述预设的进程回收事件包括:组件恢复事件。
可选地,所述方法还包括:在指定类中注册不能被回收的组件;
将所述当前进程内运行的各组件的属性信息与进程回收规则对应的组件的属性信息进行比对,确定是否对所述当前进程进行回收处理,包括:
判断所述当前进程内运行的各组件是否注册到所述指定类中;
若所述当前进程内运行的各组件中存在至少一个组件注册到所述指定类中,则确定对所述当前进程不进行回收处理;
若所述当前进程内运行的各组件中不存在组件注册到所述指定类中,则确定对所述当前进程进行回收处理。
可选地,判断所述当前进程内运行的各组件是否注册到所述指定类中,包括:
调用所述指定类的判断方法,由所述判断方法查找所述当前进程内运行的各组件是否注册到所述指定类中;
接收所述判断方法返回的查找结果;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510967818.5/2.html,转载请声明来源钻瓜专利网。