安卓系统资源管理方法、装置、终端设备和可读存储介质与流程

文档序号:23728568发布日期:2021-01-26 18:37阅读:113来源:国知局
安卓系统资源管理方法、装置、终端设备和可读存储介质与流程

[0001]
本发明涉及电子技术领域,尤其涉及一种安卓系统资源管理方法、装置、终端设备和可读存储介质。


背景技术:

[0002]
为了满足用户的各种需求,安卓操作系统的不断更迭,软件系统越来越庞大,功能越来越丰富,这样导致操作系统后台的应用越来越大,为了提供更好的服务,后台也有各种应用在不断运行。目前,安卓操作系统后台缺乏对后台应用或者资源的有效管理,或者管理策略是不合理,导致当我们在使用当前应用的过程中,常常因为后台占有的资源太多,导致应用卡死,自动退出当前应用的情况,严重影响用户体验。


技术实现要素:

[0003]
鉴于上述问题,本发明提出一种安卓系统资源管理方法、装置、终端设备和可读存储介质。
[0004]
本发明的一个实施例提出一种安卓系统资源管理方法,该方法包括:
[0005]
获取用户在当前应用下的交互操作;
[0006]
确定所述交互操作是否存在对应的交互时间;
[0007]
若不存在对应的交互时间,则设置所述交互操作对应的交互时间;
[0008]
若存在对应的交互时间,则按照预设的时间减量刷新所述对应的交互时间;
[0009]
确定所述交互操作对应的当前进程以及与所述当前进程相关的相关进程;
[0010]
将所述当前进程和所述相关进程添加至预设的白名单中;
[0011]
在所述交互时间内,若系统执行lowmemorykiller机制,保证所述白名单内的进程正常运行。
[0012]
上述确定所述交互操作对应的当前进程以及与所述当前进程相关的相关进程,包括:
[0013]
利用在所述当前应用启动时标记的当前应用启动所述交互操作对应的子应用;
[0014]
将所述子应用对应的进程作为所述当前进程;
[0015]
利用所述当前进程调用ipc机制以确定与所述当前进程相关的相关进程。
[0016]
本发明的另一个实施例所述的安卓系统资源管理方法,所述若系统执行lowmemorykiller机制,保证所述白名单内的进程正常运行,包括:
[0017]
确定系统的当前剩余内存是否低于所述lowmemorykiller机制内某一个进程的运行内存阈值;
[0018]
若低于某一个进程的运行内存阈值,则结束不在所述白名单内、且在所述lowmemorykiller机制内占用运行内存最大的目标进程。
[0019]
上述的安卓系统资源管理方法,还包括:
[0020]
若所述目标进程的数量大于预定数量,则根据所述lowmemorykiller机制内各个
进程的优先级顺序按照优先级从小到大对所述目标进程排序;
[0021]
结束排序靠前的预定数量的目标进程。
[0022]
上述实施例所述的安卓系统资源管理方法,还包括:
[0023]
在超出所述交互时间时,清空所述白名单。
[0024]
本发明的再一个实施例所述的安卓系统资源管理方法,还包括:
[0025]
在所述交互时间内,利用系统的cgroup机制限制与所述当前进程无关的无关进程对系统资源的使用率。
[0026]
进一步的,上述的安卓系统资源管理方法,还包括:
[0027]
在超出所述交互时间时,清空所述白名单,并释放cgroup机制对所述无关进程的限制。
[0028]
本发明的又一个实施例提供一种安卓系统资源管理装置,该装置包括:
[0029]
交互操作获取模块,用于获取用户在当前应用下的交互操作;
[0030]
交互时间判断模块,用于确定所述交互操作是否存在对应的交互时间;
[0031]
交互时间设置模块,用于若不存在对应的交互时间,则设置所述交互操作对应的交互时间;
[0032]
交互时间刷新模块,用于若存在对应的交互时间,则按照预设的时间减量刷新所述对应的交互时间;
[0033]
相关进程确定模块,用于确定所述交互操作对应的当前进程以及与所述当前进程相关的相关进程;
[0034]
白名单进程添加模块,用于将所述当前进程和所述相关进程添加至预设的白名单中;
[0035]
白名单进程保护模块,用于在所述交互时间内,若系统执行lowmemorykiller机制,保证所述白名单内的进程正常运行。
[0036]
本发明实施例涉及一种终端设备,包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序在所述处理器上运行时本发明实施例所述的安卓系统资源管理方法。
[0037]
本发明实施例涉及一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时本发明实施例所述的安卓系统资源管理方法。
[0038]
本发明公开的安卓系统资源管理方法包括:获取用户在当前应用下的交互操作;确定所述交互操作是否存在对应的交互时间;若不存在对应的交互时间,则设置所述交互操作对应的交互时间;若存在对应的交互时间,则按照预设的时间减量刷新所述对应的交互时间;确定所述交互操作对应的当前进程以及与所述当前进程相关的相关进程;将所述当前进程和所述相关进程添加至预设的白名单中;在所述交互时间内,若系统执行lowmemorykiller机制,保证所述白名单内的进程正常运行。本发明的技术方案可以保证android系统的lowmemorykiller机制被触发时,白名单内的进程正常运行,避免当前应用进程以及与当前应用相关的进程被lowmemorykiller机制杀死,从而保证当前应用的流畅运行。
附图说明
[0039]
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
[0040]
图1示出了本发明实施例提出的一种安卓系统资源管理方法的流程示意图;
[0041]
图2示出了本发明实施例提出的一种lowmemorykiller机制执行过程的过程示意图;
[0042]
图3示出了本发明实施例提出的另一种安卓系统资源管理方法的流程示意图;
[0043]
图4示出了本发明实施例提出的一种安卓系统资源管理装置的结构示意图。
[0044]
主要元件符号说明:
[0045]
1-安卓系统资源管理装置;10-交互操作获取模块;20-交互时间判断模块;30-交互时间设置模块;40-交互时间刷新模块;50-相关进程确定模块;60-白名单进程添加模块;70-白名单进程保护模块。
具体实施方式
[0046]
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
[0047]
通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0048]
在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
[0049]
此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0050]
除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
[0051]
本发明对安卓(android)系统进行系统软件优化,当用户在进行交互操作时,对当前应用进程以及与当前应用相关的进程进行保护,使其正常运行,限制与之不相关的进程对系统资源的使用率,这样就将cpu资源尽可能多的分配给当前应用;同时,将当前应用进程以及与当前应用相关的进程添加至白名单,以使android系统的lowmemorykiller机制被触发时,白名单内的进程正常运行,避免当前应用进程以及与当前应用相关的进程被lowmemorykiller机制杀死,从而保证当前应用的流畅运行。
[0052]
实施例1
[0053]
本实施例,参见图1,示出了一种安卓系统资源管理方法包括以下步骤:
[0054]
s10:获取用户在当前应用下的交互操作。
[0055]
对于pad、智能手机、智能电视和其他终端设备,用户的交互操作包括刷新页面和滑动页面等交互操作,每一次交互操作都系统会执行相应的进程,每一次交互操作都对应着一个的交互时间,例如,在滑动浏览图片时,每一次滑动交互操作需要1~2s的交互时间,在1~2s的交互时间内应该保证与滑动交互操作相关的进程正常执行,滑动交互操作才能保持顺畅。
[0056]
s20:确定所述交互操作是否存在对应的交互时间。
[0057]
可以为每一个交互操作设置对应的交互时间,在交互时间内保证交互操作相关的进程正常执行。
[0058]
s30:若不存在对应的交互时间,则设置所述交互操作对应的交互时间。
[0059]
在每一交互操作开始时,可以为交互操作设置对应的交互时间,例如,在当前滑动交互操作开始时,当前滑动交互操作并不存在对应的交互时间,可以为当前滑动交互操作设置对应的交互时间,例如,2s。
[0060]
s40:若存在对应的交互时间,则按照预设的时间减量刷新所述对应的交互时间。
[0061]
可以理解,若当前交互操作正在执行中,则存在对应的交互时间,在当前交互操作执行过程中,交互操作对应的交互时间按照预设的时间减量不断刷新,例如,交互时间是2s,预设的时间减量是500ms,即交互时间每500ms刷新一次,并减少500ms。
[0062]
s50:确定所述交互操作对应的当前进程以及与所述当前进程相关的相关进程。
[0063]
所述相关进程包括系统核心进程、所述当前进程的子进程和用于与所述当前进程进行协调的协调进程中的至少一种。
[0064]
示范性的,可以在当前交互操作对应的当前应用启动时,标记当前应用,然后可以利用标记的当前应用启动所述交互操作对应的子应用;将子应用对应的进程作为所述当前进程;进一步的,利用当前进程调用进程间通信(interprocess communication,ipc)机制以确定与所述当前进程相关的相关进程。
[0065]
进程间通信(ipc,interprocess communication)由系统内核提供,由于,每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(ipc,interprocess communication)。
[0066]
s60:将所述当前进程和所述相关进程添加至预设的白名单中。
[0067]
白名单作为一种保护名单,保存在白名单中的当前进程和所述相关进程可以正常运行。
[0068]
s70:在所述交互时间内,若系统执行lowmemorykiller机制,保证所述白名单内的进程正常运行。
[0069]
安卓系统的lowmemorykiller机制用于当系统内存资源比较紧张时,系统会杀死进程回收资源。在当前交互操作对应的交互时间内,通过将当前进程和所述相关进程保存至白名单,保证所述白名单内的进程正常运行,可以有效保护当前进程和所述相关进程的
正常运行。防止lowmemorykiller机制杀死当前交互操作的相关进程。
[0070]
进一步的,在超出所述交互时间时,表明当前交互操作已经完成,与交互操作对应的当前进程以及与所述当前进程相关的相关进程不用继续被保护,可以清空白名单,白名单仅仅用来保护与当前交互操相关的进程顺利运行,避免无关进程被保护,浪费系统资源。
[0071]
本实施例公开的安卓系统资源管理方法包括:获取用户在当前应用下的交互操作;确定所述交互操作是否存在对应的交互时间;若不存在对应的交互时间,则设置所述交互操作对应的交互时间;若存在对应的交互时间,则按照预设的时间减量刷新所述对应的交互时间;确定所述交互操作对应的当前进程以及与所述当前进程相关的相关进程;将所述当前进程和所述相关进程添加至预设的白名单中;在所述交互时间内,若系统执行lowmemorykiller机制,保证所述白名单内的进程正常运行。本实施例的技术方案可以保证android系统的lowmemorykiller机制被触发时,白名单内的进程正常运行,避免当前应用进程以及与当前应用相关的进程被lowmemorykiller机制杀死,从而保证当前应用的流畅运行。
[0072]
实施例2
[0073]
本实施例,参见图2,示出了一种lowmemorykiller机制执行过程包括以下步骤:
[0074]
s100:确定系统的当前剩余内存是否低于所述lowmemorykiller机制内某一个进程的运行内存阈值。
[0075]
andorid系统的lowmemorykiller是一种内存管理机制。当系统内存不足时,杀死不必要的进程释放其内存。不必要的进程的选择根据有2个:oom_adj和占用的内存的大小。oom_adj代表进程的优先级,数值越高,优先级越低,越容易被杀死;对应每个oom_adj都可以有一个空闲进程的阈值。android系统的内核每隔一段时间会检测当前剩余内存是否低于某一个进程的运行内存阈值。若低于某一个进程的运行内存阈值,andorid系统的lowmemorykiller机制将被调用,用于杀死oom_adj最大的进程。
[0076]
s200:若低于某一个进程的运行内存阈值,则结束不在所述白名单内、且在所述lowmemorykiller机制内占用运行内存最大的目标进程。
[0077]
若当前剩余内低于某一个进程的运行内存阈值,在andorid系统调用lowmemorykiller机制时,lowmemorykiller机制将结束不在所述白名单内、且在所述lowmemorykiller机制内占用运行内存最大的目标进程。
[0078]
进一步的,若所述目标进程的数量大于预定数量,则根据所述lowmemorykiller机制内各个进程的优先级顺序按照优先级从小到大对所述目标进程排序;结束排序靠前的预定数量的目标进程。
[0079]
示范性的,不在所述白名单内、且在所述lowmemorykiller机制内占用运行内存最大的目标进程可能有两个,每个目标进程均占用20%的运行内存,预定数量可以是1个,目标进程的数量大于预定数量,需要对根据所述lowmemorykiller机制内各个进程的优先级顺序按照优先级从小到大对所述目标进程排序,结束排序第一的目标进程。
[0080]
s300:若不低于任何进程的运行内存阈值,则系统内的各个进程正常运行。
[0081]
若不低于任何进程的运行内存阈值,表明系统资源充足,无需结束任何进程。
[0082]
实施例3
[0083]
进一步的,本实施例,参见图3,示出了在步骤s70之后还包括以下步骤:
[0084]
s80:在所述交互时间内,利用系统的cgroup机制限制与所述当前进程无关的无关进程对系统资源的使用率。
[0085]
利用系统的cgroup机制限制与所述当前进程无关的无关进程对系统资源的使用率,这样就将系统资源尽可能多的分配给当前应用,以使当前应用顺畅进行。
[0086]
s90:在超出所述交互时间时,清空所述白名单,并释放cgroup机制对所述无关进程的限制。
[0087]
在超出所述交互时间时,表明当前交互操作已经完成,与交互操作对应的当前进程以及与所述当前进程相关的相关进程不用继续被保护,可以清空白名单,白名单仅仅用来保护与当前交互操相关的进程顺利运行,避免无关进程被保护,浪费系统资源。进一步的,释放cgroup机制对所述无关进程的限制,避免被限制的无关进程在后期使用时无法正常运行。
[0088]
可以理解,步骤s70和步骤s80无先后顺序,还可以先执行步骤s80,再执行步骤s70。
[0089]
实施例4
[0090]
本实施例,参见图4,示出了一种安卓系统资源管理装置1包括:交互操作获取模块10、交互时间判断模块20、交互时间设置模块30、交互时间刷新模块40、相关进程确定模块50、白名单进程添加模块60和白名单进程保护模块70。
[0091]
交互操作获取模块10,用于获取用户在当前应用下的交互操作;交互时间判断模块20,用于确定所述交互操作是否存在对应的交互时间;交互时间设置模块30,用于若不存在对应的交互时间,则设置所述交互操作对应的交互时间;交互时间刷新模块40,用于若存在对应的交互时间,则按照预设的时间减量刷新所述对应的交互时间。相关进程确定模块50,用于确定所述交互操作对应的当前进程以及与所述当前进程相关的相关进程;白名单进程添加模块60,用于将所述当前进程和所述相关进程添加至预设的白名单中;白名单进程保护模块70,用于在所述交互时间内,若系统执行lowmemorykiller机制,保证所述白名单内的进程正常运行。
[0092]
本实施例公开的安卓系统资源管理装置1通过交互操作获取模块10、交互时间判断模块20、交互时间设置模块30、交互时间刷新模块40、相关进程确定模块50、白名单进程添加模块60和白名单进程保护模块70的配合使用,用于执行上述实施例所述的安卓系统资源管理方法,上述实施例所涉及的实施方案以及有益效果在本实施例中同样适用,在此不再赘述。
[0093]
可以理解,本发明实施例涉及一种终端设备,包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序在所述处理器上运行时执行本发明实施例所述的安卓系统资源管理方法。终端设备包括手机、pad等。
[0094]
可以理解,本发明实施例涉及一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行本发明实施例所述的安卓系统资源管理方法。
[0095]
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码
的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0096]
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
[0097]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0098]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1