朱正伟,刘 晨,黄晓竹,刁小敏
(常州大学 信息科学与工程学院,江苏 常州 213164)
随着LTE、4G高速宽带无线网络的快速覆盖和智能移动终端的快速普及,手机应用程序呈现爆发式增长,每天有数万应用程序涌现在智能手机上。应用程序的多样性极大地提高了用户的体验,但是开发者没有对应用程序进行很好的优化,长时间的高能耗操作会迅速消耗电池电量。受手机存储容量、处理能力以及电池寿命[1]的限制,尽管同一时期电池能量密度增长了3倍[2],但大部分智能手机续航能力没有得到显著提升。目前解决上述问题的途径主要有2种,即基于数据传输调度的优化技术、基于移动网络资源分配的优化技术。
基于数据传输调度是通过调度数据传输来降低手机天线的打开时间,以达到节能的目的。文献[3]提出一种快速休眠和批处理的机制,在每次传输完成后立即关闭手机天线,将其RRC调至低能耗状态以达到节能的目的。文献[4]采用Wi-Fi和3G 2种接入网络策略,研究手机系统功耗的变化。发现在信号强度弱的时候传输数据比在信号强度强时传输等量数据更耗能。文献[5]通过配置适当的DRX参数使数据接收不连续,以此优化手机用户的吞吐量来降低设备能耗。这些方法会对其他数据传输造成延迟容忍,同时频繁的能态转移会造成能量的浪费。
在考虑到上述工作的应用局限性后,一些研究者从移动网络资源分配机制入手。文献[6]在Wi-Fi环境下,基于用户活动级别来智能调度用户活动以达到节电目的。文献[7]从终端设备被动测量实验结果和在蜂窝网络中获得的QoE人群反馈信息两个角度解决了智能手机中的QoE资源调配问题。这类方法需要对手机底层硬件和驱动进行修改,因而其应用性会受到较大限制。
上述方法未考虑用户习惯,会对用户体验产生严重影响。为降低智能手机网络功耗的同时保证用户体验,本文针对用户行为的特点,提出一种面向用户行为的智能手机能耗优化方法。采集用户在使用应用程序时产生的行为数据,分析用户行为特征,建立应用程序网络请求最优控制的数学模型,利用多背包算法求解该模型,约束屏幕关闭状态下应用程序的网络访问量,减少不必要的损耗,从而延长电池的工作时间。
智能手机用户行为特征分析主要是对用户进行聚类,可以根据手机用户使用的4G网络访问各应用程序产生的日志来分析用户行为。通过相关统计软件获取数据,然后对这些数据进行分析,预测应用程序对于用户的重要性。
调查显示超过73%的智能手机用户经常浏览网页,超过70%的智能手机用户使用聊天工具,其次为影音播放器、游戏软件、办公软件等[8]。而智能手机用户对各类应用程序的使用时间相对均衡,每天使用时间最长的应用是即时通信,占上网时间的26.1%,12.4%的时间使用浏览器,其次是在线视频、游戏等[9]。用户常用的应用程序类型如图1所示。
图1 用户常用应用程序类型
为了采集具有网络活动的应用程序的相关数据,不同于文献[10]通过将功率监控器连接到智能手机上来获取数据,本文将应用定时器2、程序流量状态这2个软件安装在8名不同年龄和职业的用户的智能手机上,进行为期一个月的追踪调查,统计出各应用程序的使用次数、使用时长、耗费的网络流量占一天中所用程序的比例。
通过对这8位智能手机用户为期一个月的追踪调查,收集并理解用户行为数据,发现在屏幕关闭状态下,手机在后台仍然参与不同的网络活动成为用户使用智能手机应用程序的显著特征。如图2所示,屏幕关闭下的网络活动占所有网络活动的40.98%[11]。如文献[3]所阐述的,屏幕关闭后的网络活动是低响应的,并且是可以被积极优化的。
图2 网络活动分析
(1)
(2)
从获取的数据里抽取样本进行计算分析,其中,2个样本的数据集如表1所示。
表1 应用程序3个属性的2个样本数据集
以用户8使用的应用程序QQ为例,其时长比例的候选划分点集合包含14个候选值:T时长比例={0.066 3,0.080 9,0.082 4,0.085 5,0.088 5,0.104 4,0.109 8,0.112 3,0.121 1,0.122 3,0.122 4,0.123 9,0.125 2,0.129 0}。由式(2)可计算出属性“时长比例”的信息增益Gain(D1,a)为0.579 9,对应于划分点0.080 9。类似地,次数比例的信息增益Gain(D2,a)和网络流量比例的信息增益Gain(D3,a)也可依次算出。“时长比例”被选作根结点划分属性,“次数比例”为中间结点,之后的划分过程以递归的形式进行,最终生成如图3所示的决策树。
图3 以用户8为例生成的决策树
应用程序的重要性指标值计算公式如下:
(3)
其中,Gain(Di1,a)、Gain(Di2,a)、Gain(Di3,a)分别代表应用程序的时长比例增益、次数比例增益和网络流量比例增益。应用程序重要性的指标值与应用程序的3个属性的信息增益有关。
节约电能主要来源于减少屏幕关闭状态下应用的网络活动而减少蜂窝数据的开启时间,即管理应用程序的网络请求[10]。首先预测屏幕关闭时的网络活跃时间段,屏幕关闭时网络活跃时间段指的是当屏幕关闭状态下,仍然有数据通过移动网络传输的时间段。假设有k天的记录,定义时间段ti作为屏幕关闭状态下的网络活跃时间段,当且仅当ti满足:
(4)
其中,P(ti)为时间段ti内使用网络的概率,U(ti)j为观测数据里第j天m个应用程序在时间段ti的网络活动,时间段集合Tn表示所有满足式(4)的网络活跃时间段ti的集合。对于Tn中每一个ti,它的容量定义为:
C(ti)=Bandwidth·ti
(5)
其中,Bandwidth是运营商提供的频带宽度,给定n个应用程序,建立应用程序网络请求最优控制的数学模型,见式(6)和式(7),其中式(6)满足式(7)。
(6)
(7)
为求解该模型,本文将其转化成多背包问题[15]。其中,Xij=1表示物体i属于背包j,反之Xij=0表示不属于。每一个网络活动ni表示一个应用程序,Cj为m个背包的容量,对于每一个ti∈Tn,本文创造一个独立的项目集。其数据传输/接收数据模型,如下:
(8)
对于每一个ti,它表示一个背包,C(ti)为背包ti的容量,每个项目的重要性为ΔIni,该网络活动的权重为w(ni),即ti时间段中数据传输/接收的总和。多背包问题是一种组合优化问题,具有最优子结构性质[16],用子问题定义状态,建立网络活动的状态转移方程:设有n个应用程序,v[i][w]为最优解,其递归式见式(9)。对于初始状态,v[0,w]表示虽然手机网络开启但不允许任何应用程序运行,同样的v[i,0]表示数据连接关闭,应用程序仍然无法运行。
(9)
根据上述讨论,本文使用与决策树匹配的多背包算法来控制屏幕关闭状态下的应用程序网络请求。根据用户行为分析得到的应用程序的重要性指标值和应用程序的网络流量能耗,限制屏幕关闭时网络活跃时间段内可以运行的应用程序数量。伪代码如下。
算法多背包问题算法
输入w←0表示应用程序重要性的集合,w←0为应用程序权重的集合
输出屏幕关闭时网络活动时段运行的应用程序数量
for w←0 to C(ti) do
v[0,w]←0
end for
for i←1 to n do
v[i,0]←0
for w←1 to C(ti)do
if wni≤w then
if ΔIni+v[i-1,w-wni]>v[i-1,w] then
v[i,w]←ΔIni+v[i-1,w-wni]
else
v[i,w]←v[i-1,w]
end if
else
v[i,w]←v[i-1,w]
end if
end for
end for
return [n,C(ti)]
以上方法的时间和空间复杂度均为O(nC(ti)),其中,时间复杂度不能再优化,但空间复杂度却可以优化到0。考虑权重至多为W的网络活动,如果本文从最优网络活动项目中去掉某应用程序j的权重w,则余下的项目必须是可以从n-1个原有应用程序和应用程序j的wj-w中可带走的,权重至多为W-wj的重要性指标值最高的一个应用程序。在背包问题中不会满足所有应用程序的活动,空余的空间就降低了网络活动所需要的能耗。按上述算法计算后,可求得时间段ti内可以运行的应用程序数量n(ti),定义时间段ti内所有发出网络请求的应用程序数量表示为N(ti)。式(10)为该优化方法的干扰率,式(11)为能耗优化百分比。
(10)
(11)
为了更深入地阐述面向用户行为的智能手机能耗优化方法的意义和作用,通过实验验证本文所提方法的准确性和有效性。
本文实验在Android5.1及更高版本的平台上对该优化方法进行测试。从8名智能手机用户中选出5位使用模式存在较大差异的用户来进行对比试验,测试手机平台分别是HUAWEI荣耀i7、HUAWEI荣耀5X、Samsung galaxy、Meizu MX6和小米手机4。
本次实验中设置背包容量C为1 024 MB,考虑到应用程序的网络能耗都比较大,并且参考文献[17]对应用程序能耗的分析,容量设置的过大或过小对屏幕关闭后应用程序的网络请求的约束产生影响,导致能耗优化效果不明显,甚至影响用户体验。
采集用户使用应用程序的相关数据,根据上述生成决策树的方法预测应用程序对于用户是否重要,并利用式(3)计算出重要性的指标值。5位用户使用的应用程序的重要性指标值如表2所示。
表2 应用程序的重要性指标
从图4可以看出,在为期4周的测试中,不同用户的电能节省量也不相同,该能耗优化方法平均可以节省电能38.4%。其中,用户4为重度用户,利用此方法可以节省至少25%的电能。此外,通过实验可以得到能够在屏幕关闭状态下进行网络活动的应用程序的数量,并利用式(10)对此数据进行处理,发现不同用户的干扰率都维持在11%以内。
图4 不同用户的手机节能百分比
作为对比,采用文献[3]提出的延迟批处理方案即将网络活动推迟一定的时间间隔进行测试。在实验中,选用从1 s~600 s的不同时间间隔,但随着延时间隔的增加,该方案对用户的干扰率也在上升。为了尽可能地减少对用户体验的影响,本文使用10 s和20 s作为测试间隔,结果如图5所示。
图5 不同情况下的节能百分比
图5展示了延迟批处理方案与本文提出的能耗优化方法的节能效果对比情况。从实验对比结果可以看到,通过延迟方案获得的平均节能百分比为18.5%,本文提出的能耗优化方法的平均节能百分比维持在38.4%左右,相比于延迟方案提高了19.9%。因此,本文提出的面向用户行为的智能手机能耗优化方法限制了重要性指标值低的应用程序在屏幕关闭后的网络活动,减少了这些应用程序运行时需要的能耗,满足了降低手机能耗的要求。
本文提出一种面向用户行为的智能手机能耗优化方法,获取了大规模真实用户数据,利用数据分类、归纳生成决策树,计算出应用程序重要性的指标值,并建立了基于多背包算法的应用程序网络请求最优控制的数学模型。实验结果表明,该方法的节能百分比得到提高,明显优于批处理、延迟容忍等方法,并能兼顾用户体验。由于用户使用习惯多种多样,获取用户真实数据受限较大,因此目前只能对使用习惯相似的用户进行跟踪调查,下一步将扩展用户群体,进一步提高优化方法的精确度。
[1] TAWALBEH M,EARDLEY A,TAWALBEH L.Studying the energy consumption in mobile devices[J].Procedia Computer Science,2016,94:183-189.
[2] CASAS R,CASAS O.Battery sensing for energy aware system design[J].Computer,2005,38(11):48-54.
[3] HUANG Junxian,QIAN Feng,MAO Zhangqing,et al.Screen-off traffic characterization and optimization in 3G/4G networks[J].ACM Conference on Internet Measurement Conference,2012:50(1):357-364.
[4] DING Ning,WAGNER D,CHEN Xiaomen,et al.Characterizing and modeling the impact of wireless signal strength on smartphone battery drain[J].ACM Sigmetrics Performance Evaluation Review,2013,41(1):29-40.
[5] KOLDING T,WIGARD J,DALSGAARD L.Balancing power saving and single user experience with discontinuous reception in LTE[C]//Proceedings of IEEE International Symposium on Wireless Communication Systems.Washington D.C.,USA:IEEE Press,2008:713-717.
[6] VISHAL K,BANSAL R,NAMBOODIRI A M,et al.Providing services on demand by user action modeling on smart phones[C]//Proceedings of UbiComp’14.New York,USA:ACM Press,2014:167-170.
[7] CASAS P,GARDLO B,SEUFERT M,et al.Taming QoE in cellular networks:from subjective lab studies to measurements in the field[C]//Proceedings of Inter-national Conference on Network and Service Management.Washington D.C.,USA:IEEE Press,2015:237-245.
[8] 腾讯科技.智能手机用户使用习惯调查报告[EB/OL].[2016-12-11].http://www.techweb.com.cn/data/2011-12-01/1125983_3.shtml.
[9] 易观智库.2015年中国移动互联网用户行为统计[EB/OL].[2016-11-21].http://www.askci.com/news/chanye/2015/05/11/171144sd8m.shtml.
[10] 段林涛,郭 兵,沈 艳,等.Android应用程序能耗分析与建模[J].电子科技大学学报,2014,43(2):272-277.
[11] ZHANG Yi,HE Yuan,WU Xiaopei,et al.Net Master:taming energy devourers on smartphones[C]//Proceedings of the 43rd International Conference on Parallel Processing.Washington D.C.,USA:IEEE Press,2014:301-310.
[12] YANG Yi,CHEN Wenguang.Taiga:performance optimiza-tion of the C4.5 decision tree construction algorithm[J].Tsinghua Science & Technology,2016,21(4):415-425.
[13] GILAD K,ASAF S,LIOR R,et al.ConfDTree:a statistical method for improving decision trees[J].Journal of Computer Science & Technology,2014,29(3):392-407.
[14] 黄宇达,王迤冉.基于朴素贝叶斯与ID3算法的决策树分类法[J].计算机工程,2012,38(14):41-43.
[15] 王熙照,贺毅朝.求解背包问题的演化算法[J].软件学报,2017,28(1):1-16.
[16] QIN Lei,ZHOU Kang.An improved artificial fish school algorithm for multi-knapsack problem[J].Bulletin of Science and Technology,2016,32(6):166-171.
[17] PATHAK A,HU Y C,ZHANG M.Where is the energy spent inside my App[C]//Proceedings of the 7th ACM Conference on Computer Systems.New York,USA:ACM Press,2012:29-42.