一种应用的限制方法和电子设备与流程

文档序号:24648893发布日期:2021-04-13 16:41阅读:99来源:国知局
一种应用的限制方法和电子设备与流程

1.本申请涉及显示技术领域,尤其涉及一种应用的限制方法和电子设备。


背景技术:

2.在多应用环境下,用户会打开多个应用,并在不同时间段使用不同的应用,这样会有多个应用驻留后台,并在后台消耗资源,这样一方面加快了耗电,另一方面也对性能有所影响。


技术实现要素:

3.本申请提供了一种应用的限制方法和电子设备,本申请还提供一种计算机可读存储介质,以提供一种应用的限制方法,以在满足用户需求的前提下,节约应用的耗电。
4.第一方面本申请提供了一种应用的限制方法,应用于电子设备,电子设备上运行有至少一个目标应用,方法包括:
5.获取目标应用历史使用信息;
6.基于历史使用信息,预测目标应用在未来一个或多个预设时间段内的使用概率;
7.基于目标应用在一个或多个预设时间段内的使用概率,确定限制策略,限制策略用于限制目标应用访问资源。
8.进一步地,基于目标应用在一个或多个预设时间段内的使用概率,确定限制策略,包括:
9.基于目标应用在一个或多个预设时间段内的使用概率,对目标应用进行分组;
10.确定分组的限制策略;
11.基于分组的限制策略,限制分组内的目标应用访问资源。
12.进一步地,基于分组的限制策略,限制分组内的目标应用访问资源,包括:
13.判断目标应用是否处于预设使用状态;
14.若是处于预设使用状态,终止限制目标应用访问电子设备的资源。
15.进一步地,基于分组的限制策略,限制分组内的目标应用访问资源,包括:
16.判断目标应用是否在白名单内,白名单包括多个应用;
17.若目标应用在白名单内,终止限制目标应用访问电子设备的资源。
18.进一步地,限制策略包括限制目标应用访问电子设备的资源的次数和/或时间。
19.进一步地,电子设备的资源包括:
20.cpu、内存、i/o、网络访问、alarm唤醒以及持锁中的至少一个。
21.进一步地,预测目标应用在未来一个或多个预设时间段内的使用概率,包括:
22.基于hhm模型,预测目标应用在未来一个或多个预设时间段内的使用概率。
23.进一步地,历史使用信息包括:
24.目标应用处于前台与用户交互的时间/处于后台的时间,退出的时间,位置信息中的至少一个。
25.第二方面,本申请提供了一种电子设备,包括处理器和存储设备,存储设备存有应用程序,应用程序由处理器运行时,使得电子设备执行以下步骤:
26.获取目标应用历史使用信息;
27.基于历史使用信息,预测目标应用在未来一个或多个预设时间段内的使用概率;
28.基于目标应用在一个或多个预设时间段内的使用概率,确定限制策略,限制策略用于限制目标应用访问资源
29.进一步地,包括处理器和存储设备,存储设备存有应用程序,应用程序由处理器运行时,使得电子设备执行基于目标应用在一个或多个预设时间段内的使用概率,确定限制策略的步骤,包括以下步骤:
30.基于目标应用在一个或多个预设时间段内的使用概率,对目标应用进行分组;
31.确定分组的限制策略;
32.基于分组的限制策略,限制分组内的目标应用访问资源。
33.进一步地,包括处理器和存储设备,存储设备存有应用程序,应用程序由处理器运行时,使得电子设备执行基于分组的限制策略,限制分组内的目标应用访问资源的步骤,包括以下步骤:
34.判断目标应用是否处于预设使用状态;
35.若是处于预设使用状态,终止限制目标应用访问电子设备的资源。
36.进一步地,包括处理器和存储设备,存储设备存有应用程序,应用程序由处理器运行时,使得电子设备执行基于分组的限制策略,限制分组内的目标应用访问资源的步骤,包括以下步骤:
37.判断目标应用是否在白名单内,白名单包括多个应用;
38.若目标应用在白名单内,终止限制目标应用访问电子设备的资源。
39.进一步地,电子设备的资源包括:
40.cpu、内存、i/o、网络访问、alarm唤醒以及持锁中的至少一个。
41.第三方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如第一方面所述的方法。
42.第四方面,本申请提供一种计算机程序,当所述计算机程序被计算机执行时,用于执行第一方面所述的方法。
43.在一种可能的设计中,第四方面中的程序可以全部或者部分存储在与处理器封装在一起的存储介质上,也可以部分或者全部存储在不与处理器封装在一起的存储器上。
附图说明
44.图1为本申请实施例提供的应用的限制方法的流程图;
45.图2为本申请一个实施例提供hmm预测模型;
46.图3为本申请一个实施例提供的前向概率图;
47.图4为本申请一个实施例提供的结构示意图。
具体实施方式
48.下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其
中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
49.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
50.随着互联网时代的日益发达,智能手机的普及越来越广,人们的吃住行均离不开智能手机,对智能手机性能要求日益增加。为了满足不同客户的不同需求,智能机会安装多样化的应用,大量应用的使用会增加智能手机的功耗,不管是前台应用还是后台应用均可以去占用一些资源和存在一些耗电行为,会降低用户的使用体验感。针对该问题,相关技术将应用耗电进行排行,将耗电大的应用进行关闭,这样可能会关掉一些正在运行的后台应用,影响用户体验感。
51.针对现有技术的不足,本发明根据应用实际使用情况,通过预测应用在一个预设时间段或多个预设时间段内与使用概率,并根据使用概率,限制应用访问资源,例如限制应用访问cpu、内存、i/o、网络访问、alarm唤醒以及持锁中的至少一个,还可以根据应用在一个预设时间段或多个预设时间段内与使用概率对应用进行动态分组,对于不同的分组进行不同的限制,从而达到节省功耗和资源的目的。
52.本发明不再是单一的针对应用耗电情况去做调整优化,而是在学习用户的使用习惯和应用行为基础上,将应用分组再进行针对性合理优化。
53.参见图1,具体涉及本申请一个实施例所提供的一种应用的限制方法的流程图,可应用于上述电子设备,该方法包括:
54.步骤102,获取电子设备中的目标应用历史使用信息。
55.该目标应用可以指示电子设备中任意一个应用,目标应用的历史使用信息包括但不限于目标应用在什么时间处于前台与用户交互,什么时间处于后台,什么时间退出等等,还可以包括一些辅助的使用信息,例如位置信息、电子设备的移动信息等。
56.在一个示例中,对于与用户有直接界面交互的电子设备,设置有应用和应用窗口管理模块,该模块管理何时应用处于前台与客户交互,何时应用处于后台,何时应用退出。通过在该模块里添加对应的监听机制可以将应用的这些使用信息汇报给应用使用信息采集模块。
57.在一个实施例中,对于还会包含传感器和位置管理模块的电子设备,可以通过这些模块获取到传感器的信息如加速度传感器,运动传感器,也可以通过gps/wifi获取到当前的位置信息。通过添加对应的监听机制可以将这些信息汇报到应用使用信息采集模块。在应用信息采集模块中会对传感器信息和位置信息做简单的处理,得出用户是否在移动以及室内外的信息,并结合当前的时间信息,结合成是否移动和室内外的时间段信息。
58.在另一个示例中,上述使用信息还可以通过系统的框架层和硬件抽象层根据应用的使用情况获得。例如,对于位置信息,可以wifi hal(硬件抽象层)判断电子设备在哪里使用目标应用。
59.在一个示例中,电子设备可以每一个预设时长或者多个预设时获取目标应用的历
史实用信息。
60.步骤104,基于所述历史使用信息,预测所述目标应用在未来一个或多个预设时间段内的使用概率。
61.上述预设时间段可以根据需要设置,例如预设时间段为12个小时,可以预测目标应用在12个小时内目标应用的使用概率,或者36个小时内目标应用的使用概率等等。
62.具体地,可以通过预测模型预测目标应用在未来预设时间段内使用的概率。例如通过hhm模型等模型进行预测。
63.以hhm模型为例,对预测目标应用在未来预设时间段内使用的概率进行解释和说明。
64.该方案中,对一个预设时间段或者多个预设时间段按预先定义的时间段进行分割,应用的时间使用信息会分布在预先定义的各时间段上,并按应用名称进行存储。在传递到hmm模型前,会先按时间段生成应用的使用序列,如下:
65.app1,app2,app3,app4,....
66.以及对于时间系列:
67.t1,t2,t3,t4,....
68.为加强数据的准确性,将数据按下面类型按照工作日/周末进行分类存储,并根据当前的时间类型传递输入到hmm模型进行预测。
69.参见图2,具体涉及本申请一个实施例提供的hmm预测模型。其中,第一行描述由一个隐藏的马尔科夫链生成隐藏状态随机序列,第二行是各个隐藏状态生成可观测的随机序列。
70.hmm模型的5个关键元素为隐藏状态,观察状态,转移矩阵a,观测矩阵b和初始概率矩阵π.各元素定义如下:
71.(1)按时段划分时序t1,t2,t3,

,tn。
72.(2)定义隐藏状态s1,s2,s3,

,sn每个状态对应一个应用。因为应用安装的应用会变,所以状态会跟着变化。
73.(3)定义观察状态o1,o2,03,

,0m,这个需要对应到时序t1,t2,t3,

,tm,即o1对应t1,o2对应t2,03对应t3,

,0m对应tm。
74.(4)初始概率分布π:统计在统计周期内各si出现的概率如表1,即,
75.count(si)/totalcount=pi
76.si状态s1状态s2状态s3

状态sn概率p1p2p3

pn
77.表1

初始概率分布π
78.(5)各隐藏状态间的转移矩阵an*n:
79.统计各时序内ti使用的应用si。计算对应的转移概率如表2:
80.aij=p(sj|si)=p(sj,si)/p(si)=count(si,sj)/count(si)=pij
81.count(si,sj)即当前为si,下一个时序为sj的频率(次数)
82.count(si)即si出现的频率(次数)
[0083][0084]
表2

转移概率分布
[0085]
(6)隐藏状态s表现为观察状态o的观测矩阵bn*m:
[0086]
计算对应观测概率
[0087]
如表3:
[0088]
bij=p(oj|si)=p(oj,si)/p(si)=count(oj,si)/count(si)=pij
[0089]
count(oj,si)即在时序j使用si的频率(因为oj定义为对应的时序tj)
[0090]
count(si)即si出现的频率
[0091][0092]
表3

观测概率
[0093]
通常hmm由初始概率分布π、状态转移概率分布a以及观测概率分布b确定,为了方便表达,把a,b,π用λ表示,即:
[0094]
λ=(a,b,π)
[0095]
(7)预测:输入观察态o={o1,o2,

o
t
},根据hmm模型λ中的概率分布,使用viterbi解码输出最可能的状态序列i。再使用前向算法可以得出每个应用在未来每个ti上使用概率。
[0096]
viterbi算法如下:
[0097]
定义变量δt(i):表示时刻t隐藏状态为i的所有路径中的概率最大值,公式如下:
[0098]
δ
t
(i)=maxp(i
t
=i,i
t
‑1,

i1,o
t
,

,o1|λ)
[0099]
过程:
[0100]
(1)初始化
[0101]
δ1(i)=π
i
b
i
(o1),i=1,2,

,n
[0102]
ψ1(i)=0,i=1,2,

,n
[0103]
其中π
i
为初始概率矩阵π中的元素,b
i
为观测矩阵b的元素,ψ1(i)为时刻t=1的隐藏状态为i的概率最大路径中,状态为第o时刻的隐藏状态。
[0104]
(2)递推,对t=2,3,

,t
[0105][0106][0107]
其中,a
ji
为状态矩阵a的元素,ψ
t
(i)为时刻t隐藏状态为i的概率最大路径中,状态为t

1时刻的隐藏状态。
[0108]
(3)终止
[0109][0110][0111]
(4)最优路径回溯,对t=t

1,t

2,

,1
[0112][0113]
求得最优路径
[0114]
参见图3,具体涉及本申请一个实施例提供的前向概率图,前向算法为:第一行是观测不到的状态序列,第二行是可以观测到的观测序列。
[0115]
前向概率的定义是:当时刻t的隐藏状态为i时,观测状态序列为y1,y2,...,yt的概率为前向概率,即:
[0116]
α
i
(t)=p(y1,y1,

,y
t
,q
t
=i|λ)
[0117]
(1)初值:
[0118]
t=1,第一个时刻隐藏状态为第i号状态的概率是π
i
,在第i号状态时得到y1这个观测的概率是b
iy1
,于是:
[0119]
α
i
(1)=π
i
b
iy1
,i=1,2,...n
[0120]
其中π
i
为初始概率矩阵π中的元素,b
iy1
为观测矩阵b的元素。
[0121]
(2)递推:
[0122]
假设现在到第t个时刻了,而第t个时刻的隐藏状态是状态j,时刻t+1的前向概率的α
i
(t+1)的求法就是:t时刻的状态转移到t+1时刻的状态的概率对所有状态求和乘以t时刻的状态得到观测的概率对于t=1,2,

,t
‑1[0123][0124]
其中a
ji
为状态矩阵a的元素,b
iy(t+1)
为矩阵b的元素,表示隐藏状态为第i号状态时得到y(t+1)的概率。
[0125]
(3)最终
[0126]
t=t,观测序列o的概率为:
[0127][0128]
其中,α
i
(t)中i表示第i号状态,t表示第t时刻。
[0129]
获取的数据按照hmm模型,计算出转移矩阵a,观测矩阵b和初始概率π,再结合当前观察状态o,通过viterbi算法解码输出最可能的状态序列i,再通过前向算法推测出状态序列i在各个时间段的概率,即给出当前运行中的应用在未来指定的各时间段的使用概率。
[0130]
步骤106,基于所述目标应用在一个或多个预设时间段内的使用概率,确定限制策略,限制策略用于限制所述目标应用访问资源。
[0131]
当前运行中的应用在未来指定的各时间段的使用概率后,可以根据使用概率限制目标应用访问系统资源,具体地,限制方式包括具但不限于访问上述cpu、memory、io、网络访问、alarm唤醒以及持锁等的权限、次数以及每次限制的时间等等等等。
[0132]
在一个实施例中,可以基于所述目标应用在一个或多个预设时间段内的使用概率,对所述目标应用进行分组,不同的分组确定不同的限制策略,根据每个分组的限制策略,限制分组内的目标应用访问资源。示例性地,可以根据多个目标应用在一个或多个预设时间段内的使用概率,分配到不同的组内,例如,分组可以根据应用的使用概率设置四个分组,如,正在使用组,即将使用组,较少使用组,偶尔使用组,正在使用组指示用户正在与正在使用组内的目标应用进行直接的交互。即将使用组的应用可以指示用户未来t1小时可能使用的应用,较少使用组的应用可以指示用户未来t2小时可能使用的应用,偶尔使用组的应用可以指示用户未来t3小时可能使用的应用,可以理解,t3>t2>t1。对于正在使用组内的应用不进行限制,对于即将使用分组其频率限制在每天t1次,较少使用分组其频率限制在每天t2次,偶尔使用分组其频率限制在每天t3次。需要说明的是,在限制访问次数的同时,还可以限制每次访问的系统资源的时间,例如使用概率越小,限制每次访问电子设备资源的时间越长。
[0133]
具体地,可以通过cgroup管理模块实现上述限制方式,例如,上述不同的分组有会不同的限制,包括alarm唤醒,后台网络联网,io/cpu使用应用等。当应用处于“正在使用”的分组时:alarm和网络访问不做限制,放入max io的cgroup中,同时放入max performance属性的cpu group中;当应用处于“即将使用”的分组时:比如限制alarm的唤醒间隔需要大于5分钟,且放入hight io的cgroup里,且放入foregroud属性的cpu group中;当应用处于“较少使用”的分组时:比如限制alarm的唤醒间隔需要大于30分钟;wakelock持锁时间不超过30s;限制后台网络访问1小时一次,且放入low io的cgroup里,且放入background属性的cpu group里;当应用处于“偶尔使用“的分组时:比如限制alarm的唤醒间隔需要大于1小时,wakelock持锁时间最长不超过10s,且限制后台网络访问,同时放入background属性的cpu group里。
[0134]
进一步地,继续以上述“偶尔使用”对应的限制策略为例,上述t3次,是对一些资源的使用频度的限制。比如alarm唤醒,当处于“偶尔使用分组”时,限制其alarm唤醒的间隔需要大于1小时,即alarm唤醒的次数一天需要小于24次。而其他的资源,如io资源、cpu资源,则会将其放置在对应资源占用最小的cgroup里,如low io的io cgroup,backgroud的cpu group里等。
[0135]
在另一个可能实现的方式中,还可以通过设置包括预设使用状态的应用不进行限
制,上述正在播放音乐的音乐应用,正在下载的市场应用,正在导航的导航应用,虽然处在后台中,但是用户与用户处进行交互,即处在用户正在使用中,此时可以不限制上述应用访问网络、cpu等资源。
[0136]
在另一个可能的实现中,还可以设置白名单,白名单中包括多个应用,这些应用用户使用的频率非常高,可以没有必要对其进行预测,例如聊天应用等。
[0137]
在另一个可能的实现方式里,还可以应用使用时间信息采集模块所采集过来的信息根据应用使用预测模块的预测算法特点进行结构化处理,并进行存储,同时提供过期机制,移除过期的数据,应用使用的预测依赖于之前使用的数据。随着使用的时间越长,数据会越来越多。所以提供一个保存的最长时间,当数据超过该时间时,这些数据会被丢弃。
[0138]
图4为本发明实施例提供的一种电子设备的结构示意图。如图1所示,该实施例的电子设备4包括:处理器41、存储器42以及存储在存储42中并可在处理器41上运行的计算机程序43,该计算机程序43被处理器41执行时实现实施例中的应用的限制方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器11执行时实现实施例中各模块/单元的功能,为避免重复,此处不一一赘述。
[0139]
电子设备4包括,但不仅限于,处理器41、存储器42。本领域技术人员可以理解,图4仅仅是电子设备的示例,并不构成对电子设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如电子设备4还可以包括输入输出设备、网络接入设备、总线等。
[0140]
所称处理器41可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0141]
存储器42可以是电子设备1的内部存储单元,例如电子设备4的硬盘或内存。存储器42也可以是电子设备1的外部存储设备,例如电子设备4上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器42还可以既包括电子设备4的内部存储单元也包括外部存储设备。存储器42用于存储计算机程序以及电子设备4所需的其他程序和数据。存储器42还可以用于暂时地存储已经输出或者将要输出的数据。
[0142]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0143]
在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0144]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用
时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
[0145]
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1