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

用于安卓系统的内存环境实时优化方法及系统与流程

2021-11-10 03:29:00 来源:中国专利 TAG:


1.本发明涉及计算机控制技术领域,具体地涉及一种用于安卓系统的内存环境实时优化方法,以及一种用于安卓系统的内存环境实时优化系统。


背景技术:

2.现有的android系统都存在内存回收机制,具体包括内存回收和内核级回收。设备在使用过程中,上层应用会占用设备内存资源,当多个应用打开没有关闭或者关闭没有及时释放资源等,会导致内存占用越来越多。另一方面当前应用市场上普遍存在一种现象:应用变得越来越庞大,功能越来越多,占用资源也越来越多,而且应用本身又没有节省资源的出发点,不注重资源的管理,往往多个应用使用后会造成用户操作卡顿或者加载缓慢等,严重影响用户体验。
3.android系统原生回收机制中,主要是以下几个变量(后文用内存变量代替)在影响机制的回收:
4.1)mprocesslimit(分为emptyprocesslimit和cachedprocesslimit):进程管理服务(activitymanagerservice)中的全局变量,决定后台数量,默认为24;
5.2)oom_score_adj:实际对应进程的优先级,根据进程活动变化(前后台)
6.3)/sys/module/lowmemorykiller/parameters/adj:低内存回收进程(lowmemorykiller)主要设定值之一,设定进程清理的等级或者说优先级;
7.4)/sys/module/lowmemorykiller/parameters/minfree:lowmemorykiller主要设定值之一,为内存阈值,当前页面达到阈值则清理掉对应优先级的进程。
8.实际应用场景中,内存变化更加复杂,现有的android系统回收策略中这几个主要变量都是固定值,不够灵活,无法定制化内存策略,无法根据实时内存变化进行变更,不适应实际场景的使用。并且不可控制重要进程名单,无法对必要业务或者系统的后台进程进行保护。


技术实现要素:

9.本发明实施例的目的是提供一种用于安卓系统的内存环境实时优化方法及系统,该方法能够提供更丰富的内存环境优化条件,以便用户根据需求进行不同的内存环境优化条件设置,不同的优化条件对应不同的优化等级,不同优化等级对应不同的优化策略,优化条件中提供了重要进程名单,有利于对用户的必要业务或者系统的后台进行保护,避免在优化过程中清除掉用户的必要业务和系统的后台。
10.为了实现上述目的,本发明实施例提供一种用于安卓系统的内存环境实时优化方法,包括:
11.获取系统内存信息;
12.根据内存环境优化条件内容和所述内存信息判断系统是否符合优化条件,若符合,则按照优化条件对应的回收策略对系统内存环境进行优化;
13.所述优化条件内容包括:优化条件、内存回收等级和优化条件的优先级,所述优化条件包括:内存占用率阈值、剩余内存大小阈值、后台数量、重要进程名单、重要进程数量阈值、内存剩余率阈值、cpu占用率阈值和单独进程占用内存阈值;所述内存回收等级与所述回收策略一一对应。
14.进一步地,所述方法还包括:
15.在获取系统内存信息前,获取用户对内存环境优化条件内容的配置和对回收策略的配置。用户可以配置优化条件、不同优化条件对应的内存回收等级以及不同优化条件的优先级。不同的优化条件以及不同的优化条件的优先级能够为用户提供更多的条件组合,能够适用更多的实际场景。
16.可选的,所述回收策略包括:内存阈值、进程限制阈值和各应用的用户打分阈值。
17.可选的,所述系统内存信息包括:系统内存占用率、系统剩余内存大小、系统剩余内存率、后台进程数量、后台进程名单、各进程占用内存大小以及cpu占用率。获取到的内存信息与优化条件相对应,按照优化条件来判断是否可以进行内存环境优化。
18.可选的,所述获取系统内存信息,包括:
19.通过api获取系统内存信息。api为安卓系统的中接口,可以通过调用api来获取内存信息,不改变系统结构。
20.可选的,所述获取系统内存信息,包括:
21.通过命令获取系统内存信息。通过命令获取系统内存信息不容易被伪装。
22.进一步地,所述优化条件的优先级用于限定各项所述优化条件在判断系统是否符合优化条件过程中的先后顺序;
23.所述根据所述内存优化条件内容和所述内存信息判断系统是否符合优化条件,若符合,则按照优化条件对应的回收策略对系统内存环境进行优化,包括:
24.按照所述优先级从高到低逐级判断所述内存信息是否符合对应的优化条件:
25.若符合,则停止执行下一级判断,根据对应的优化条件确定内存回收等级;根据所述内存回收等级确定回收策略,按照所述回收策略对系统内存环境进行优化;
26.若不符合,则继续判断是否符合下一级的优化条件,直到遍历所有优化条件,若所有优化条件都不符合,则结束本轮优化。在内存环境优化过程中,不同的优先级的优化条件进行判断的先后顺序不一样,用户在配置时根据自己的需要将自己最关注的优化条件设置为最高优先级,其他次要优化条件依顺序排列,满足用户不同需求。
27.可选的,所述根据所述内存回收等级确定回收策略,按照所述回收策略对系统内存环境进行优化,包括:
28.根据所述内存回收等级确定回收策略;
29.按照所述回收策略对应的进程限制阈值和各应用的用户打分阈值向系统的低内存回收进程赋值,以使低内存回收进程按照所述回收策略对系统内存环境进行优化。安卓系统自带低内存回收进程,在不去除该低内存回收进程的情况下,设置更丰富的优化条件,在符合这些优化条件时,通过赋值的方式使系统数据达到自带低内存回收进程进行内存清理的对应指标,从而通过安卓系统自带低内存回收进程实现内存回收。
30.本发明第二方面提供一种用于安卓系统的内存环境实时优化系统,包括:
31.内存信息获取单元,用于获取系统内存信息;
32.内存环境优化单元,用于根据内存环境优化条件内容和所述内存信息判断系统是否符合优化条件,若符合,则按照优化条件对应的回收策略对系统内存环境进行优化;
33.配置单元,用于获取用户对内存环境优化条件内容的配置和对回收策略的配置;
34.所述优化条件内容包括:优化条件、内存回收等级和优先级,所述优化条件包括:内存占用率阈值、剩余内存大小阈值、后台数量、重要进程名单、重要进程数量阈值、内存剩余率阈值、cpu占用率阈值和单独进程占用内存阈值;所述内存回收等级与所述回收策略一一对应。该系统提供丰富的内存优化条件内容配置功能,用户可以根据需求自行灵活配置,更适应实际使用场景。
35.另一方面,本发明提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行本技术所述的用于安卓系统的内存环境实时优化方法。
36.通过上述技术方案,能够提供更丰富的内存环境优化条件,以便用户根据需求进行不同的内存环境优化条件设置,不同的优化条件对应不同的优化等级,不同优化等级对应不同的优化策略,优化条件中提供了重要进程名单,有利于对用户的必要业务或者系统的后台进行保护,避免在优化过程中清除掉用户的必要业务和系统的后台。
37.本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
38.附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
39.图1是本发明一种实施方式提供的用于安卓系统的内存环境实时优化方法流程图;
40.图2是本发明另一种实施方式提供的用于安卓系统的内存环境实时优化方法流程图;
41.图3是本发明一种实施方式提供的用于安卓系统的内存环境实时优化系统框图。
具体实施方式
42.以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
43.实施例一
44.图1是本发明一种实施方式提供的用于安卓系统的内存环境实时优化方法流程图。如图1所示,所述方法包括:
45.获取用户对内存环境优化条件内容的配置和对回收策略的配置;
46.通过api获取系统内存信息;
47.根据内存环境优化条件内容和所述内存信息判断系统是否符合优化条件,若符合,则按照优化条件对应的回收策略对系统内存环境进行优化;
48.所述优化条件内容包括:优化条件、内存回收等级和优化条件的优先级,所述优化条件包括:内存占用率阈值、剩余内存大小阈值、后台数量、重要进程名单、重要进程数量阈值、内存剩余率阈值、cpu占用率阈值和单独进程占用内存阈值;所述内存回收等级与所述
回收策略一一对应。
49.用户可以自主配置优化条件、不同优化条件对应的内存回收等级以及不同优化条件的优先级。不同的优化条件以及不同的优化条件的优先级能够为用户提供更多的条件组合,能够适用更多的实际场景。
50.在本实施例中,所述回收策略包括:内存阈值、进程限制阈值和各应用的用户打分阈值。
51.在本实施例中,所述系统内存信息包括:系统内存占用率、系统剩余内存大小、系统剩余内存率、后台进程数量、后台进程名单、各进程占用内存大小以及cpu占用率。获取到的内存信息与优化条件相对应,按照优化条件来判断是否可以进行内存环境优化。
52.在本实施例中,通过api获取系统内存信息。api为安卓系统的中接口,可以通过调用api来获取内存信息,不改变系统结构。在一些实施例中api可以是activity manager中的get memory info。
53.在本实施例中,所述优化条件的优先级用于限定各项所述优化条件在判断系统是否符合优化条件过程中的先后顺序,用户在配置时根据自己的需要将自己最关注的优化条件设置为最高优先级,其他次要优化条件依顺序排列;
54.所述根据所述内存优化条件内容和所述内存信息判断系统是否符合优化条件,若符合,则按照优化条件对应的回收策略对系统内存环境进行优化,包括:
55.按照所述优先级从高到低逐级判断所述内存信息是否符合对应的优化条件:
56.若符合,则停止执行下一级判断,根据对应的优化条件确定内存回收等级;根据所述内存回收等级确定回收策略,按照所述回收策略对系统内存环境进行优化;
57.若不符合,则继续判断是否符合下一级的优化条件,直到遍历所有优化条件,若所有优化条件都不符合,则结束本轮优化。在内存环境优化过程中,不同的优先级的优化条件进行判断的先后顺序不一样,满足用户不同需求。
58.需要说明的是,在本实施例中,去除了安卓系统上自带的低内存回收进程lowmemkiller,在判断满足回收条件后,直接清除掉符合回收策略的进程以达到回收的目的。
59.在一个实施例中,内存占用率阈值为五个等级,分别为:10%,30%,40%,50%,75%;剩余内存大小阈值为五个等级,分别为:80m,150m,250m,350m,500m;后台数量为:3,4,5,6,7;重要进程名单包括:第一进程、第二进程、
……
第十进程,共10个;重要进城数量阈值为:1,2,3,4,5;内存剩余阈值为五个等级,分别为:10%,20%,40%,60%,75%;cpu占用率阈值为五个等级,分别为:10%,20%,40%,60%,75%;单独进程占用内存阈值为:100m、110m、130m、160m、200m。
60.内存回收等级包括五个等级,分别为:
61.第一级:内存占用率阈值10%、剩余内存大小阈值为500m、后台数量等于3、重要进程为1个、剩余内存阈值为75%、cpu占用率阈值为10%、单独进程占用内存阈值100m中的任一项;
62.第二级:内存占用率阈值30%、剩余内存大小阈值为350m、后台数量等于4、重要进程为2个、剩余内存阈值为60%、cpu占用率阈值为20%、单独进程占用内存阈值110m中的任一项;
63.第三级:内存占用率阈值40%、剩余内存大小阈值为250m、后台数量等于5、重要进程为3个、剩余内存阈值为40%、cpu占用率阈值为40%、单独进程占用内存阈值130m中的任一项;
64.第四级:内存占用率阈值60%、剩余内存大小阈值为150m、后台数量等于6、重要进程为4个、剩余内存阈值为20%、cpu占用率阈值为60%、单独进程占用内存阈值160m中的任一项;
65.第五级:内存占用率阈值75%、剩余内存大小阈值为80m、后台数量等于7、重要进程为5个、剩余内存阈值为10%、cpu占用率阈值为75%、单独进程占用内存阈值200m中的任一项。
66.优先级为:内存占用率阈值>剩余内存大小阈值>后台数量>重要进程名单>重要进程数量阈值>内存剩余率阈值>cpu占用率阈值>单独进程占用内存阈值。
67.回收策略中,内存阈值/sys/module/lowmemorykiller/parameters/minfree为五个等级,分别为:1024,2048,3072,3584,4096;
68.进程限制阈值max_cached_apps
‑‑
mprocesslimit为系统默认值,
69.各应用的用户打分阈值/sys/module/lowmemorykiller/parameters/adj分别为:0,58,176,529,1000。
70.第一档回收策略是:内存阈值4096,各应用的用户打分阈值1000;第二档回收策略是:内存阈值3584,各应用的用户打分阈值529;第三档回收策略是:内存阈值3072,各应用的用户打分阈值176;第四档回收策略是:内存阈值2048,各应用的用户打分阈值58;第五档回收策略是:内存阈值1024,各应用的用户打分阈值0。第一档回收策略对应第一级内存回收等级,以此类推。在上述回收策略中,第一档回收策略表示可用内存低于4096*4k时,清除掉各应用的用户打分阈值oom_score_adj>=1000的应用,其他回收策略依次类推。
71.需要说明的是,上述实施例中的各项取值仅用于示例说明,具体数值可根据经验数据或者用户需要设置。
72.通过api获取系统内存信息包括:系统内存占用率20%、系统剩余内存大小750m、系统剩余内存率75%、后台进程数量3、后台进程包括:第十五进程占用内存90m、第二十进程占用内存75m、第二十一进程占用内存85m;cpu占用率8%。
73.系统在获取到上述系统内存信息后,根据优化条件进行判断,根据优先级,首先判断内存占用率阈值,系统内存占用率20%符合第一级内存回收等级,因此需要执行与第一级内存回收等级对应的第一档回收策略,将用户打分阈值大于等于1000的应用清除关闭。
74.需要说明的是,上述实施例中由于第一优先级的优化条件就已经满足,因此后续条件不需要再进行判断,在优先级靠前的优化条件不满足时,才需要继续进行下一级的优化条件的判断。
75.实施例二
76.图2是本发明一种实施方式提供的用于安卓系统的内存环境实时优化方法流程图。如图2所示,所述方法包括:
77.获取用户对内存环境优化条件内容的配置和对回收策略的配置;
78.通过命令获取系统内存信息;
79.根据内存环境优化条件内容和所述内存信息判断系统是否符合优化条件,若符
合,则按照优化条件对应的回收策略对系统内存环境进行优化;
80.所述优化条件内容包括:优化条件、内存回收等级和优化条件的优先级,所述优化条件包括:内存占用率阈值、剩余内存大小阈值、后台数量、重要进程名单、重要进程数量阈值、内存剩余率阈值、cpu占用率阈值和单独进程占用内存阈值;所述内存回收等级与所述回收策略一一对应。
81.用户可以自主配置优化条件、不同优化条件对应的内存回收等级以及不同优化条件的优先级。不同的优化条件以及不同的优化条件的优先级能够为用户提供更多的条件组合,能够适用更多的实际场景。
82.在本实施例中,所述回收策略包括:内存阈值、进程限制阈值和各应用的用户打分阈值。
83.在本实施例中,所述系统内存信息包括:系统内存占用率、系统剩余内存大小、系统剩余内存率、后台进程数量、后台进程名单、各进程占用内存大小以及cpu占用率。获取到的内存信息与优化条件相对应,按照优化条件来判断是否可以进行内存环境优化。
84.在本实施例中,通过命令获取系统内存信息不容易被伪装。在一些实施例中命令可以是cat/proc/meminfo;dumpsys meminfo;top;ps。
85.在本实施例中,所述优化条件的优先级用于限定各项所述优化条件在判断系统是否符合优化条件过程中的先后顺序,用户在配置时根据自己的需要将自己最关注的优化条件设置为最高优先级,其他次要优化条件依顺序排列;
86.所述根据所述内存优化条件内容和所述内存信息判断系统是否符合优化条件,若符合,则按照优化条件对应的回收策略对系统内存环境进行优化,包括:
87.按照所述优先级从高到低逐级判断所述内存信息是否符合对应的优化条件:
88.若符合,则停止执行下一级判断,根据对应的优化条件确定内存回收等级;根据所述内存回收等级确定回收策略,按照所述回收策略对系统内存环境进行优化;
89.若不符合,则继续判断是否符合下一级的优化条件,直到遍历所有优化条件,若所有优化条件都不符合,则结束本轮优化。在内存环境优化过程中,不同的优先级的优化条件进行判断的先后顺序不一样,满足用户不同需求。
90.需要说明的是,在本实施例中,保留了安卓系统上自带的低内存回收进程lowmemkiller。因此,在本实施例中,根据所述内存回收等级确定回收策略,按照所述回收策略对系统内存环境进行优化,包括:
91.根据所述内存回收等级确定回收策略;
92.按照所述回收策略对应的进程限制阈值和各应用的用户打分阈值向系统的低内存回收进程赋值,以使低内存回收进程按照所述回收策略对系统内存环境进行优化。安卓系统自带低内存回收进程,在不去除该低内存回收进程的情况下,设置更丰富的优化条件,在符合这些优化条件时,通过赋值的方式使系统数据达到自带低内存回收进程进行内存清理的对应指标,从而通过安卓系统自带低内存回收进程实现内存回收。
93.具体的,通过修改进程限制阈值mprocesslimit以及对应进程的oom_score_adj使之达到低内存回收进程lowmemkiller条件,从而清除进程。常用方式为,当需要进行回收时,调整对应进程的oom_score_adj为1000,或者调整为:对应内存阈值minfree的最小内存时,最大adj都可以达到回收后台进程目的。并通过修改max_cached_apps大小,减小系统缓
存,使之更加流畅。
94.需要说明的是,上述内存变量的修改是根据配置文件lowmemkiller_condtion.xml来配置的。
95.同时需要注意的是:oom_score_adj=0时不可回收,因为这个代表着时前台进程,需要保护,不然会直接清除掉可视界面。
96.在一个实施例中,内存占用率阈值为五个等级,分别为:10%,30%,40%,50%,75%;剩余内存大小阈值为五个等级,分别为:80m,150m,250m,350m,500m;后台数量为:3,4,5,6,7;重要进程名单包括:第一进程、第二进程、
……
第十进程,共10个;重要进城数量阈值为:1,2,3,4,5;内存剩余阈值为五个等级,分别为:10%,20%,40%,60%,75%;cpu占用率阈值为五个等级,分别为:10%,20%,40%,60%,75%;单独进程占用内存阈值为:100m、110m、130m、160m、200m。
97.内存回收等级包括五个等级,分别为:
98.第一级:内存占用率阈值10%、剩余内存大小阈值为500m、后台数量等于3、重要进程为1个、剩余内存阈值为75%、cpu占用率阈值为10%、单独进程占用内存阈值100m中的任一项;
99.第二级:内存占用率阈值30%、剩余内存大小阈值为350m、后台数量等于4、重要进程为2个、剩余内存阈值为60%、cpu占用率阈值为20%、单独进程占用内存阈值110m中的任一项;
100.第三级:内存占用率阈值40%、剩余内存大小阈值为250m、后台数量等于5、重要进程为3个、剩余内存阈值为40%、cpu占用率阈值为40%、单独进程占用内存阈值130m中的任一项;
101.第四级:内存占用率阈值60%、剩余内存大小阈值为150m、后台数量等于6、重要进程为4个、剩余内存阈值为20%、cpu占用率阈值为60%、单独进程占用内存阈值160m中的任一项;
102.第五级:内存占用率阈值75%、剩余内存大小阈值为80m、后台数量等于7、重要进程为5个、剩余内存阈值为10%、cpu占用率阈值为75%、单独进程占用内存阈值200m中的任一项。
103.优先级为:内存占用率阈值<剩余内存大小阈值<后台数量<重要进程名单<重要进程数量阈值<内存剩余率阈值<cpu占用率阈值<单独进程占用内存阈值。
104.回收策略中,内存阈值/sys/module/lowmemorykiller/parameters/minfree为五个等级,分别为:1024,2048,3072,3584,4096;
105.进程限制阈值max_cached_apps
‑‑
mprocesslimit为系统默认值,
106.各应用的用户打分阈值/sys/module/lowmemorykiller/parameters/adj分别为:0,58,176,529,1000。
107.第一档回收策略是:内存阈值4096,各应用的用户打分阈值1000;第二档回收策略是:内存阈值3584,各应用的用户打分阈值529;第三档回收策略是:内存阈值3072,各应用的用户打分阈值176;第四档回收策略是:内存阈值2048,各应用的用户打分阈值58;第五档回收策略是:内存阈值1024,各应用的用户打分阈值0。第一档回收策略对应第一级内存回收等级,以此类推。在上述回收策略中,第一档回收策略表示可用内存低于4096*4k时,清除
掉各应用的用户打分阈值oom_score_adj>=1000的应用,其他回收策略依次类推。
108.需要说明的是,上述实施例中的各项取值仅用于示例说明,具体数值可根据经验数据或者用户需要设置。
109.通过命令获取的系统内存信息包括:系统内存占用率20%、系统剩余内存大小750m、系统剩余内存率75%、后台进程数量3、后台进程包括:第十五进程占用内存90m、第二十进程占用内存75m、第二十一进程占用内存85m;cpu占用率8%。
110.系统在获取到上述系统内存信息后,根据优化条件进行判断,根据优先级,首先判断单独进程占用内存阈值,单独进程占用内存阈值最大为90m,不符合任意的优化条件;然后判断cpu占用率阈值,cpu占用率为8%,也不符合任一的优化条件;然后判断内存剩余率阈值,内存剩余率阈值为75%,符合第一级内存回收等级,因此需要执行与第一级内存回收等级对应的第一档回收策略,通过调整对应进程的oom_score_adj为1000,将用户打分阈值大于等于1000的应用清除关闭。
111.实施例三
112.图3是本发明一种实施方式提供的用于安卓系统的内存环境实时优化系统框图。如图3所示,所述内存环境实时优化系统包括:
113.内存信息获取单元,用于获取系统内存信息;
114.内存环境优化单元,用于根据内存环境优化条件内容和所述内存信息判断系统是否符合优化条件,若符合,则按照优化条件对应的回收策略对系统内存环境进行优化;
115.配置单元,用于获取用户对内存环境优化条件内容的配置和对回收策略的配置;
116.所述优化条件内容包括:优化条件、内存回收等级和优先级,所述优化条件包括:内存占用率阈值、剩余内存大小阈值、后台数量、重要进程名单、重要进程数量阈值、内存剩余率阈值、cpu占用率阈值和单独进程占用内存阈值;所述内存回收等级与所述回收策略一一对应。该系统提供丰富的内存优化条件内容配置功能,用户可以根据需求自行灵活配置,更适应实际使用场景。
117.本发明还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行本技术所述的用于安卓系统的内存环境实时优化方法。
118.以上结合附图详细描述了本发明实施例的可选实施方式,但是,本发明实施例并不限于上述实施方式中的具体细节,在本发明实施例的技术构思范围内,可以对本发明实施例的技术方案进行多种简单变型,这些简单变型均属于本发明实施例的保护范围。
119.另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施例对各种可能的组合方式不再另行说明。
120.本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
121.此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。
再多了解一些

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

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

相关文献