一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

进程管控的方法和装置与流程

2022-04-09 02:07:27 来源:中国专利 TAG:


1.本技术涉及终端领域,并且更具体地,涉及一种进程管控的方法和装置。


背景技术:

2.android系统一旦触发原生的低内存清理(low memory killer,lmk)就可能将对用户很重要的应用也清理掉,因此原始设备制造商(original equipment manufacturer,oem)的应用管控会在设备低内存时主动清理应用,从而降低lmk触发的频率。
3.随着系统的升级,系统和应用的内存膨胀,导致设备低内存时需要清理更多的应用。由于现有的技术是将整个应用清理掉,使用户下一次启动应用变为冷启动,影响用户体验。例如,用户在打游戏时,切换到微信应用回复消息,即便时间很短,游戏应用也会被系统清理掉,使得用户需要重启游戏,极大降低了用户体验。
4.因此,如何兼顾内存和应用保活变得尤为重要。


技术实现要素:

5.本技术提供一种进程管控的方法和装置,可以实现终端设备中每个进程的智能管控,在释放内存的同时,避免对用户重要的进程被清理,提高用户体验。
6.第一方面,提供了一种进程管控的方法,包括:获取在终端设备运行的第一应用的第一进程的信息、包名和进程名;根据所述第一进程的信息,确定清理所述第一进程;标记所述第一进程的包名和进程名;根据第二进程的包名和进程名的标记结果,对所述第二进程进行管控。
7.现有的管控方法只能实现应用级别的管控,而本技术实施例的进程管控方法可以实现进程级别的管控,通过对进程的一个或多个特征的多重判定,确定该进程是否为对用户重要的进程,从而决定保留或清理该进程。如此,对于一个应用中的多个进程,可以实现部分保留部分清理,而不必保留整个应用却占用过多内存,或为了内存而将对用户重要的应用整个清理,影响用户的体验。当进程被清理时,本技术实施例的进程管控方法还包括标记该进程的包名和进程名,以便后续根据标记结果对该进程进行管控。
8.在第一方面的一些可能的实现方式中,第一进程的信息包括:主进程、前台进程或后台进程、音频交互进程、导航进程、上传或下载进程、计步进程、adj信息和adjtype信息。
9.本技术实施例的进程管控方法通过训练得到的决策树判定进程应该被清理还是保留,其中,决策树的判定的进程信息包括上述的进程信息,通过判断上述进程信息确定该进程对用户是否重要,从而确定是否清理该进程。
10.在第一方面的一些可能的实现方式中,管控的持续时间为第一时间。
11.本技术实施例的进程管控方法对进程的管控具有持续的一段时间,例如管控直至该进程的应用被终端设备卸载。
12.在第一方面的一些可能的实现方式中,标记所述第一进程的包名和进程名,还包括:标记所述第一进程被清理的第一时刻。
13.在第一方面的一些可能的实现方式中,根据第二进程的包名和进程名的标记结果,对所述第二进程进行管控,包括:所述第二进程启动;根据第二进程的包名和进程名的标记结果确定所述第二进程为被清理过的进程;禁止所述第二进程启动。
14.在第一方面的一些可能的实现方式中,根据所述第二进程的进程名的标记结果,对所述第二进程进行管控,包括:所述第二进程启动;根据第二进程的包名和进程名的标记结果确定所述第二进程为被清理过的进程;判断所述第二进程是否为用户可感知的进程,所述可感知的进程包括前台进程和/或界面可见的进程和/或闹钟进程;如果所述第二进程是用户可感知的进程,允许所述第二进程启动;如果所述第二进程不是用户可感知的进程,禁止所述第二进程启动。
15.很多进程被清理后不可避免的会自动重启,如果不加以管控,则之前的清理功亏一篑。因此,本技术实施例的进程管控方法还包括对被清理后又自动重启的进程的管控。本技术实施例的进程管控方法根据进程的包名和进程名的标记结果判定该进程是否为被清理后又重启的进程,如果是,则禁止该进程启动。或者,本技术实施例的进程管控方法还可以通过判定重启的进程是否为用户可感知的进程来决定禁止或运行该进程的重启。如果是用户可感知的进程,则认为该进程的重启是必要的,如果是用户不可感知的进程,则认为该进程的重启是不必要的。
16.在第一方面的一些可能的实现方式中,允许第一进程重启,还包括:获取第一进程重启的第二时刻;如果第二时刻与第一时刻的间隔小于第一阈值,将第一进程的有效重启次数加1。
17.在第一方面的一些可能的实现方式中,清理第一进程之前,方法还包括:获取第一进程的有效重启次数;如果有效重启次数大于第二阈值,保留第一进程。
18.由于智能决策引擎判断的进程的特征是有限的,为了避免误判对用户重要的进程被清理,本技术实施例的进程管控的方法还包括智能决策引擎的容错机制。即在管控决策结果为清理的情况下,获取该进程的有效重启次数,根据有效重启次数判断是否真的需要清理该进程。
19.第二方面,提供了一种进程管控的装置,其特征在于,包括:获取模块,用于获取在终端设备运行的第一应用的第一进程的信息、包名和进程名;确定模块,用于根据所述第一进程的信息,确定清理所述第一进程;执行模块,用于标记所述第一进程的包名和进程名;所述执行模块还用于根据第二进程的包名和进程名的标记结果,对所述第二进程进行管控。
20.在第二方面的一些可能的实现方式中,第一进程的信息包括:主进程、前台进程或后台进程、音频交互进程、导航进程、上传或下载进程、计步进程、adj信息和adjtype信息。
21.在第二方面的一些可能的实现方式中,管控的持续时间为第一时间。
22.在第二方面的一些可能的实现方式中,执行模块标记所述第一进程的包名和进程名,还包括:标记所述第一进程被清理的第一时刻。
23.在第二方面的一些可能的实现方式中,执行模块根据第二进程的包名和进程名的标记结果,对所述第二进程进行管控,包括:所述第二进程启动;根据第二进程的包名和进程名的标记结果确定所述第二进程为被清理过的进程;禁止所述第二进程启动。
24.在第二方面的一些可能的实现方式中,所述执行模块根据所述第二进程的包名和
进程名的标记结果,对所述第二进程进行管控,包括:所述第二进程启动;根据第二进程的包名和进程名的标记结果确定所述第二进程为被清理过的进程;判断所述第二进程是否为用户可感知的进程,所述可感知的进程包括前台进程和/或界面可见的进程和/或闹钟进程;如果所述第二进程是用户可感知的进程,允许所述第二进程启动;如果所述第二进程不是用户可感知的进程,禁止所述第二进程启动。
25.在第二方面的一些可能的实现方式中,执行模块允许第一进程重启,还包括:获取第一进程重启的第二时刻;如果第二时刻与第一时刻的间隔小于第一阈值,将第一进程的有效重启次数加1。
26.在第二方面的一些可能的实现方式中,执行模块清理第一进程之前,还包括:获取第一进程的有效重启次数;如果有效重启次数大于第二阈值,保留第一进程。
27.第三方面,一种电子设备,其特征在于,包括:存储器,用于存储程序;处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行上述第一方面和第一方面的可能的实现方式与第二方面和第二方面的可能的实现方式中的方法。
28.第四方面,提供了一种计算机可读存储介质,其特征在于,计算机可读存储介质存储有程序代码,程序代码包括用于执行上述第一方面和第一方面的可能的实现方式与第二方面和第二方面的可能的实现方式中的方法的部分或全部步骤的指令。
29.第五方面,本技术方案提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面和第一方面的可能的实现方式与第二方面和第二方面的可能的实现方式中的进程管控的方法。
30.第六方面,本技术方案提供了一种芯片系统,该芯片系统包括至少一个处理器,当程序指令在该至少一个处理器中执行时,使得上述第一方面和第一方面的可能的实现方式与第二方面和第二方面的可能的实现方式中可能的方法在电子设备上的功能得以实现。
附图说明
31.图1是本技术实施例的电子设备的结构示意图;
32.图2是本技术实施例的用户界面的示意性框图;
33.图3是本技术实施例的进程管控的方法应用的系统架构示意图;
34.图4是本技术实施例的进程管控的方法的示意性流程图;
35.图5是本技术实施例的智能决策引擎的示意性框图;
36.图6是本技术实施例的重启进程的管控与智能决策引擎的纠正的示意性框图;
37.图7是本技术实施例的进程管控装置的示意性框图;
38.图8是本技术实施例的进程管控装置的示意性结构图。
具体实施方式
39.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
40.以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对
本技术的限制。如在本技术的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、
“”
、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本技术以下各实施例中,“至少一个”、“一个或多个”是指一个、两个或两个以上。术语“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系;例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a、b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
41.在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
42.本技术实施例提供的进程管控方法可以应用于电子设备。该电子设备可以为终端设备,该终端设备也可称之为用户设备(user equipment,ue)、移动台(mobile station,ms)、移动终端(mobile terminal)等。可选的,该终端设备(以下简称终端)可以具备经无线接入网(radio access network,ran)与一个或多个核心网进行通信的能力。例如,终端可以是移动电话(或称为“蜂窝”电话)、机顶盒、穿戴设备、物联网(internet of things,iot)设备或具有移动性质的计算机等。例如,终端还可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置。应理解的是,除了终端设备以外,本技术实施例提供的进程管控方法也可以应用于其他类型的计算机系统。
43.请参考图1,为本技术实施例提供的电子设备的结构示意图。如图1所示,电子设备100包括存储器180、处理器150以及显示设备140。存储器180存储计算机程序(或称程序代码),该计算机程序包括操作系统程序182和应用程序181等。处理器150用于读取存储器180中的计算机程序,然后执行计算机程序定义的方法,例如处理器150读取操作系统程序182从而在该电子设备100上运行操作系统以及实现操作系统的各种功能,或读取一种或多种应用程序181,从而在该电子设备上运行应用或者进行应用程序的广播消息的处理等。
44.处理器150可以包括一个或多个处理器,例如,处理器150可以包括一个或多个中央处理器,或者包括一个或者多个中央处理器和一个或者多个应用处理器。当处理器150包括多个处理器时,这多个处理器可以集成在同一块芯片上,也可以各自为独立的芯片。一个处理器可以包括一个或多个处理器核(或称处理核),以下实施例均以多核为例来介绍,但是本技术实施例提供的进程管控的方法也可以应用于单核处理器,利用单核处理器的分时工作原理执行多个应用程序的并行运行。
45.另外,存储器180还存储有除计算机程序之外的其他数据183,其他数据183可包括操作系统182或应用程序181被运行后产生的数据等,该数据包括系统数据(例如操作系统的配置参数)和用户数据,例如各个应用的资源使用信息就是典型的用户数据。
46.存储器180一般包括内存和外存。内存可以为随机存储器,只读存储器,以及高速缓存等。外存可以为硬盘、光盘、通用串行总线(universal serial bus,usb)盘、软盘或磁带机等。计算机程序通常被存储在外存上,处理器在执行处理前会将计算机程序从外存加载到内存。
47.操作系统程序182中包含了可实现本技术实施例提供的资源管控方法的计算机程序,从而使得处理器150读取到该操作系统程序182并运行该操作系统后,该操作系统可具备本技术实施例提供的进程管控方法。
48.电子设备100还可以包括输入设备130,用于接收输入的数字信息、字符信息或接触式触摸操作/非接触式手势,以及产生与电子设备100的用户设置以及功能控制有关的信号输入等。具体地,本技术实施例中,该输入设备130可以包括触控面板131。触控面板131,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板131上或在触控面板131的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给该处理器150,并能接收处理器150发来的命令并加以执行。例如,用户在触控面板131上用手指双击一个应用程序的图标,触摸检测装置检测到此次双击带来的这个信号,然后将该信号传送给触摸控制器,触摸控制器再将这个信号转换成坐标发送给处理器150,处理器150根据该坐标和该信号的类型(如双击)执行启动该应用程序等操作,最后将该应用程序的操作界面显示在显示面板141上,从而实现“打开”应用程序。
49.触控面板131可以采用电阻式、电容式、红外线以及表面声波等多种类型实现。除了触控面板131,输入设备130还可以包括其他输入设备132,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
50.电子设备100包括的显示设备140,包括显示面板141,用于显示由用户输入的信息或提供给用户的信息以及电子设备100的各种菜单界面等,在本技术实施例中主要用于显示应用程序的用户操作界面等信息。可选的,可以采用液晶显示器(liquid crystal display,led)或有机发光二极管(organic light-emitting diode,oled)等形式来配置显示面板141。在其他一些实施例中,触控面板131可覆盖显示面板141上,形成触摸显示屏。
51.除以上之外,电子设备100还可以包括用于给其他模块供电的电源190以及用于拍摄照片或视频的摄像头160。电子设备100还可以包括一个或多个传感器120,例如重力传感器、加速度传感器、光传感器等。电子设备100还可以包括无线射频(英文:radio frequency,rf)电路110,用于与无线网络设备进行网络通信,还可以包括wifi模块170,用于与其他设备进行wifi通信等。
52.下面的实施例将以电子设备为执行主体对本技术实施例提供的进程管控的方法进行描述。本技术实施例提供的进程管控方法可以实现在图1所示的操作系统程序182中。
53.在电子设备的应用程序的运行过程中,运行的应用占用的资源较多将会导致操作系统程序的运行速度过慢或卡顿的问题。应用程序的开发采用多进程机制,一个应用程序启动后往往有多个活跃的进程,每个进程都会占用一定的内存。例如微信启动后,有6个活跃的进程,一共占用超过600m的内存。由于应用程序较为复杂,清理后会出现应用内进程相互拉起、主进程崩溃等问题,因此当前的oem厂商的应用管控(应用清理、自启管控等)都是基于应用维度的管控,即一个应用的进程符合保护要求,则该整个应用都会受到保护,即便触发lmk,该应用也不会被清理,应用内存无法得到释放,导致需要清理更多的应用来弥补
不足的内存。
54.例如,当用户在使用淘宝、京东、拼多多应用进行来回切换比价时,当手机内存较低时,此时会对手机内运行的应用进行清理。假设浏览器有个进程在后台下载,为了保护下载顺利进行,目前的技术会使整个浏览器应用的进程都受到保护,只能清理淘宝、京东或者拼多多应用的内存,导致用户无法实现应用切换进行比价,降低用户使用感受。
55.现有的应用管控是基于应用维度的管控,无法实现对一个应用进行部分内存回收;而且也无法解决应用被清理后又自动启动的问题。因此本技术实施例提供一种进程管控的方法,可以实现基于进程维度的管控,使得管控更加精细化,同时可以解决单进程被清理后又出现的反复启动的问题,从而提高用户的使用感受。
56.图2示出了本技术实施例的用户界面的示意性框图,其中图2中的电子设备可以是图1中的电子设备100,通过显示设备140显示图2所示的用户界面。如图2所示,用户可以通过进程显示器查看电子设备中的进程状态。其中,进程显示器可以显示该电子设备中正在运行的一个或多个应用程序,例如华为运动健康、相机、相册、设置等,点击某个应用程序则可以具体查看该应用程序的正在运行的进程的状态,例如点击华为运动健康可以查看该应用程序共有3个进程正在运行,其中每个进程都占用了不同的cpu和内存。本技术实施例的进程管控的方法可以实现对应用程序进程的自动管控,当进程被清理后,则不会显示在进程显示器中。
57.图3示出了本技术实施例的进程管控的方法应用的系统架构示意图。
58.识别模块:用于识别应用状态和进程状态的信息;
59.执行模块:用于执行对单进程进行清理;
60.决策模块:用于决策是否清理单进程或决策是否拦截单进程的启动;
61.拦截模块:用于对清理后的进程的自启动进行拦截。
62.内存状态机每间隔一段时间会检查终端设备当前的内存情况,其中间隔的一段时间可以是人为预设时间值。当终端设备的内存达到低内存,例如达到预设的低内存值时,执行模块会获取终端设备当前运行的所有的进程,并将这些进程分别放入决策模块进行决策。决策模块在进程决策时,会查询识别模块的应用状态识别结果和进程状态识别结果,并结合系统状态和用户设置,决策是否进行单进程清理,并将决策结果返回给执行模块。执行模块根据决策结果执行是否进行清理,如果需要进行单进程清理,则清理该单进程,如果不需要清理,则判断下一个进程。当该单进程被清理后,如果该单进程又自启动,由于安卓进程启动需要依赖四大组件(活动activity、服务service、内容提供content provider、广播接收器broadcast receiver),因此拦截点在四大组件开始的地方进行打点,当四大组件启动的时候决策是否拦截,如果需要拦截,则直接在四大组件启动的地方返回,其中决策是根据该进程是否为用户可感知的进程决定是否对该单进程的自启动进行拦截,如果该单进程是用户可感知的进程,则允许该单进程启动,如果该单进程不是用户可感知的进程,则拦截模块拦截该进程,禁止该单进程启动。
63.图4示出了本技术实施例的进程管控的方法的示意性流程图,如图4所示,包括步骤401至步骤403,以下分别对这些步骤进行详细介绍。
64.s401,获取在终端设备运行的第一应用的第一进程的信息、包名和进程名。
65.本技术实施例的进程管控的方法可以对终端设备中所有运行的进程进行管控,这
里以一个应用中的一个进程为例进行介绍,其他进程的管控过程可以参照该进程的管控过程。包名是安卓应用程序包的唯一标识,安卓系统管理应用时,也是以包名索引,在一个安卓应用程序工程创建之初,包名就已经确定。安卓应用在被启动时,对应的进程的进程名一般就是包名。
66.s402,根据第一进程的信息,确定清理第一进程。
67.具体的,第一进程的特征信息包括是否前后台进程、是否主进程、adj、adjtype、是否音频交互进程、是否运动健康计步进程、是否使用gps的进程、进程的流量使用情况等,应理解,上述只是对本技术实施例的进程管控的方法中进程的特征信息的举例,并不构成对本技术实施例的限定,除了上述举例,本技术实施例的特征信息还可以包括其他可能的进程的特征信息。
68.根据第一进程的信息,确定清理该第一进程,具体的,可以是将该第一进程的信息输入智能决策引擎,智能决策引擎根据该第一进程的信息输出对该第一进程的管控决策结果,其中管控决策结果包括清理和保留。智能决策引擎是根据样本数据预先训练得到的,样本数据包括样本进程的信息和样本进程的管控决策结果。例如,智能决策引擎可以根据决策树算法得到,样本进程的信息可以是上述举例的进程信息,样本进程的管控决策结果可以由人为决定,例如,如果样本进程为前台进程,则管控决策结果为保留该样本进程,如果样本进程为后台进程,则再判断样本进程的其他特征信息。智能决策引擎根据该第一进程的信息输出对该第一进程的管控决策结果具体可以参考图5对于智能决策引擎决策树的介绍,为了简洁,本技术实施例在此不再赘述。具体的,智能决策引擎可以对第一进程的多个特征进行依次判定,依次判定后输出管控决策结果。如果管控决策结果为清理,则清理该第一进程;如果管控结果为保留,则保留该第一进程。特别的,这里对第一进程的管控决策结果为清理该第一进程,然后进行下面的步骤。
69.s403,标记第一进程的包名和进程名。
70.具体的,在清理第一进程后,对第一进程的包名和进程名做标记,标记该进程为被清理的进程。
71.s404,根据第二进程的包名和进程名的标记结果,对第二进程进行管控。
72.该第二进程可以是被清理后又重新启动的第一进程,也可以是未被清理过的其他进程。通过第二进程的包名和进程名,可以判定该第二进程是否被清理过。
73.现有的管控方法只能实现应用级别的管控,而本技术实施例的进程管控方法可以实现进程级别的管控,通过对进程的一个或多个特征的多重判定,确定该进程是否为对用户重要的进程,从而决定保留或清理该进程。如此,对于一个应用中的多个进程,可以实现部分保留部分清理,而不必保留整个应用却占用过多内存,或为了内存而将对用户重要的应用整个清理,影响用户的体验。
74.可选的,上述对于第二进程的管控的持续时间为第一时间,例如第一时间可以是从该第二进程的包名和进程名被标记到该第二进程从电子设备中被卸载。
75.可选的,如果第一进程的管控决策结果为清理,则确定清理该第一进程后,标记该第一进程的包名和进程名,本技术实施例的方法还包括,标记清理该第一进程的时刻,记为第一时刻,以便后续第一进程又启动时对第一进程进行判断。
76.可选的,根据第二进程的包名和进程名的标记结果,对第二进程进行管控,包括,
当第二进程启动时,根据第二进程的包名和进程名的标记结果确定第二进程是否为被清理过的进程。如果是,则直接禁止第二进程启动。
77.可选的,本技术实施例的方法还包括,当第二进程启动时,根据第二进程的包名和进程名的标记结果确定第二进程是否为被清理过的进程。如果是,则再判断该第二进程是否为用户可感知的进程,用户可感知的进程包括但不限于这些情况:该进程是前台进程、该进程带有可见的界面或该进程是闹钟类进程等。如果启动的第二进程不是用户可感知的进程,则禁止第二进程的重启;如果第二进程是用户可感知的进程,则允许第二进程的重启,并且记录第二进程的重启时刻,记为第二时刻。
78.可选的,在允许第二进程启动的情况下,本技术实施例的方法还包括,将第二时刻与第一时刻进行对比,如果第二时刻与第一时刻的间隔小于第一阈值,将第一进程的有效重启次数加1,其中,第一阈值可以是人为规定的时间值。
79.很多进程被清理后不可避免的会自动重启,如果不加以管控,则之前的清理功亏一篑。因此,本技术实施例的进程管控方法还包括对被清理后又自动重启的进程的管控。通过判定重启的进程是否为用户可感知的进程来决定禁止或运行该进程的重启。如果是用户可感知的进程,则认为该进程的重启是必要的,如果是用户不可感知的进程,则认为该进程的重启是不必要的。
80.可选的,在s402中,如果确定第一进程的管控决策结果为清理,则清理该第一进程之前,本技术实施例的方法还包括,获取第一进程的有效重启次数,如果该第一进程的有效重启次数大于第二阈值,则认为该第一进程是对用户重要的进程,则保留该第一进程,其中,第二阈值可以是人为规定的次数。
81.由于智能决策引擎判断的进程的特征是有限的,为了避免误判对用户重要的进程被清理,本技术实施例的进程管控的方法还包括智能决策引擎的容错机制。即在管控决策结果为清理的情况下,获取该进程的有效重启次数,根据有效重启次数判断是否真的需要清理该进程。
82.由此,根据本技术实施例的进程管控的方法,包括对运行的进程的管控、对重启的进程的管控和对进程管控的纠正,可以实现终端设备中每个进程的智能管控,在释放内存的同时,避免对用户重要的进程被清理,提高用户体验。
83.本技术实施例的进程管控的方法包括进程的清理和对进程重启的拦截,以下结合图5和图6分别对本技术实施例的进程管控的方法进行详细介绍。
84.本技术实施例的进程管控的方法首先基于决策树算法训练得到智能决策引擎,智能决策引擎的训练方法包括:
85.(1)决策树特征选择
86.通过分析近一段时间的beta日志,根据信息增益,筛选出决策树特征包括:正在进行的前后台、主进程情况、adj、adjtype、音频交互、运动健康计步、流量使用情况等。其中,近一段时间可以是人为规定的任一段时间,例如三个月。adj为表示android系统的进程的重要程度的标志,adj的值越小,表示进程的重要程度越低。adjtype也是用以定义进程重要程度,用以区分相同adj条件下的不同场景。例如,adj的值为0,表示该进程重要程度高,此时如果adjtype为top-activity,说明该进程为前台进程,如果adjtype为exec-service则表示该进程为前台正在回调的进程。
87.(2)决策树生成
88.本技术实施例的进程管控的方法采用c4.5算法计算信息增益率,来作为节点分裂规则。其中,信息增益率的计算方法如下:
[0089][0090]
其中,d表示训练数据集,a表示决策树特征,v表示特征的个数,dv表示训练数据集中特征为a的个数,ent()表示信息熵。
[0091]
(3)剪枝
[0092]
根据c4.5算法生成的完全决策树对于训练样本来说是过度拟合的,由于完全决策树对训练样本的特征描述过于精确,无法实现对新样本的合理分析,因此需要对决策树进行剪枝。本技术实施例的进程管控的方法采用后剪枝(postpruning)方法中的悲观错误剪枝(pessimistic error pruning,pep)算法。后剪枝方法首先构造完整的决策树,运行决策树过度拟合训练数据,然后对那些置信度不高的结点子树用叶子结点来替代,由于先剪枝方法中精确地估计何时停止决策树增长很困难,因此后剪枝方法更方便。pep算法是根据剪枝前后的错误率来判定子树的修剪,该算法采用自顶向下的方式,如果某个非叶子结点符合如下的不等式,则裁剪掉该叶子结点。
[0093]
e'(t)≤e'(t
t
) se(e'(t
t
))
[0094]
其中,t表示决策树中的结点,t
t
表示包含节点t的子树,e()表示
……
e'(),se()表示标准差。
[0095]
通过以上训练,可以得到如图5所示的智能决策引擎树。根据该智能决策引擎树,可以判断应用中的单个进程是否需要清理。例如,对于某个应用中的单个进程,根据智能决策引擎树,首先判定该进程是前台运行还是后台运行,如果是前台运行,则保留该进程(不清理),如果是后台运行,则再判定该进程是否主进程;如果该进程是主进程,则保留,如果不是,则再判定该进程的adj值,如果该进程的adj值小于900,则保留该进程,如果该进程的adj值大于1000,则清理该进程,如果该进程的adj值在区间[900,1000]内,则再判定该进程的adjtype;如果该进程的adjtype为其他,则保留该进程,如果该进程的adjtype为cch-empty,表示为空进程,则清理该进程,如果该进程的adjtype为cch-bound-services,表示前台绑定的服务,或者为cch-client-act,表示与前台界面关联的进程,则再判定该进程是否音频交互;如果该进程是音频交互,例如是录音或放音等,则保留该进程,如果不是,则再判定该进程是否是运动健康计步,如果是,则保留该进程,如果不是,则再判定该进程的流量使用情况,如果是高流速,则保留该进程,如果是低流速,则清理该进程。
[0096]
由此,根据上述训练好的智能决策引擎树,可以决策出某个应用的某个进程是否应该被清理。相比于现有技术,本技术实施例的进程管控的方法可以实现对于应用的单进程的管控。
[0097]
当进程被清理后,该进程可能会自动重启,如果不加以拦截,该进程依然会占用内存。因此本技术实施例的进程管控的方法还包括对进程重启的拦截。
[0098]
如图6所示,当被清理后的某一进程准备重启时,本技术实施例的进程管控的方法会判断该进程是否为用户可感知的进程,其中,用户可感知的进程包括但不限于这些情况:该进程是前台进程、该进程带有可见的界面或该进程是闹钟类进程等。如果该进程不是用
户可感知的进程,则拦截该进程的重启;如果该进程是用户可感知的进程,则允许该进程的重启,并且记录该进程的重启信息。
[0099]
本技术实施例的进程管控的方法还包括智能决策引擎的纠正机制。在图5所示的智能决策引擎对某一进程决策结果为不保留时,在清理该进程之前,为该进程加上时间戳标记,以表示该进程被清理的时刻。如果该进程不重启,则结束;如果该进程自动重启,并且如上所述判断得到该进程为用户可感知的进程时,则允许该进程重启,并且判断该进程重启的时间与前述记录的时间戳的时间间隔,如果该时间间隔小于10秒,则将该进程的有效重启次数加1,否则结束。如果该进程的有效重启次数大于3次,则判定该进程为不应该被清理的进程,并且将该判定结果更新到引擎纠正的学习结果中,否则结束。在下一次智能决策引擎对某一进程决策结果为不保留时,在清理该进程之前,判断该进程是否为学习结果中的不应该被清理的进程,如果是,则保留该进程,如果不是,则依然清理该进程。为了避免应用升级带来的逻辑改变,该学习结果的持续时间以及标记的持续时间为从标记到应用被卸载。
[0100]
本技术实施例的进程管控的方法中的拦截机制可以解决进程被清理后又反复自动重启而占有内存的问题。智能决策引擎的纠正机制可以使智能决策引擎更加智能,避免误判清理对用户重要的进程而降低用户的使用感受。
[0101]
使用本技术实施例的进程管控方法,终端设备在6g上保活应用数量提升0.6个,提升8.5%。上一次使用应用保活率从95.85%提升到98.50%。上两次使用应用从87.15%提升到94.12%。beta大数据显示触发原有的清理次数大幅度减少,其中,微信被清理次数下降40%左右。
[0102]
图7是本技术实施例的进程管控装置的示意性框图,如图7所示包括获取模块701、确定模块702、执行模块703。
[0103]
获取模块701,用于获取在终端设备运行的第一应用的第一进程的信息、包名和进程名。
[0104]
确定模块702,用于根据所述第一进程的信息,确定清理所述第一进程。
[0105]
执行模块703,用于标记所述第一进程的包名和进程名。
[0106]
该执行模块703还用于根据第二进程的包名和进程名的标记结果,对所述第二进程进行管控。
[0107]
可选的,第一进程的信息包括:主进程、前台进程或后台进程、音频交互进程、导航进程、上传或下载进程、计步进程、adj信息和adjtype信息。
[0108]
可选的,执行模块703对于第二进程的管控的持续时间为第一时间,例如,第一时间可以是从第二进程的包名和应用名被标记到第二进程从电子设备卸载的时间。
[0109]
可选的,执行模块703标记所述第一进程的包名和进程名,还包括:标记所述第一进程被清理的第一时刻。
[0110]
可选的,执行模块703执行模块根据第二进程的包名和进程名的标记结果,对所述第二进程进行管控,包括:所述第二进程启动;根据第二进程的包名和进程名的标记结果确定所述第二进程为被清理过的进程;禁止所述第二进程启动。
[0111]
可选的,执行模块703根据所述第二进程的包名和进程名的标记结果,对所述第二进程进行管控,包括:所述第二进程启动;根据第二进程的包名和进程名的标记结果确定所
述第二进程为被清理过的进程;判断所述第二进程是否为用户可感知的进程,所述可感知的进程包括前台进程和/或界面可见的进程和/或闹钟进程;如果所述第二进程是用户可感知的进程,允许所述第二进程启动;如果所述第二进程不是用户可感知的进程,禁止所述第二进程启动。
[0112]
可选的,允许所述第二进程启动,还包括:获取所述第二进程启的第二时刻;如果所述第二时刻与所述第一时刻的间隔小于第一阈值,将所述第一进程的有效重启次数加1。
[0113]
可选的,确定模块702
[0114]
确定模块确定清理所述第一进程之前,还包括:获取所述第一进程的有效重启次数;如果所述有效重启次数大于第二阈值,保留所述第一进程。
[0115]
图8是本技术实施例的进程管控装置的示意性结构图。图8所示的进程管控装置800包括存储器801、处理器802、通信接口803以及总线804。其中,存储器801、处理器802、通信接口803通过总线804实现彼此之间的通信连接。
[0116]
上述通信接口803相当于进程管控装置700中的获取模块701,上述处理器802相当于进程管控装置700中的确定模块702和执行模块703。下面对进程管控装置800中的各个模块和单元进行详细的介绍。
[0117]
存储器801可以是只读存储器(read only memory,rom),静态存储设备,动态存储设备或者随机存取存储器(random access memory,ram)。存储器801可以存储程序,当存储器801中存储的程序被处理器802执行时,处理器802和通信接口803用于执行本技术实施例的进程管控方法的各个步骤。具体地,通信接口803可以从存储器或者其他设备中获取进程的信息、包名和进程名,然后由处理器802对该进程进行进程管控。
[0118]
处理器802可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),图形处理器(graphics processing unit,gpu)或者一个或多个集成电路,用于执行相关程序,以实现本技术实施例的进程管控装置中的单元所需执行的功能(例如,处理器802可以实现上述进程管控装置700中的确定模块702和执行模块703所需执行的功能),或者执行本技术实施例的进程管控方法。
[0119]
处理器802还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术实施例的进程管控方法的各个步骤可以通过处理器802中的硬件的集成逻辑电路或者软件形式的指令完成。
[0120]
上述处理器802还可以是通用处理器、数字信号处理器(digital signal processing,dsp)、asic、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。上述通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器802读取存储器801中的信息,结合其硬件完成本技术实施例的进程管控装置中包括的单元所需执行的功能,或者执行本技术方法实施例的进程管控方法。
[0121]
通信接口803使用例如但不限于收发器一类的收发装置,来实现装置800与其他设
备或通信网络之间的通信。例如,可以通过通信接口803获取进程的信息、包名和进程名。
[0122]
总线804可包括在装置800各个部件(例如,存储器801、处理器802、通信接口803)之间传送信息的通路。
[0123]
应理解,尽管上述装置800仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置800还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置800还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置800也可仅仅包括实现本技术实施例所必须的器件,而不必包括图8中所示的全部器件。
[0124]
在一个实施例中,当处理模块为处理器,存储模块为存储器时,本实施例所涉及的电子设备可以为具有图1所示结构的设备。
[0125]
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的进程管控的方法。
[0126]
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的进程管控的方法。
[0127]
另外,本技术的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的进程管控的方法。
[0128]
其中,本实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
[0129]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0130]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0131]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0132]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0133]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0134]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0135]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献