摘要
2022 年,超过一半的网络流量是通过移动设备访问的。 通过降低移动网络应用程序的能耗,我们不仅可以延长设备的电池寿命,还可以为节能工作做出重大贡献。 例如,如果我们只能节省 5% 的网络应用程序使用的能源,我们估计就足以关闭福岛的一个核反应堆。 本文全面概述了移动网络应用程序的节能实验和相关方法,与研究人员和从业者相关。 为实现这一目标,我们进行了系统的文献回顾并确定了 44 项主要研究以供纳入。 通过对科学论文的映射和分析,这项工作有助于:(1) 概述移动网络应用程序的能量消耗方面,(2) 全面描述用于节能实验的方法,以及 (3) 各种节能方法的分类和综合。
关键词
移动网络应用程序、能源消耗、能源测量、节能策略
I. 简介
在过去七年中,移动网络流量的百分比有所增加,如图 1 所示。预计这一趋势将持续下去,导致公司进一步投资于(移动)网络开发 [1]。

在本文中,我们使用术语移动 Web 应用程序来指代针对移动访问(智能手机、平板电脑)[3]、[4] 优化网站的应用程序。 与最终用户必须在其设备上安装的本机应用程序相比,Web 应用程序提供了广泛的兼容性、快速的开发和完整的应用程序可移植性 [5]、[6]。 此应用程序类别还包含“老式”响应式移动网站,旨在自动调整其布局和内容,以在各种设备上提供最佳观看体验。 渐进式 Web 应用程序 (PWA) 是一种相对新颖的方法,它将响应式 Web 内容的灵活性与本机应用程序的功能相结合,例如离线功能、推送通知和主屏幕安装 [7]。 PWA 仍然使用传统的超文本标记语言 (HTML)、层叠样式表 (CSS) 和 JavaScript (JS),或可用的分支,如 Typescript、SASS 或 Jade。 这种类型的应用程序也可以看作是一种移动跨平台开发 (MCPD),因为它们是使用与广泛的设备和平台兼容的 Web 技术构建的。 此外,其他 MCPD 是基于 React、Ionic 或 Fuse [8] 等网络技术构建的,并被视为移动网络应用程序。 此外,通常用于在本机应用程序上显示 Web 内容的 WebViews 也是某种移动 Web 应用程序 [9]。
通过使用不同类型的网络内容,用户的设备会不断消耗不同程度的能量。 如果我们可以在手机上节省能源,就可以延长电池寿命并减少需要充电的次数。 因此,用户可以在两次充电之间享受更长的使用时间,避免因电池没电而感到沮丧。
此外,随着全球变暖的快速进展,需要采取措施来节约能源。 这样,就提出了绿色物联网 (IoT) 一词。 绿色物联网旨在通过最大限度地减少物联网设备的能源消耗和促进可持续实践来减少物联网设备对环境的影响 [10]。
以下示例展示了智能手机节能技术可能产生的重大影响。
[11]提供的数据集包括2022年以来150部智能手机的电池寿命信息。该数据包括关于电池容量[mAh]的信息。
此外,它还包含每部手机的持续时[hh:mm],说明在完全放电之前,它能够通过无线保真(Wi-Fi)处理和显示网络内容的时间。数据显示,这些设备的平均容量为4818mAh,在消耗网络内容的同时,平均需要13小时3分钟才能完全放电。通过考虑不同的能量改善百分比,我们得出了以下表I。该表显示了2022年以来平均智能手机放电时间的预期改善。

表I:节能的影响
2022 年第二季度,全球用户平均每天有一半以上的在线时间花在手机上。 平均每天消耗 3 小时 41 分钟 [12]。 另外考虑到全球有 54.8 亿互联网用户,我们在全球范围内浏览网页总共需要大约 7480 兆瓦的电力。
如果我们可以将智能手机消耗的能源使用量减少 5%,我们将节省 374 Wh。 换句话说,这相当于可以关闭更多的福岛核反应堆。值得注意的是,这些估计是粗略的。
尽管如此,它们仍然展示了节能技术在延长电池寿命、增强用户体验以及通过节约能源减少对环境影响方面的潜力。 详细的计算、假设和数据可以在线访问 [13]。
本系统文献综述 (SLR) 的主要目标是汇编和分析过去十年中在移动 Web 应用程序上测试的节能工作和技术的综合概述。 我们特别关注移动网络应用程序使用对电池消耗的影响。 但我们不排除其他可能影响电池寿命的因素,例如 CPU 和网络带宽利用率。
本研究的具体贡献如下:1) 确定因网络应用程序使用而导致智能手机能量消耗的关键参数。 (RQ1) 2) 总结在移动网络应用程序上进行的节能实验中采用的测试方法。 (RQ2, RQ3) 3) 分析和综合研究中采用的各种节能方法。 (RQ4) 在为该 SLR 提供必要的背景和动机之后,本文的后续部分组织如下。 随后,我们在第二部分讨论了相关二次研究的结果,并强调了与我们工作的区别。 在第三节中,我们概述了进行 SLR 所采用的方法,包括具体的研究问题。 这些问题随后在第 IV 节中得到解决,我们在该节中介绍了审查的结果,包括所有相关研究的综合。 然后在第 V 节中讨论了这些发现的含义。在第 VI 节中,我们解决了可能影响审查结果的有效性的潜在威胁,并在第 VII 节中得出结论。
II.相关工作
几项主要研究分析了移动(网络)应用程序节能实验的具体方面。 这些研究工作集中在各种主题上,例如 CPU 调度(例如 [14])、显示界面(例如 [15])和卸载(例如 [16])。 这些研究的结果在本 SLR 的第 IV 节中给出。 仅进一步讨论与我们的研究相关的次要研究。
我们研究的一部分是检查用于进行节能实验的方法。Munk等人进行了关于该主题的最相关的先前工作之一。他们对移动网络上基于测量的实验的文献综述,侧重于实验执行的技术方面。 相比之下,我们的研究更加强调与能量相关的实验。 使用季风功率监测器的研究数量的差异可以突出这一点。而 Munk 等人参考四项研究,我们的分析确定了 12 篇使用该测量工具的论文。
我们系统性文献综述的一个特定目标是找到移动网络应用程序的能源密集型方面,并收集有关潜在节能策略的信息。节能也可以在更广泛的背景下考虑,例如 Arshad 等人所证明的绿色物联网。[10]. Arshad等人概述了多重挑战并提出了绿色物联网技术的分类法。 这种分类是基于各种节能物联网模型中使用的技术。与此同时,作者评估了可用于降低物联网设备能耗的不同解决方案。 总的来说,本文全面概述了物联网节能的不同机会,但没有明确暗示如何在移动应用程序上节省基于软件的能源。
与之前提到的研究相反,Cruz和Abreu[18]以及Meneses Viveros等人[19]提出的策略对移动应用程序开发人员有效利用系统和优化电池使用具有直接影响。
具体而言,Cruz和Abreu提供了一个全面的能源模式目录,可应用于移动应用程序,以提高能源效率。该目录由22种设计模式组成,是通过审查1700多个移动应用程序存储库的提交、问题和拉取请求以及相关研究而开发的。作者断言,其中一些模式也可能适用于物联网领域。
Meneses Viveros等人专注于移动应用程序开发人员可以做出的节约能源的战略设计决策。通过SLR,确定了各种节能策略,特别强调与应用开发相关的策略。这些策略包括使用移动计算卸载,将顺序编程优先于多线程和并行执行,以及确保图形用户界面的正确设计和实现。
与我们评估的节能策略的直接比较表明,其中一些模式和策略在移动web应用程序的上下文中也很相关。据我们所知,我们的研究与先前的研究之间的根本区别在于我们研究的主要重点是网络应用程序,而不是本地应用程序。这有助于强调我们研究的重要性和新颖性。
III.方法
为了进行SLR,我们遵循了Kitchenham和Charters的软件工程指南[20]和Wohlin的滚雪球指南[21]。他们的指令用于识别和综合移动网络应用程序中能源效率的当前知识状态,并为未来的研究提供指导。系统的研究过程将在随后的小节中介绍。具体的搜索过程可以在图2中找到。

图2:研究设计概述。
A.研究问题
研究问题RQ1、RQ2、RQ3和RQ4来源于一项叙述性研究,其目的是了解移动网络应用程序的能量消耗方面,并汇总以前研究中的节能方法。此外,该研究还考察了用于获得可理解的能量结果的测量过程。
RQ1智能手机中的哪些硬件组件最常与移动网络应用程序造成的能量消耗有关?
智能手机的能量消耗速度与使用多个硬件组件密切相关。典型的组件是发光二极管(LED)显示器、中央处理器(CPU)或无线通信模块(Wi-Fi、2G、3G或4G等移动网络)[22],[23]。通过理解影响能源消耗的各种参数,开发人员可以优化web应用程序的设计和开发,以最大限度地减少能源使用。
RQ2有哪些方法可用于测量移动web应用程序的能耗?
这个研究问题考察了移动测试环境中使用的基于硬件和软件的能量测量设置。它旨在说明所使用的不同方法和工具,并讨论它们各自的优点和缺点。
RQ3为了获得可理解的结果,必须考虑哪些实验测试设置来测量移动网络应用程序的能耗?
为了准确评估移动网络应用程序的能量需求,必须考虑一系列可能影响结果的实验测试设置。
这些可能包括缓存设置、连接类型以及在移动网络应用程序中执行的特定操作。在这项研究中,我们试图确定在测量移动网络应用程序的能耗时应该考虑的关键测试设置。
RQ4有哪些方法可以降低移动网络应用程序的能耗?
在RQ1研究结果的基础上,我们研究了降低移动网络应用能耗的不同策略。为了确定共同的主题,我们对节能方法进行了分类,并调查了每一类研究的各个方面。
B.文献搜索
为了进行充分的文献研究,我们选择了一种混合搜索策略,以提高搜索的全面性和敏感性,同时将遗漏相关研究的风险降至最低[24]。搜索过程从电子研究开始,然后是向前和向后滚雪球[21]。
1) 初始搜索:为了确定一组合适的搜索结果,我们选择了四个学术搜索引擎:Google Scholar、Science Direct、ACM(计算机协会)、IEEE Xplore(电气和电子工程师协会)。所有四个科学搜索引擎都允许在搜索词中使用布尔表达式。主要搜索词是“能源效率”和“移动网络应用程序”,它们被扩展到以下搜索字符串:
(能量或功率)AND(效率或节能)AND(“移动网络应用程序”或“移动网络应用程序”或“PWA”或“渐进式网络应用程序”或“移动网站”)
搜索不区分大小写,时间范围为2012年1月1日至2022年11月16日。还选择了搜索引擎提供的相关过滤设置,以将结果限制为相关的结果。
具体的过滤设置在 Review Protocol [13] 中有描述。
2) 滚雪球:为了补充我们的主要研究数据集,我们选择了 Wohlin [21] 提供的滚雪球方法。 他们描述的概念用于识别和添加相关研究,方法是从一小组初始研究开始,然后迭代添加更多被初始研究引用(向后滚雪球)或引用初始研究(向前滚雪球)的研究。 这个过程使我们能够扩大审查范围并增加考虑的研究数量。 在我们的研究中,我们最初使用反向滚雪球(BS-1、BS-2、BS-3),直到通过这个过程没有发现进一步的研究。 然后我们切换到向前滚雪球 (FS-1)。 在前四次迭代之后,我们反复进行向后和向前的滚雪球迭代(BS-4、FS-2;BS-5、FS-3),直到没有更多的研究可以评估。
C. 研究选择 我们使用表 II 和 III 中列出的纳入和排除标准来决定将哪些论文纳入审查。

表 II:纳入标准。

表 III:排除标准。
评估过程的第一步是阅读每项研究的标题并确定它是否适合 SLR。
如果认为合适,该论文将被标记为进一步评估的候选者。 如果发现语法重复(具有相同标题或数字对象标识符的论文),则该论文将被排除在外。 接下来,我们通过阅读论文的摘要和结论来评估研究的资格,以决定是否应将其添加到主要研究的选择中。 如果一篇研究论文符合所有纳入标准但不符合任何排除标准,我们就会在研究中对其进行检查。
D. 数据提取如果一篇论文被认为符合条件,则会对其进行彻底审查,并根据既定的提取框架[13]提取、组织和总结相关数据。
第一作者负责执行数据提取。
IV.调查结果
在本节中,我们介绍了 SLR 的结果,包括一般信息并解决了本文开头提出的研究问题(在第 III 节中介绍)。
一般调查结果 共有 44 项初步研究被纳入审查,其中有 5 次向后和 3 次向前滚雪球。
因此,我们看不到 2012 年至 2022 年之间特定年份的文献有任何显着增加。

图 3:每年的参考文献数量。
这表明随着万维网的发展,该主题受到的关注可能低于预期 [25]。 审查中包含的主要研究包括 29 篇会议论文和 15 篇期刊文章。 本次审查未发现研讨会论文。 图 4 中显示的数据说明了各种节能策略的出版物分布,主要研究集中在 CPU 高效调度策略和代码相关优化上。

图 4:节能方法。
RQ1:智能手机中的哪些硬件组件最常与移动网络应用程序导致的能量消耗相关?
智能手机消耗能量的速度与其各种硬件组件的利用率密切相关 [66]。 表 IV 映射了试图改善此特定硬件能量消耗的文献,并总结了进一步讨论的能量消耗方面:
显示:移动设备的显示技术显着影响能耗 [66]。 即使在显示黑屏时,液晶显示器 (LCD) 也会消耗背光电源,而有机发光二极管 (OLED) 显示器在像素关闭时显示出最小的功耗。 这意味着 OLED 显示器的功耗会随着发光像素数量的增加而增加。 更改移动网络应用程序的视觉表示会导致特定比例的亮像素与暗像素,从而影响 OLED 显示器上的能量因子 [26]、[27]。
Wi-Fi 或 GSM 模块:移动设备可以选择 Wi-Fi 和蜂窝(2G、3G、4G/LTE)网络连接到网络。 在大多数情况下,移动数据比 Wi-Fi 消耗更多的能量,如各种研究 [44]、[52]、[60]、[64] 所示。 带宽和延迟是影响能耗的关键因素 [44]。 带宽通常以字节为单位,是指可以通过网络传输的最大数据量,而延迟通常以往返时间来衡量,是指传输数据所花费的时间。 传输、接收和处理数据的能量消耗随着特定时期内传输的数据量的增加而增加[34],[52]。 然而,值得注意的是,数据传输的持续时间在确定整体能效方面也起着至关重要的作用。 尽管较短的数据传输时间框架可能会导致更高的能源消耗,但从长远来看,它可能会带来更好的能源效率,因为加载内容所需的时间更短 [64]。
CPU 处理:在移动网络应用程序的加载阶段,CPU 的能量消耗可能非常大,因为它处理和呈现网络内容 [51]。 然而,这种消耗在初始加载后不会停止,因为用户与应用程序的交互也会触发重新绘制的需要 [16]、[29]、[57],从而增加 CPU 利用率。CPU 的能量需求由两个主要因素决定:频率缩放 [47]、[53]、[54]、[56] 和核心选择 [47]。 频率缩放是指 CPU 根据工作负载以不同频率运行的能力。 当 CPU 以较低频率运行时,它消耗的能量较少,但代价是性能降低和可能延长页面加载阶段。 另一方面,核心选择是指在任何给定时间处于活动状态并正在运行的核心数量。 许多现代处理器有多个内核,其中一些是节能的,而另一些是高性能的(例如 ARM big.LITTLE)。 通过有选择地禁用特定内核,可以降低能耗。
RQ2:有哪些方法可用于测量移动 Web 应用程序的能耗?
对于能量测量,我们确定了三种通用方法:基于硬件、基于软件和基于估计。
测量移动网络应用程序能耗的一种方法是使用基于硬件的能量测量工具。 所有提供的硬件通常都可以描述为某种万用表,通常能够提供有关设备总能耗的细粒度数据 [14]、[54]、[56]、[58]、[59]。 万用表连接到电源链路,将电池或恒定实验室电源的能量传输到移动电话。 我们将 Monsoon Solutions 的电源监视器确定为最常用的硬件 [15]、[16]、[27]–[29]、[44]、[51]、[52]、[57]、[62]–[64] ].我们假设经常使用 Monsoon 的功率监视器,因为它每秒可以采集多达 5000 个样本,并且具有 +/- 50µA 的精度 [68]。
此外,ODroid-XU3是一款常用的能量测量工具,配备了板载能量传感器。 它是一台运行 Android 或 Ubuntu Linux 并具有三星 Exynos 5422 Cortex-A15 内核的单板计算机。 其类似于智能手机的设计使其成为各种能量测量研究中的有用工具 [14]、[26]、[53]、[54]、[56]、[58]。 除了前面提到的方法,NI [14]、[54]、[56]、Agilent [37]、[38]、[41]、[53]、[69] 和 Keithley [37] 品牌的解决方案 ], [41] 也用于数据采集。 基于硬件的工具的缺点之一可能是它们的潜在价格。 例如,购买 Monsoon 的功率监视器的成本为 989 美元(2023 年 1 月)[68]。因此,基于软件的解决方案可能有利可图。它们通常能够在系统或代码级别进行更细粒度的测量。 在三个案例中,使用了 Batterystats 工具。 Batterystats 收集电池数据(基于智能手机供应商配置文件)在设备上,并且可以通过 Android 调试桥进行访问,以进行进一步分析,即使在单个硬件单元上也是如此 [30]、[32]、[33]。 使用高通芯片的设备的替代方案是 Trepn Profiler [31]、[32]、[49]、[50]。 Ahmad 等人也使用了它。 [70] 使用 PowerTutor 应用程序来评估基于动态分析的能量估计的性能。 上一次更新是在 2016 年,对新一代 Android 的支持有限,这可能是未来实验的一个缺点 [49]。 另一个仅用过一次的工具 [3] 是 Greenspector,这是一种工具(提供程序),可根据实际智能手机上的运行情况执行能量测量。 Singh [43] 执行了一种非常“粗略”的方法,他测量了单个电池百分比下降之间的持续时间。
已经介绍过的 PowerTutor 应用程序是一个能耗估算模型。
根据所采用的模型,可以考虑各种因素(例如加载时间或数据传输)来估算移动 Web 应用程序的能耗。 Alami 等人开发了一个最近的能源消耗估算模型示例。 [36]。 这些研究人员根据电池消耗曲线、当前网络速度、不同版本网页的大小以及各个版本的估计能耗来估算能耗。 能量估计模型的另一个例子是由 Ihara 等人提出的。 [61] 在他们的研究中,利用硬件测量作为他们分析的基础。
RQ3:为了获得可理解的结果,必须考虑哪些实验测试设置来衡量移动网络应用程序的能耗?
为了执行能量测量,移动设备通常设置在受控测试环境中,其中条件尽可能保持恒定,并且只有少数参数,如连接参数(例如,[31]、[51]、 [52])或缓存类型(例如,[3]、[33]、[39])。 在分析的数据集中,我们已经确定了我们想要进一步讨论以获得可理解的测试结果的共同原则。

表 IV:受网络影响的耗能硬件

表 V:能量测量方法。
测量工具:作为第一步,通常建议使用能够提供稳定可控电源的电源。这可以通过将实验室电源保持在恒定水平来实现。此外,根据个人的具体要求选择正确的能量测量工具也很重要。做出这一决定的主要考虑因素包括精度水平和测量频率,如RQ2所示。
移动设备:在过去的实验中,安卓设备通常用于测量,其中三星[14]、[28]、[29]、[34]、[36]、[40]、[42]、[46]、[51]、[57]、[58]、[62]和Nexus[26]、[31]、[32]、[35]、[37]、[41]、[44]、[51]-[53]、[61]、[63]设备是最受欢迎的设备。安卓版本与安卓4到11不同。在移动网络应用程序中观察到的能源效率提高可能因所使用的智能手机设备而异。例如,Bui等人[62]进行了实验,比较了低端三星S5-E和高端S5-S设备的能源使用情况,同时使用节能页面加载的设计原理。他们发现,低规格的S5-E能耗降低了11.7%,而S5-S能耗降低了24.4%。
智能手机的闲置电量波动:另外,智能手机的闲置电量起着至关重要的作用。 空闲功耗是指设备或系统在打开(显示活动、设备解锁)但未被主动使用时消耗的电量。 在这里,目标是尽可能少的波动。 为了最小化这些波动,文献提出了以下策略:1) 将显示亮度设置为恒定水平并停用自适应亮度 [43]。 杜塔等人。 [33] 甚至建议在与实验无关的情况下完全关闭显示屏亮度。
2) 在实验运行期间,推送通知或软件更新等后台任务会增加空闲功耗。 为了尽量减少这种影响,建议只在设备上安装必要的应用程序。 为了实现这一目标,Chan-Jong-Chu 等[3] 通过全新安装操作系统 (OS) 开始了他们的实验。 此外,他们卸载了所有第三方应用程序。
3) 发送和接收与实验无关的数据,会导致空闲功耗。 为了尽量减少这种影响,可以启用飞行模式,并且只应激活必要的无线连接类型 [26]、[30]、[35]、[40]。
Web 浏览器设置:为了检索基于 Web 的信息,使用了多种 Web 浏览器引擎。
其中,Chromium 和 Firefox 使用频率最高,分别有 20 个和 9 个实例。 在实验的每一次迭代中,都认为必须彻底清除所有持久性网站数据,包括缓存、cookie 和浏览历史记录,并确保浏览器设置在所有试验中保持一致。 此外,据观察,某些研究完全禁用了缓存 [15]、[37]、[41]、[45]、[54]、[60]、[62]。
网络内容:移动网络应用程序的选择需要仔细考虑。 应该测试什么样的网站? 内容是否针对移动设备进行了优化? 一种常见的能量评估实验方法是使用 Alexa 排名前 100/500/1000 的网站 [38]、[44]–[46]、[53]、[55]、[56]、[59]。不幸的是,该网站已于 2022 年 5 月 1 日停用。通过这种方式,Varvello和Livshits [28]建议使用 Tranco5,这是一个面向研究的顶级站点排名页面。
测试运行次数:能源测试运行应重复多次,以识别和纠正实验设置或数据收集过程中的错误或不一致。 例如,朱等人。 执行了他们的实验三次 [14],Qian 等人。 [34] 6 次,Chowdhury 等人。 [35] 和 Ayala 等人。 [31] 20 次或 Van Hasselt [50] 甚至 30 次。
RQ4:有哪些方法可以降低移动网络应用程序的能耗?
在过去的十年中,已经探索了大量的移动网络浏览节能策略。这些努力主要集中在提高各种系统组件的能效,例如无线接口、CPU 内核和显示接口(参见 RQ1)。 如表 VI 所示,这些方法可大致分为三个主要类别:节省处理器利用率、采用 Web 内容以及减少 Web 流量和相关子类别。 应该注意的是,一些来源可能属于多个类别或可能不容易归类,因此列在其他类别下。
节省处理器利用率:有大量研究专注于为移动 Web 应用程序开发 CPU 高效的调度方法,旨在最大限度地减少设备的处理要求。 这些方法不同于传统的 OS 调度程序,因为它们考虑更广泛的因素,在确定最有效的任务调度时,包括与网络内容相关的参数和用户体验 [59]。 这使他们不仅能够最大限度地减少能源消耗,而且还能保持高水平的服务质量 (QoS)。 它们通过将任务分配给特定核心并降低频率来降低能量。 2013 年,Zhu等人[56] 发表了一篇论文,其中描述了一种预测模型的开发,该模型用于根据网站特征优化网页在核心和频率配置上的调度。 他们的模型满足严格的性能要求并有效地安排网页以获得最佳性能。 在后续论文中,Zhu 等[14] 进一步考虑了用户体验并提出了一种基于事件的调度方法,该方法以刚好足够的能量来执行事件以满足 QoS 要求。 一年后,Zhu等人提出了 GreenWeb [55],这是一组语言扩展,允许 Web 开发人员将 QoS 抽象表达为程序注释。考虑到QoS,选择了非对称多处理架构的最佳最小调度配置。 Choi 等人开发的 Webtune。 [57] 在他们的研究中也考虑了 QoS 方面。 在执行过程中,Webtune 使用强化学习计算浏览器进程的最佳速度。 2018 年,Ren 等人[47] 采用机器学习方法来预测呈现 Web 内容的最佳处理器设置。 该方法基于多种因素,例如网页内容(与 Zhu 等人关于利用网页特征的研究 [54] 相关)、网络状态(与 Zhu 等人关于 [64] 中节能网页浏览中的 CPU)和优化目标。 此外,DORA [53] 在今年推出,它不仅关注 Web 内容,还关注动态变化的架构(如核心利用率、核心温度和缓存)和系统条件等因素。
除了优化网站内容的加载和渲染阶段,用户控制移动网络应用程序的交互阶段也提供了节能机会,标有人机交互优化。
各种论文 [15]、[29]、[65] 研究了用户交互过程中的滚动和捏合阶段。 许等开发了 eBrowser,一个旨在优化人机交互中能源效率的框架。当交互事件更新函数调用过于频繁时,会给设备的CPU带来负担并增加功耗。为了最小化这些事件的频率,eBrowser 调整交互事件率(即用户事件触发在屏幕上发生的速率)[29]。没有考虑使用特定的异构多核系统,而 Ren 等[15] 以及 Yuan 等人。[65] 后来在他们的作品中解决了这个问题。 他们采用各种机器学习模型来估计网页上给定用户交互可以实现的每秒最小帧数。 然后以平衡响应性和能效的方式为异构多核硬件选择最佳处理器设置。Feng 和 Zhu [58] 的主动事件调度 (PES) 方法也考虑了实现这种平衡。PES背后的概念是基于统计推断和应用程序代码分析的组合来预测未来事件,并随后在全球范围内同步所有事件的调度决策。使用数据挖掘 [38] 是另一种预测用户在网页上的阅读时间并在阅读时间超过特定阈值时将手机切换到低功率的方法。
网络上的 3D 渲染、虚拟现实和 AI 模拟 [16] 等高强度计算任务会给智能手机的 CPU 和 GPU 带来压力,导致它们以最佳性能运行并消耗大量能量。 将这些任务卸载或外包给服务器,有助于节省电池容量并提高性能。 公园等。 [52] 提出了一种卸载系统,该系统使用内置代理将 JS 代码分类为计算广泛和轻量级的代码。 轻量级代码在智能手机上执行,而计算密集型任务在服务器上执行。 然而,卸载的有效性高度依赖于服务器和客户端之间连接的稳定性,这会阻碍客户端的节能。 针对这个问题,An 和 Tilevich [49] 引入了 Communicating Web Vessels (CWV) 的概念。 CWV 持续监控网络并确定何时应该卸载 JS 代码。 为了促进卸载系统的开发,Jeong 等人[16] 提出了快照,它允许随时保存 DOM 和 JS 计算的卸载状态。
减少网络流量:缓存是一种在移动设备上本地存储网页、图像和其他类型内容副本的技术,以便下次请求相同内容时可以快速检索它们。 避免再次传输相似的内容可以减少能量消耗。 在 Dimitrios Lymberopoulos 等人于 2012 年 PocketWeb 出现之前。 [42],在处理移动设备上的静态 Web 内容时,缓存技术主要是节能的。
随着 Web 内容的进展变得越来越动态和频繁变化,传统的缓存方法已变得不适用。 为了应对这一挑战,PocketWeb 实施了一种基于预测性 AI 的页面加载机制,该机制将网页分为个人用户经常访问和自发访问的类别。 这种方法允许用户受益于更快的浏览速度,同时保持或减少无线电能量耗散。 据 Dutta 等人报道[33],由于传统客户端-服务器系统和移动通信基础设施之间的架构差异,传统缓存机制在移动设备环境中的适用性有限。 为了解决这个问题,作者提出了两种缓存方法:(a) 响应缓存,涉及在文档级别存储完整的 HTTP 响应,以及 (b) 对象缓存,它更适合在 JSON 对象中存储细粒度数据。 Malavolta 等人最近的研究[39] 检查了空缓存和填充缓存对渐进式 Web 应用程序 (PWA) 的影响。 研究发现,两种缓存策略在能耗上没有显着差异。
网页内容的(预)过滤是指在将网页内容呈现给用户之前对其进行评估和选择的过程。 这经常出现在广告中,保护消费者的在线隐私和安全。 除了这个好处,在大多数情况下,阻塞机制和隐私过滤器还可以降低能耗。 这可以通过结合带宽节省——来自广告的网络请求更少——以及通过限制动画、可视化和渲染来减少 CPU 负载来实现 [34]、[37]、[40]、[41]、[ 51], [63]。这可以显着节省移动设备的能源,正如 Brave 浏览器的出现所见,该浏览器默认阻止广告以减少能源消耗 [28],[45]。 所有这些都是在客户端完成的。 但也必须考虑到不能完全屏蔽广告,因为大多数网络应用程序都依赖它们来获取收入。 为了解决这个问题,Albasir 等人。 [44] 介绍了一种在服务器端采用网络内容的模型。 根据智能手机当前的电池电量和网络类型,调整广告数量。 这意味着广告已经在服务器端被移除。 这在数据传输到客户端之前就已经保留了带宽,同时平衡了广告商和最终用户的满意度。 同样,Sing [43] 采用了经典的 Model-View-View 模型,由于数据模型和 UI 元素之间需要进行数据转换和过滤,因此可以使代码占用更多 CPU。 此外,经常会观察到未使用数据的开销。 因此,他们将应用程序的模型和视图模型都移到了服务器端,以减轻移动设备的工作量。
Cao等[51] 和Qian等人[34] 不仅将缓存和过滤视为降低能耗的潜在策略,而且还提出利用不同的压缩级别作为可行的选择(例如 HPACK 在 HTTP2 [35] 中使用)。 压缩技术的使用可以帮助最小化跨网络的脚本传输时间,从而减少延迟。 然而,重要的是要注意减压过程也可能对能量消耗产生影响,而选择的压缩水平会影响这种影响 [51]。
此外,在移动客户端和服务器端之间建立连接对于能耗也很重要。 实时应用程序中用于传输数据的常见策略包括轮询、长轮询和网络套接字。 除了应该使用长轮询的大消息外,Ayala 等人。 [31] 声称 Web 套接字是最环保的策略。 对于 PWA,Service Workers(代理中间件)的使用已经发展,为 Web 应用程序和服务器之间的通信提供通用入口点,例如推送通知和消息传递。 根据 [30]、[32],Service Worker 的使用不应对移动设备的能耗产生重大影响。
采用网页内容:
与其他类别相比,与代码相关的优化将侧重于直接改变网页内容的节能方法,明确使用 JS、CSS 和 HTML。
如果 Web 内容在其设计中存在缺陷,则会产生计算开销。 Web 内容的智能组织应该基于内容的受欢迎程度 [61],最常访问的项目在顶部,不太受欢迎的项目在下面。 这将使用户更容易找到所需的内容,并最大限度地减少过度滚动造成的功耗,从而改善用户体验。 此外,未使用的 JS 和 CSS 代码 [48] 或重叠元素、隐藏特定层 [48]、[62] 都是与代码相关的陷阱。 因此,如 Chang-Jong-Chu 等人所示,Lighthouse 等工具的使用对于移动 Web 应用程序至关重要。 [3]. 研究表明,Lighthouse 中较低的性能分数(基于不同指标的加权平均分数,如 First Contentful Paint 或 Time to Interactive)与较高的能耗相关。 Unlu 和 Yesilada [46] 也讨论了 Google 的灯塔建议之一:缩小 JS 和 CSS 内容涉及从网站源代码中消除多余的字符,包括空格、换行符和注释。 这样,必须传输给客户端的字节就更少了。 同样,将 JS 和 CSS 文件 [46]、[51] 合并到一个文件中可以减少超文本传输协议请求的数量。 作为具有高计算要求的 JS 代码的替代方案,WebAssembly 的推出构成了性能和能效的提升 [50]。 WebAssembly 可以作为虚拟机集成到 JS 环境中。 智能手机的状况也可能在动态内容的采用中发挥作用。 诸如 Alami 等人提到的那些因素。 [36] 也可能是相关的,包括平均浏览时间、估计的当前网络速度和剩余电池容量。 基于该信息,服务器提供最合适的网络应用程序可用版本(例如,具有不同图像分辨率或动画数量的版本),通过最小化设备的能耗来维持用户体验。
显示感知内容自适应的目标是修改网页内容以降低 OLED 显示器的功耗,通常通过最大化暗像素和最小化亮像素来实现。2012 年,Dong等人介绍了 Chameleon 浏览器,它使用节能的配色方案呈现网页。 然而,这种方法在手动采用配色方案方面存在局限性。Li 等人提出了后续解决方案。他们开发了一种用于分析 Web 内容、生成颜色冲突图并使用它为网站创建节能的颜色主题的自动化方法。
V.讨论
本节深入探讨了我们研究中出现的主要发现。 我们为研究人员和网络开发人员提供建议,并将讨论分为两个小节。第一部分介绍从能量测量实验(RQ2、RQ3)中收集到的见解,而第二部分侧重于节能方法(RQ1、RQ4)。
A. 节能实验的见解和建议
在过去的十年中,已经进行了大量研究来调查移动设备的节能策略。 由于 Android 操作系统的开源特性,这些研究大部分是在 Android 设备上进行的,这有利于实验。 然而,该领域明显缺乏利用 iOS 设备的能量测量研究。 具体的节能策略可能会因移动网络应用程序及其运行设备的具体特征而异。
Monsoon Power Monitor 是实施节能方法的推荐设备,因为它已在以前的实验中成功使用并提供准确的测量。 此外,它易于投入使用。 尽管具有成本效益的基于软件的测量在节能研究中很受欢迎,但它们可能缺乏基于硬件的测量的精度。 根据 Hoque 等人的说法,我们审查发现的基于软件的能量分析器(BatteryStats、Trepn、PowerTutor)的准确度在 86% 到 97.7% 之间。
除了测量工具的不精确性外,其他多种因素也会影响能量测量的准确性。RQ3 的累积结果可作为指南。 不同测试设置、测试设备和测量设备的广泛差异使得(难以置信)难以比较改进因素。 因此,我们拒绝提及具体数值,例如百分比或改进因素,因为它们几乎没有可比性。 这样一来,泛化性往往就缺失了。 总的来说,研究人员应该选择范围更广的单个设备,以说明节能效果。
B. 节能策略的见解和建议
总的来说,这些研究通常将能源消耗作为一个主要方面,通常与性能、带宽和网络内容采用等其他因素相结合。 改进是移动网络应用程序的其中一个方面,与能源改进直接相关。
实施不同的节能策略通常需要多种技术技能。 这些技能包括精通硬件、了解操作系统和网络浏览器,以及网络内容优化技术的专业知识。
此外,我们已经看到,在选择降低移动 Web 应用程序能耗的方法时,考虑能源效率与其他因素(如性能、可用性和利润)之间的权衡变得很重要。
调查不同的节能策略并将其与 L. Cruz 和 R. Abreu 进行比较。 [18] 移动能源模式,我们确定这些不仅可用于本机应用程序,而且还为移动网络应用程序提供建议。 审查显示,审查的论文已经涵盖了 Push Over Poll、Reduce Size、Wi-Fi Over Cellular、Cache 或 Avoid Extraneous Graphics and Animations 等模式。
VI.有效性威胁
有效性威胁是指可能破坏研究的可靠性和普遍性的因素 [72]。 为了识别潜在的偏见来源,我们检查了 Zhou 等人制定的软件工程中普遍存在的有效性威胁地图。
构建有效性:为确保相关论文的适当检索过程,我们遵守既定的准则。 准确地说,Kitchenham 等人的程序。 [20] 贯穿了 SLR 的三个阶段:规划、实施和报告审查。 在开始我们的系统文献综述 (SLR) 之前,我们进行了叙述性文献综述,以排除不相关的研究问题并建立适当的选择标准。 此外,我们采用了 Wohlin [21] 的指南,专门利用前向和后向滚雪球作为一种搜索方法。
内部有效性:为了解决内部威胁,我们制定了详细的研究设计计划(在第 III 节中概述)。一个潜在的内部威胁可能是一位作者单独进行了论文的提取过程和综合。为了减轻这种风险,我们已经为其他研究人员提供了我们的复制包 [13],以独立复制搜索过程。 此外,我们还对提取的数据进行了健全性检查。 相反,只有一位作者的选择可以降低研究选择和数据提取不一致的风险。
外部有效性:由于研究设计,未包括灰色文献(例如 [74]、[75]),这可能提供对节能策略的见解。 与我们的科学主张相反,这些灰色文献没有经过严格的能量实验,由于研究信息不完整,它们的潜在相关性可能有限。 为了避免遗漏潜在的科学论文,我们使用了各种研究引擎,并在没有找到更多相关论文后采用向后和向前滚雪球的方式来结束搜索过程。 考虑到移动技术和互联网速度的快速增长和进步,我们预计十年的时间范围足以进行审查。 例如,ACM 中 80% 的已发表文献都是在这十年的时间范围内发表的。
结论有效性:我们研究的结论有效性是通过与合著者和其他研究人员协商减少潜在的研究偏差来确保的。 此外,我们遵守了既定的文献检索指南,并充分披露了检索过程中获得的所有发现和材料。
VII.结论
节能的重要性现在比以往任何时候都更加明显,特别是考虑到最近的情况 [76]。 正如我们的工作所示,例如,能耗降低 5% 可能会使 2022 年智能手机的平均电池续航时间增加 39 分钟。 当外推到所有移动设备时,这种能源消耗的减少足以关闭福岛的一个核反应堆。
通过对 2012 年至 2022 年间发表的 44 份科学资料的回顾和分析,本研究概述了移动网络应用程序的节能策略。确定的调查结果揭示了降低处理器利用率、减少网络流量和有效采用网络内容的有效方法。 此外,此 SLR 还考虑了常用的测量技术和未来进行相关实验的指南。 对于那些在为移动网络应用程序实施节能策略时寻求灵感和指导的人来说,我们的研究是一个有益的资源。