CN104731683B - 一种手机内存监控的方法及*** - Google Patents
一种手机内存监控的方法及*** Download PDFInfo
- Publication number
- CN104731683B CN104731683B CN201510103832.0A CN201510103832A CN104731683B CN 104731683 B CN104731683 B CN 104731683B CN 201510103832 A CN201510103832 A CN 201510103832A CN 104731683 B CN104731683 B CN 104731683B
- Authority
- CN
- China
- Prior art keywords
- internal memory
- memory
- party application
- application
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明所提供的一种手机内存监控的方法及***,通过对安装在手机内部的第三方应用程序的运行状况及其配置信息进行检测,将其分别放到不同的内存分组中,如果内存分组中应用所占用的总内存超过内存分组的上限,就会自动触发该内存分组的杀应用策略以释放内存,直到该组中的应用程序占用的总内存低于该内存分组的内存上限,从而***可以自动对应用所占用的内存进行清理,不需要用户每次通过手动操作,提高了手机运行速率的同时也给用户带来便利。
Description
技术领域
本发明涉及智能终端领域,尤其涉及的是一种手机内存监控的方法及***。
背景技术
目前智能手机已经开始逐步取代传统PC渗透进入了人们娱乐、生活的各个方面。
在智能手机的使用过程中,人们会在手机中安装大量应用程序,其中大多程序都是后台自动启动而且常驻内存,久而久之用户会觉得***内存紧缺从而导致***反应会很慢,应用程序安装的越多,***在运行时,其内存的占用率越高,尤其是一些过度消耗内存的APP会严重影响手机整体性能。
虽然有些用户会安装一些内存清理软件,但这些软件功能单一,仅仅是清理内存,而且是需要用户手动来触发清理动作,每次用户发现内存不足都需要通过手动进行清理,给用户使用手机带来不便。
因此,现有技术有待于进一步的改进。
发明内容
鉴于上述现有技术中的不足之处,本发明的目的在于为用户提供手机内存监控的方法及***,以解决现有技术中手机中安装的应用程序在后台运行时,导致占用大量内存,而无法自动清理的缺陷。
本发明解决技术问题所采用的技术方案如下:
一种手机内存监控的方法,其中,包括:
A、预先建立用于存储第三方应用程序的至少一个内存分组,并设置每个内存分组的最高总占用内存值;
B、根据手机中第三方应用程序的运行状态及配置信息将手机中后台运行的第三方应用程序分配存储到内存分组中;
C、实时对每个内存分组的第三方应用程序的总占用内存值进行检测,当内存组中申请占用的内存值或者已经分配出的内存值超出最高总占用内存值时,则触发该内存组的杀应用策略,将导致该内存分组的内存值超出的第三方应用关闭,释放其占用的内存。
所述手机内存监控的方法,其中,所述步骤A之前还包括:
A0、获取手机中安装的第三方应用程序,并将获取到的第三方应用程序的列表进行显示。
所述手机内存监控的方法,其中,所述步骤B还包括:
B1、对所述列表中的第三方应用程序的配置文件进行解析,解析完毕后对第三方应用程序的运行状态进行监控。
所述手机内存监控的方法,其中,所述步骤B还包括:
B2、若第三方应用程序的运行状态由后台运行切换为前台运行或者由前台运行切换为未运行,则判断该第三方应用程序是否存储到内存分组中,若是,则将其从内存分组中删除。
所述手机内存监控的方法,其中,所述步骤B还包括:
B3、若第三方应用程序的运行状态由前台运行切换为后台运行或者在后台启动运行,则根据配置信息将其添加到内存分组中存储。
一种手机内存监控的***,其中,包括:建立内存分组模块、应用分配模块和释放内存模块;
建立内存分组模块,用于预先建立用于存储第三方应用程序的至少一个内存分组,并设置每个内存分组的最高总占用内存值;
应用分配模块,用于根据手机中第三方应用程序的运行状态及配置信息将手机中后台运行的第三方应用程序分配存储到内存分组中;
释放内存模块,用于实时对每个内存分组的第三方应用程序的总占用内存值进行检测,当内存组中申请占用的内存值或者已经分配出的内存值超出最高总占用内存值时,则触发该内存组的杀应用策略,将导致该内存分组的内存值超出的第三方应用关闭,释放其占用的内存。
所述手机内存监控的***,其中,所述***还包括:
应用列表显示模块,用于获取手机中安装的第三方应用程序,并将获取到的第三方应用程序的列表进行显示。
所述手机内存监控的***,其中,所述应用分配模块,还用于对所述列表中的第三方应用程序的配置文件进行解析、并实时对地第三方应用程序的运行状态进行监控。
所述手机内存监控的***,其中,所述应用分配模块,还用于若第三方应用程序的运行状态由后台运行切换为前台运行或者由前台运行切换为未运行,则判断该第三方应用程序是否存储到内存分组中,若是,则将其从内存分组中删除。
所述手机内存监控的***,其中,所述应用分配模块,还用于若第三方应用程序的运行状态由前台运行切换为后台运行或者在后台启动运行,则根据配置信息将其添加到内存分组中存储。
有益效果,本发明所提供的一种手机内存监控的方法及***,通过对安装在手机内部的第三方应用程序的运行状况及其配置信息进行检测,将其分别放到不同的内存分组中,如果组中应用所占用的总内存超过内存分组的上限,就会自动触发该内存分组的杀应用策略以释放内存,直到该组中的应用程序占用的总内存低于该内存分组的内存上限,从而***可以自动对应用所占用的内存进行清理,不需要用户每次通过手动操作,提高了手机运行速率的同时也给用户带来便利。
附图说明
图1是本发明一种手机内存监控的方法步骤流程图。
图2是本发明一种手机内存监控的方法具体应用实施例的流程图。
图3是本发明一种手机内存监控的***原理结构图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
在手机***中安装的应用程序,一般可以分成手机***自带的应用程序和用户自己安装到手机***上的第三方应用程序,由于在进行应用程序占用内存的管理监控中,若对手机***自带的应用程序在运行时所占用的内存进行限制,可能会导致其***运行异常,因此在本发明中仅通过对用户自行安装到手机***上的第三方应用程序的内存使用进行限制。
本发明提供了一种手机内存监控的方法,如图1所示,所示方法具体包括以下步骤:
S1、预先建立用于存储第三方应用程序的至少一个内存分组,并设置每个内存分组的最高总占用内存值。
本步骤中内存分组的建立是基于linux cgroup机制来实现的,其为可以将任意进程进行分组化管理的linux内核功能,内存分组可以由用户自己建立或者***自定义建立。内存分组建立后需要设置各个内存分组的内存上限,内存分组是用来容纳应用程序的,一个内存分组可以添加多个应用程序,但一个应用程序同一时刻只能属于一个内存分组。
由于内存分组的建立是基于linux cgroup机制来实现,因此在建立内存分组之前,需要确定***已经mount cgroup的memory子集,如果未mount,需要通过如下方式mount:
mount -t cgroup -o memory none /memory
在cgroup安装点,查找是否已经建立指定名字的内存分组,如未建立,通过mkdir建立内存分组:
cd /memory
mkdir 内存分组1
mkdir 内存分组2
内存分组建立成功后,通过以下命令设置内存分组内存上限值(以每个内存分组的内存上限值为100M为例):
echo 100M > /memory/内存分组1/memory. limit_in_bytes
echo 100M > /memory/内存分组1/memory.memsw.limit_in_bytes
echo 100M > /memory/内存分组2/memory. limit_in_bytes
echo 100M > /memory/内存分组2/memory.memsw.limit_in_bytes
当内存分组建立完毕后,用户可以手动将满足特定条件的第三方应用程序添加到内存分组中。
S2、根据手机中第三方应用程序的运行状态及配置信息将手机中后台运行的第三方应用程序分配存储到内存分组中。
在本步骤中,首先对安装在手机***中的第三方应用程序的配置文件进行解析,若解析出所述第三方应用程序需要正在***后台运行,则将该应用程序分配存储到内存分组中。
解析完毕后对第三方应用程序的运行状态进行监控:
若监控到第三方应用程序的运行状态由后台运行切换为前台运行或者由前台运行切换为未运行,则判断该第三方应用程序是否已经存储到内存分组中,若是,则将其从内存分组中删除。
若监控到第三方应用程序的运行状态由前台运行切换为后台运行或者在后台启动运行,则根据配置信息将其添加到内存分组中存储。
由于内存分组有多个,则可以通过判断其所含有的配置文件信息中,是否含有该应用程序是否为用户手动分配过该应用程序到相应的内存分组,若该应用程序的配置项中含有用户手动分配过的信息,则根据该配置项中含有的信息将该应用程序添加到指定的内存分组中。
S3、实时对每个内存分组的第三方应用程序的总占用内存值进行检测,当内存组中申请占用的内存值或者已经分配出的内存值超出最高总占用内存值时,则触发该内存组的杀应用策略,将导致该内存分组的内存值超出的第三方应用关闭,释放其占用的内存。
具体的,本步骤中内存组中第三方应用总内存值的大小超过内存分组的最高占用内存值有两种情况,一是新添加第三方应用到该内存组导致内存总大小超过内存组最高内存值;二 是内存组中的第三方应用申请更多内存导致内存总大小超过内存组的最高占用内存值;对第一种情况,就是关闭最新分配进入的第三方应用程序;即该第三方应用程序导致该内存组的总占用内存值超出。对第二种情况,本次内存分配申请会失败,提出分配内存申请的第三方应用程序会被关闭。
为便于用户通过手动操作将满足条件的第三方应用程序分配到内存分组中,所述步骤S1之前还包括:
S0、获取手机中安装的第三方应用程序,并将获取到的第三方应用程序的列表进行显示。
获取手机中安装第三方应用程序,将APP列表出来。这里只列出第三方应用程序,***自带服务和应用是不能列出来。因为***服务和应用不能由用户配置内存分组,这会影响***稳定性。
查找第三方应用技术实现:
PackageManager pm = context.getPackageManager();
List<PACKAGEINFO> pakageinfos = pm.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);
for (PackageInfo packageInfo : pakageinfos) {
// 获取应用程序的名称
String str_name = packageInfo.applicationInfo.loadLabel(pm).toString();
// 获取应用程序的快捷方式图标
Drawable drawable = packageInfo.applicationInfo.loadIcon(pm);
// 判断应用程序是否是第三方应用程序
if(packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM==0){
//第三方应用程序
}
}
用户在第三方应用程序列表中选择应用程序,将其拖至右边的内存分组中。
用户将应用程序拖至指定内存分组中,***将修改配置文件,将APP名字和对应的内存分组号保存到配置文件中。
如图2所示为本发明所述方法的具体实施的示意图,如图所示,在具体实施过程中,可以通过在手机***中安装一专门用于对其内存进行监控的实现Server控制中心功能的应用程序来实现上述方法中的各个步骤:
控制中心server启动后,进入步骤H1,加载配置文件,并依次解析配置文件每一项,若解析完毕,则执行步骤H2。否则执行步骤H3。
步骤H2、配置文件全部解析完成,控制中心需要设置钩子回调,来监控***中新启动的APP和***中APP状态的切换,然后睡眠等待消息的到来。
步骤H3、如果检测到配置文件中指定的APP已经运行,而且步骤H4中检测到是后台APP,则执行步骤H6,将APP添加到指定内存分组中。
步骤H5、消息到来,控制中心Server被唤醒处理消息,并根据消息的内容分别进行以下操作:
步骤H51、用户设置APP到内存分组的消息,控制中心先判断APP是否运行,是否是后台APP,如果两个都满足,则添加应用到指定的内存分组。
步骤H52、APP启动的消息,控制中心判断用户是否曾经配置过该APP到内存分组,如果配置过,而且应用是后台APP,则控制中心根据配置信息将应用添加到指定内存分组。
步骤H53、APP从前台切换到后台的消息,控制中心需要判断用户是否曾经配置过该APP到内存分组,如果配置过,按照配置信息将APP添加到指定内存分组。
步骤H54、APP从后台切换到前台的消息,控制中心先判断该APP是否已经在内存分组中,如果在,则将APP从指定内存分组中删除。
本发明在上述方法的基础上,还提供了一种手机内存监控的***,如图3所示,所示***包括:建立内存分组模块110、应用分配模块120和释放内存模块130。
建立内存分组模块110,用于预先建立用于存储第三方应用程序的至少一个内存分组,并设置每个内存分组的最高总占用内存值;具体功能如步骤S1所述。
应用分配模块120,用于根据手机中第三方应用程序的运行状态及配置信息将手机中后台运行的第三方应用程序分配存储到内存分组中;具体功能如步骤S2所述。
释放内存模块130,用于实时对每个内存分组的第三方应用程序的总占用内存值进行检测,当内存组中申请占用的内存值或者已经分配出的内存值超出最高总占用内存值时,则触发该内存组的杀应用策略,将导致该内存分组的内存值超出的第三方应用关闭,释放其占用的内存。具体功能如步骤S3所述。
所述***还包括:
应用列表显示模块,用于获取手机中安装的第三方应用程序,并将获取到的第三方应用程序的列表进行显示。
所述应用分配模块,还用于对所述列表中的第三方应用程序的配置文件进行解析、并实时对地第三方应用程序的运行状态进行监控。
所述应用分配模块,还用于若第三方应用程序的运行状态由后台运行切换为前台运行或者由前台运行切换为未运行,则判断该第三方应用程序是否存储到内存分组中,若是,则将其从内存分组中删除。
所述应用分配模块,还用于若第三方应用程序的运行状态由前台运行切换为后台运行或者在后台启动运行,则根据配置信息将其添加到内存分组中存储。
本发明所提供的一种手机内存监控的方法及***,通过对安装在手机内部的第三方应用程序的运行状况及其配置信息进行检测,将其分别放到不同的内存分组中,如果组中应用所占用的总内存超过内存分组的上限,就会自动触发该内存分组的杀应用策略以释放内存,直到该组中的应用程序占用的总内存低于该内存分组的内存上限,从而***可以自动对应用所占用的内存进行清理,不需要用户每次通过手动操作,提高了手机运行速率的同时也给用户带来便利。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。
Claims (2)
1.一种手机内存监控的方法,其特征在于,包括:
A、预先建立用于存储第三方应用程序的至少一个内存分组,并设置每个内存分组的最高总占用内存值;
B、根据手机中第三方应用程序的运行状态及配置信息将手机中后台运行的第三方应用程序分配存储到内存分组中;
C、实时对每个内存分组的第三方应用程序的总占用内存值进行检测,当内存组中申请占用的内存值或者已经分配出的内存值超出最高总占用内存值时,则触发该内存组的杀应用策略,将导致该内存分组的内存值超出的第三方应用关闭,释放其占用的内存;
一个内存分组添加多个应用程序,但一个应用程序同一时刻只能属于一个内存分组;
所述步骤A之前还包括:
A0、获取手机中安装的第三方应用程序,并将获取到的第三方应用程序的列表进行显示;
步骤B还包括:
B1、对所述列表中的第三方应用程序的配置文件进行解析,解析完毕后对第三方应用程序的运行状态进行监控;
B2、若第三方应用程序的运行状态由后台运行切换为前台运行或者由前台运行切换为未运行,则判断该第三方应用程序是否存储到内存分组中,若是,则将其从内存分组中删除;
B3、若第三方应用程序的运行状态由前台运行切换为后台运行或者在后台启动运行,则根据配置信息将其添加到内存分组中存储;
接到应用程序启动的消息,判断用户是否曾经配置过该应用程序到内存分组,如果配置过,而且所述应用程序是后台应用程序,则根据配置信息将应用程序添加到指定内存分组。
2.一种手机内存监控的***,其特征在于,包括:建立内存分组模块、应用分配模块和释放内存模块;
建立内存分组模块,用于预先建立用于存储第三方应用程序的至少一个内存分组,并设置每个内存分组的最高总占用内存值;
应用分配模块,用于根据手机中第三方应用程序运行状态及配置信息将手机中后台运行的第三方应用程序分配存储到内存分组中;
释放内存模块,用于实时对每个内存分组的第三方应用程序的总占用内存值进行检测,当内存组中申请占用的内存值或者已经分配出的内存值超出最高总占用内存值时,则触发该内存组的杀应用策略,将导致该内存分组的内存值超出的第三方应用关闭,释放其占用的内存;
一个内存分组添加多个应用程序,但一个应用程序同一时刻只能属于一个内存分组;
所述***还包括:
应用列表显示模块,用于获取手机中安装的第三方应用程序,并将获取到的第三方应用程序的列表进行显示;
所述应用分配模块,还用于对所述列表中的第三方应用程序的配置文件进行解析,解析完毕后对第三方应用程序的运行状态进行监控;
所述应用分配模块,还用于若第三方应用程序的运行状态由后台运行切换为前台运行或者由前台运行切换为未运行,则判断该第三方应用程序是否存储到内存分组中,若是,则将其从内存分组中删除;
所述应用分配模块,还用于若第三方应用程序的运行状态由前台运行切换为后台运行或者在后台启动运行,则根据配置信息将其添加到内存分组中存储;
接到应用程序启动的消息,判断用户是否曾经配置过该应用程序到内存分组,如果配置过,而且所述应用程序是后台应用程序,则根据配置信息将应用程序添加到指定内存分组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510103832.0A CN104731683B (zh) | 2015-03-10 | 2015-03-10 | 一种手机内存监控的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510103832.0A CN104731683B (zh) | 2015-03-10 | 2015-03-10 | 一种手机内存监控的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104731683A CN104731683A (zh) | 2015-06-24 |
CN104731683B true CN104731683B (zh) | 2018-02-13 |
Family
ID=53455595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510103832.0A Active CN104731683B (zh) | 2015-03-10 | 2015-03-10 | 一种手机内存监控的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104731683B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294059A (zh) * | 2015-06-26 | 2017-01-04 | 中兴通讯股份有限公司 | 网管***中进程的恢复方法及装置 |
CN105511963B (zh) * | 2015-11-30 | 2019-12-10 | Tcl集团股份有限公司 | 一种基于Android***的内存优化方法及*** |
CN105975348A (zh) * | 2016-05-31 | 2016-09-28 | 宇龙计算机通信科技(深圳)有限公司 | 一种内存优化方法、优化装置以及终端 |
US11113170B2 (en) | 2016-07-26 | 2021-09-07 | Intel Corporation | Technologies for managing memory on compute device |
CN106557698B (zh) * | 2016-11-29 | 2019-08-02 | 武汉斗鱼网络科技有限公司 | 一种应用中的组件检测方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221536A (zh) * | 2008-01-25 | 2008-07-16 | 中兴通讯股份有限公司 | 嵌入式***的内存管理方法及装置 |
CN104298612A (zh) * | 2014-09-30 | 2015-01-21 | 北京金山安全软件有限公司 | 移动终端中清理内存的方法、装置和移动终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102056202A (zh) * | 2009-10-29 | 2011-05-11 | 中兴通讯股份有限公司 | 移动终端错误处理方法及*** |
-
2015
- 2015-03-10 CN CN201510103832.0A patent/CN104731683B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221536A (zh) * | 2008-01-25 | 2008-07-16 | 中兴通讯股份有限公司 | 嵌入式***的内存管理方法及装置 |
CN104298612A (zh) * | 2014-09-30 | 2015-01-21 | 北京金山安全软件有限公司 | 移动终端中清理内存的方法、装置和移动终端 |
Also Published As
Publication number | Publication date |
---|---|
CN104731683A (zh) | 2015-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104731683B (zh) | 一种手机内存监控的方法及*** | |
CN105677477B (zh) | 一种优化应用程序资源的方法、装置及电子设备 | |
CN103220173B (zh) | 一种报警监控方法及监控*** | |
CN108399100A (zh) | 一种容器资源的调整方法及装置 | |
CN103176842B (zh) | 后台进程管理方法及其移动终端 | |
EP2977854A1 (en) | Method, apparatus, and user terminal for removing malicious power consuming application | |
CN105653425A (zh) | 基于复杂事件处理引擎的监控*** | |
CN104766007A (zh) | 一种基于文件***过滤驱动实现沙箱快速恢复的方法 | |
CN103617129B (zh) | 一种内存处理的方法及装置 | |
CN103780428A (zh) | 应用于云架构的集中式资源管理方法及*** | |
CN109783311A (zh) | 断点行为的监控处理方法、装置、设备及可读存储介质 | |
CN101272254B (zh) | 生成攻击特征库的方法、防范网络攻击的方法以及装置 | |
CN110647392A (zh) | 一种基于容器集群的智能弹性伸缩方法 | |
CN103870319B (zh) | 信息处理方法、装置及电子设备 | |
CN104991811A (zh) | 隔离***切换时进程运行状态的调整方法以及智能终端 | |
CN108762914A (zh) | 一种***架构的智能伸缩方法、装置、电子设备及存储介质 | |
CN103051613B (zh) | 一种报文检测扫描方法、装置及网络安全设备 | |
CN112631634A (zh) | 一种智慧灯杆的固件升级方法、装置、***、设备和介质 | |
US20150350809A1 (en) | Terminal peripheral management method and m2m gateway | |
CN105278931B (zh) | 一种安卓***禁止应用程序后台自启的方法及终端 | |
CN105302702B (zh) | 终端性能的检测方法及装置 | |
CN109286584A (zh) | 一种多核***中的分片重组方法、装置及设备 | |
CN110806924B (zh) | 一种基于cpu占用率的网络处理方法及装置 | |
CN103905271A (zh) | 一种告警风暴抑制方法 | |
CN104660992B (zh) | 视频掉线重连***和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211129 Address after: 264200 No. 58, Dalian Road, Weihai high district, Weihai City, Shandong Province Patentee after: SHANDONG KAER ELECTRIC Co.,Ltd. Address before: 516006 Zhongkai hi tech Zone, Huizhou, Guangdong, 86 Chang seven Road West Patentee before: HUIZHOU TCL MOBILE COMMUNICATION Co.,Ltd. |
|
TR01 | Transfer of patent right |