CN111949385A - 一种用于终端进程的监听控制方法 - Google Patents
一种用于终端进程的监听控制方法 Download PDFInfo
- Publication number
- CN111949385A CN111949385A CN201910406410.9A CN201910406410A CN111949385A CN 111949385 A CN111949385 A CN 111949385A CN 201910406410 A CN201910406410 A CN 201910406410A CN 111949385 A CN111949385 A CN 111949385A
- Authority
- CN
- China
- Prior art keywords
- processes
- terminal
- running
- control method
- names
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 263
- 230000008569 process Effects 0.000 title claims abstract description 222
- 238000012544 monitoring process Methods 0.000 title claims abstract description 17
- 230000006378 damage Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 239000011230 binding agent Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
Abstract
本发明提供一种用于终端进程的监听控制方法,包括:S1:将新创建的进程的包名添加至集合,形成包含进程的包名的集合;S2:根据所述集合中的进程的包名,对所述集合中包名对应的进程的数量进行统计;S3:当所述集合中包名对应的进程的数量超过预设值时,获取所有正在运行的进程,并确定所有正在运行的进程中最新运行的n个的进程;S4:销毁所述最新运行的n个进程之外的其他正在运行的各进程,以批量销毁所述终端中后台运行的进程,并从所述集合中移除包含在所述集合中的被销毁的各进程的包名。本发明通过设置进程包名的集合,在触发条件满足时遍历所有正在运行的进程,确保自启或关联唤醒的进程,在没有包含在所述集合中的情况下也能被彻底关闭。
Description
技术领域
本发明涉及移动终端的进程监听技术,尤其涉及一种用于终端进程的监听控制方法。
背景技术
随着智能终端的大量普及,用户不仅关注智能终端的外观、视觉效果,同时也越来越注重智能终端性能问题和功耗问题,比如,终端耗电的快慢、运行是否流畅、内存使用情况,以及应用程序启动速度等性能指标。智能终端内部可供使用的计算,存储资源通常是有限的,当在与用户进行交互时,如果终端开启过多的应用,势必会影响终端的功耗、性能等问题。
而且,很多三方应用有自启和被关联应用唤醒的情况。例如,用户并没有打开百度文库,但用户只要打开了百度视频、百度搜索等,就会把百度文库也给唤醒,甚至用户把这些应用都关闭之后,这些应用也可由其他应用,或者手机亮屏息屏等动作唤醒。一些应用会默认有定时唤醒服务,或者在一个应用退出时,发消息以启动另一个应用或服务。有许多服务不提供用户可见或可操作的界面,而只是后台运行,因此上述没有界面的后台服务,现有的进程监听技术可能监听不到它们已被启动,因此也无法统计这些后台服务。
所以,在用户与智能终端进行交互的过程中,如果应用不能主动被关闭,则大量的进程可能同时在运行,有的进程挂在后台,会占用系统资源,从而影响正在与用户进行交互的应用,也会引起终端高功耗等问题。
因此,亟需一种帮助用户主动控制终端可同时运行的进程的数量的方法,以提高用户的终端使用体验。
发明内容
为了解决上述问题,本发明提供一种用于终端进程的监听控制方法,所述方法包括:
S1:将新创建的进程的包名添加至集合,形成包含进程的包名的集合;
S2:根据所述集合中的进程的包名,对所述集合中包名对应的进程的数量进行统计;
S3:当所述集合中包名对应的进程的数量超过预设值时,获取所有正在运行的进程,并确定所有正在运行的进程中最新运行的n个的进程;
S4:销毁所述最新运行的n个进程之外的其他正在运行的各进程,并从所述集合中移除包含在所述集合中的被销毁的各进程的包名。
进一步的,步骤S1具体包括:
S11:判断集合中是否存在新创建的进程的包名;
S12:若不存在,则将所述新创建的进程的包名添加至集合,形成包含进程的包名的集合。
进一步的,所述包名的数据类型为String,所述集合是类型为String的进程的包名集合。
进一步的,步骤S4具体包括:
S41:遍历所有正在运行的进程,获取各正在运行的进程的包名;
S42:根据获取到的各所述包名,销毁所述最新运行的n个进程之外的各所述包名对应的其他正在运行的各进程;
S43:从所述集合中移除包含在所述集合中的被销毁的各进程的包名。
进一步的,确定步骤S3中的所述预设值的依据至少为下列中的一种:所述终端的CPU,内存和终端系统性能。
进一步的,确定所述n的依据至少为下列中的一种:所述终端的CPU,内存和终端系统性能。
进一步的,步骤S3中的所述预设值为8。
进一步的,所述n为4。
本发明还提供一种计算机可读的存储介质,存储有用于实现上述方法的计算机可读程序。
与现有技术相比,本发明具有如下优点或有益效果:
1、本发明通过设置进程包名的集合和关闭进程的触发条件,明确了关闭后台运行的进程的时机,且该触发条件可根据所述终端的CPU,内存和终端系统性能等情况灵活设置。
2、本发明在关闭后台进程前,遍历了所有正在运行的进程,确保一些自启或关联唤醒的应用和服务,没有包含在所述集合的情况下也能被彻底关闭。
3、从所述集合中移除对象时,以是否执行了销毁进程的动作为前提,避免以进程销毁反馈的条件下,部分进程在销毁后又被唤醒,而不能被集合再次统计进来,结果导致从集合中移除了进程的包名,实则移除的包名对应的进程还存活的情况。
4、减少了移动终端与用户交互过程中,耗电量大,内存占用过大,手机卡顿等现象,改善了应用运行的流畅性,提高了用户体验。
附图说明
通过结合附图阅读下文示例性实施例的详细描述可更好地理解本发明的保护范围,其中所包括的附图是:
图1为本发明的一种用于终端进程的监听控制方法的流程图;
图2为根据本发明实施例的将进程的包名添加至集合的流程图;
图3为根据本发明实施例的销毁进程的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图以及实施例来详细说明本发明的实施方案,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。
实施例一
本发明提供的一种用于终端进程的监听控制方法的应用场景设置在移动终端。图1为本发明的一种用于终端进程的监听控制方法的流程图,以下结合图1对每个步骤进行详细说明。如图1所示,该方法主要包括以下步骤:
S1:将新创建的进程的包名添加至集合,形成包含进程的包名的集合。
在步骤S1中,该集合可为一个数据类型为String的进行的包名集合,用于存储管理进程的包名。集合中的每个包名均有各自的编号,比如,第一个包名的编号为0,第二个包名的编号为1,以此类推。图2为根据本发明实施例的将进程的包名添加至集合的流程图,如图2所示,步骤S1具体包括:
S11:判断集合中是否存在新创建的进程的包名;
S12:若不存在,则将所述新创建的进程的包名添加至集合,形成包含进程的包名的集合。
如果有新的进程创建了,进程监听器的对象获取到进程创建的消息,消息中包括进程的包名,并将包名存入步骤S1中的集合,应用端获得String类型的包名后,首先判断集合中是否存在该报名,如果不存在,则将该String类型包名添加至集合。
S2:根据所述集合中的进程的包名,对所述集合中包名对应的进程的数量进行统计。
S3:当所述集合中包名对应的进程的数量超过预设值时,获取所有正在运行的进程,并确定所有正在运行的进程中最新运行的n个的进程。
具体的,该预设值和n可根据终端的CPU,内存和终端系统等其他终端性能,并根据实际情况确定,以保证终端在运行小于预设值数量的进程时,运行状况良好,不会出现卡顿等影响用户体验的情况发生。在本实施例中,预设值为8,n为4。当终端运行的进程的数量大于8时,在本实施例中,可调用ActivityManager的getRunningAppProcess方法获取所有正在运行的进程,再调用ActivityManager的getRunningTask方法确定最新运行的4个进程,即最新运行的应用或服务的进程。这里获取的是所有的正在运行的进程,能够避免步骤S1中通过监听器的对象进行监听过程中,进程创建了而没有被监听到的情况。
S4:销毁所述最新运行的n个进程之外的其他正在运行的各进程,并从所述集合中移除包含在所述集合中的被销毁的各进程的包名。以批量销毁所述终端中后台运行的进程。图3为根据本发明实施例的销毁进程的流程图,如图3所示,S4具体包括:
S41:遍历所有正在运行的进程,获取各正在运行的进程的包名;
S42:根据获取到的各所述包名,销毁所述最新运行的n个进程之外的各所述包名对应的其他正在运行的各进程;
S43:从所述集合中移除包含在所述集合中的被销毁的各进程的包名。
5、在该步骤中,遍历正在运行的所有进程,提取进程对应的进程信息,进程信息包括进程的包名,进程的编号及其他描述信息。在本实施例中,对所有运行的进程除4个最新运行的进程外,其他各进程根据各进程的包名执行ActivityManager的forceStopPackage方法全部销毁其运行。每次执行完ActivityManager的forceStopPackage方法后,用集合的移除(remove)方法去除集合中包含的该进程的包名,表示该进程已经销毁,不在统计之内。值得注意的是,从集合中移除包名时,以是否执行了销毁进程的动作为前提,避免以进程销毁反馈的条件下,部分进程在销毁后又被唤醒,而不能被集合再次统计进来,结果导致从集合中移除了进程的包名,实则移除的包名对应的进程还存活的情况。
在上述方法中,统计进程的包名的集合只是起到了统计进程数量的作用,当数量触发条件满足时,又重新获取了一遍正在运行的进程,这样做的目的是为了排除有些应用或服务自启了但是没有被统计到集合中的情况。通过该方法,可保证运行在终端的进程数量严格控制在设定的区间范围内,在本实施例中,该区间范围为【4,8】,可理解为可同时运行的应用最大值为8个,当发现第9时就触发了查杀条件,而关闭一些进程。预设值的设置主要是根据终端CPU、内存、手机系统综合设定,CPU处理的越快,表示终端性能强,可以同时兼顾多个应用,内存即手机资源,每一个应用运行都需要内存,内存越大,可同时容纳运行的应用也就越多;终端系统越流畅,处理的逻辑、速度也越快。可同时运行的应用预设值可根据终端设备实际情况和测试验证数据而灵活改变,以使终端的耗电量、内存、CPU使用率达到最优。
在实施本发明前,在移动终端的系统内已进行了一系列的基础构建,在本实施例中,该移动终端使用安卓(Android)系统,具体构建过程如下:
1)在Android系统的framework层,可在描述正在运行的进程的信息文件中加入进程创建标识,该信息文件可为ProcessRecord.java文件。该进程创建标识可表示进程的当前状态,例如,可用真(true)表示进程已创建,用假(false)表示进程已销毁。在进程第一次创建时,进程创建标被识置true,当进程销毁时,进程创建标识被置为false。
2)在Android系统的framework层的基础核心代码块设置进程监听器,在本实施例中,该进程监听器可为IAppProcessListener.aidl,可使用安卓的接口定义语言(AndroidInterface Definition Language,AIDL)来实现。其中,设有进程创建(onNewAppProcessCreated)和销毁(onOldAppProcessDied)的系统方法接口。进程监听器可通过该进程创建的系统方法接口获取进程已创建的信息,也可以通过该进程销毁的系统方法接口获取进程已销毁的信息。
3)在Android系统的framework层的管理系统Binder通信的客户端和服务端方法文件中添加进程监听器注册与取消注册的通信数据交换规则,在本实施例中,该方法文件可为ActivityManagerNative.java。该交换规则可实现进程间的相互的通信。
4)在Android系统的framework层的系统应用程序编程接口(ApplicationProgramming Interface,API)文件中对进程监听器的注册与取消注册动作进行编号登记,在本实施例中,该系统API文件可为IActivityManager.java。
5)在Android系统层的活动管理服务文件中实现进程监听器的两个方法,在本实施例中,该活动管理服务文件可为ActivityManagerService.java。在该文件中可判断进程是否已经创建。如果进程是第一次创建,则调用进程监听器中的进程创建通知方法(onNewAppProcessCreated),并提供创建进程对应的应用包名信息,通过调用该进程创建通知方法,将进程创建标识置为true,表示进程已经创建了;如果进程已销毁,则在进程销毁的监听代码中调用进程监听器的进程销毁通知方法(onOldAppProcessDied),并提供销毁进程对应的应用包名,通过调用该进程销毁通知方法,将进程创建标识置为false。在进程创建时,如果进程是首次创建,则将进程标创建识置为true;如果进程已销毁,则将进程创建标识置为false。
6)在应用端按照Binder通信规则创建一个进程监听器的对象,并重写上述两个方法,以使该进程监听器的对象可用,并对进程监听器对象进行注册,使之有效,因此进程的创建及销毁都会被应用端的监听器的对象监听到。该进程监听器的对象还可用于获取进程的包名。如果进程是首次创建,此时,进程创建标识被置为true,并通知进程监听器的对象进程已经创建;在进程没有销毁前,进程创建标识一直保持为true,进程的再次创建就无效了,此时,也无需再次通知进程监听器的对象;如果进程被销毁了,此时,进程创建标识被置为false,并通知进程监听器的对象进程销毁了。
本发明通过设置进程包名的集合和关闭进程的触发条件,在触发条件满足时,本发明遍历了所有正在运行的进程,确保一些自启或关联唤醒的应用和服务,没有包含在所述集合的情况下也能被彻底关闭。
此外,本发明还提供一种计算机可读存储介质,其中存储有用于终端进程的监听控制的系统程序,所述系统程序在被处理器执行时实现上述本发明的用于终端进程的监听控制方法。在具体应用时:可将该存储介质置于服务端或客户端,也可通过网络对终端的应用进行进行监听和控制,及时有效的关闭运行在终端的过量的进程。
本发明中所提及的终端可为移动终端,包括智能手机,平板电脑,掌上电脑以及各种常见的便携式移动智能终端。另外,本发明所提及的进程可包括终端的应用进程和其他服务。
以上实施例仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以存在许多变形。凡是本领域的普通技术人员能以本发明公开的内容直接导出或是联想到的所有变形均应被认为是本发明的保护范围。
Claims (9)
1.一种用于终端进程的监听控制方法,其特征在于,包括:
S1:将新创建的进程的包名添加至集合,形成包含进程的包名的集合;
S2:根据所述集合中的进程的包名,对所述集合中包名对应的进程的数量进行统计;
S3:当所述集合中包名对应的进程的数量超过预设值时,获取所有正在运行的进程,并确定所有正在运行的进程中最新运行的n个的进程;
S4:销毁所述最新运行的n个进程之外的其他正在运行的各进程,并从所述集合中移除包含在所述集合中的被销毁的各进程的包名。
2.根据权利要求1所述的用于终端进程的监听控制方法,其特征在于,步骤S1具体包括:
S11:判断集合中是否存在新创建的进程的包名;
S12:若不存在,则将所述新创建的进程的包名添加至集合,形成包含进程的包名的集合。
3.根据权利要求1或2所述的用于终端进程的监听控制方法,其特征在于,所述包名的数据类型为String,所述集合是类型为String的进程的包名集合。
4.根据权利要求1所述的用于终端进程的监听控制方法,其特征在于,步骤S4具体包括:
S41:遍历所有正在运行的进程,获取各正在运行的进程的包名;
S42:根据获取到的各所述包名,销毁所述最新运行的n个进程之外的各所述包名对应的其他正在运行的各进程;
S43:从所述集合中移除包含在所述集合中的被销毁的各进程的包名。
5.根据权利要求1所述的用于终端进程的监听控制方法,其特征在于,确定步骤S3中的所述预设值的依据至少为下列中的一种:所述终端的CPU,内存和终端系统性能。
6.根据权利要求5所述的用于终端进程的监听控制方法,其特征在于,确定所述n的依据至少为下列中的一种:所述终端的CPU,内存和终端系统性能。
7.根据权利要求1所述的用于终端进程的监听控制方法,其特征在于,步骤S3中的所述预设值为8。
8.根据权利要求7所述的用于终端进程的监听控制方法,其特征在于,所述n为4。
9.一种计算机可读的存储介质,其特征在于,存储有用于实现所述权利要求1~8方法的计算机可读程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910406410.9A CN111949385A (zh) | 2019-05-16 | 2019-05-16 | 一种用于终端进程的监听控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910406410.9A CN111949385A (zh) | 2019-05-16 | 2019-05-16 | 一种用于终端进程的监听控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111949385A true CN111949385A (zh) | 2020-11-17 |
Family
ID=73336638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910406410.9A Pending CN111949385A (zh) | 2019-05-16 | 2019-05-16 | 一种用于终端进程的监听控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111949385A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140229770A1 (en) * | 2013-02-08 | 2014-08-14 | Red Hat, Inc. | Method and system for stack trace clustering |
CN104050035A (zh) * | 2014-05-14 | 2014-09-17 | 小米科技有限责任公司 | 应用程序的处理方法及装置 |
CN106775975A (zh) * | 2016-12-08 | 2017-05-31 | 青岛海信移动通信技术股份有限公司 | 进程调度方法及装置 |
CN107479953A (zh) * | 2017-07-31 | 2017-12-15 | 广东欧珀移动通信有限公司 | 进程管理方法、装置、存储介质及电子设备 |
-
2019
- 2019-05-16 CN CN201910406410.9A patent/CN111949385A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140229770A1 (en) * | 2013-02-08 | 2014-08-14 | Red Hat, Inc. | Method and system for stack trace clustering |
CN104050035A (zh) * | 2014-05-14 | 2014-09-17 | 小米科技有限责任公司 | 应用程序的处理方法及装置 |
CN106775975A (zh) * | 2016-12-08 | 2017-05-31 | 青岛海信移动通信技术股份有限公司 | 进程调度方法及装置 |
CN107479953A (zh) * | 2017-07-31 | 2017-12-15 | 广东欧珀移动通信有限公司 | 进程管理方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105100032B (zh) | 一种防止资源盗取的方法及装置 | |
CN110232010A (zh) | 一种告警方法、告警服务器及监控服务器 | |
KR102094066B1 (ko) | 모바일 게임에 대한 데이터 처리 방법 및 장치 | |
CN109756528B (zh) | 频率控制方法及装置、设备、存储介质、服务器 | |
CN107943269B (zh) | 调度作业控制方法、装置、终端设备及存储介质 | |
CN113886193A (zh) | 日志数据处理方法、装置、电子设备及存储介质 | |
CN106571933A (zh) | 业务处理方法及装置 | |
CN113468025A (zh) | 一种数据告警方法、系统、装置及存储介质 | |
CN112231191B (zh) | 一种日志采集方法及装置 | |
CN107704317B (zh) | 智能设备及其应用管理方法和具有存储功能的装置 | |
CN115632827A (zh) | 一种网络防护方法、装置、计算机设备和存储介质 | |
CN111949471A (zh) | 一种用于终端进程的监听控制方法 | |
CN111949385A (zh) | 一种用于终端进程的监听控制方法 | |
CN113542256A (zh) | 客户端中登录凭证的更新方法、装置、设备及存储介质 | |
CN113727351A (zh) | 一种通信欺诈识别方法、装置及电子设备 | |
CN117081844A (zh) | 一种网络攻击检测方法、装置、设备及介质 | |
CN115037654A (zh) | 流量统计方法、装置、电子设备及可读存储介质 | |
CN114285647A (zh) | 一种分布式对象存储系统中桶异常访问检测方法及装置 | |
CN114281817A (zh) | 一种数据清洗方法、装置、计算机设备及存储介质 | |
CN110688165A (zh) | 应用唤醒锁管理方法及装置、终端、存储介质及电子装置 | |
CN117294578B (zh) | 一种通信方法、系统、计算机设备和存储介质 | |
CN112261680A (zh) | 调整网络的方法、装置、设备及存储介质 | |
CN118626234B (zh) | 操作响应方法和操作响应装置 | |
CN109062705B (zh) | 进程间通信的监控方法、电子装置以及可读存储介质 | |
CN116185642B (zh) | 容器内存的优化方法及装置、存储介质、电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201117 |
|
RJ01 | Rejection of invention patent application after publication |