

英语原文共 12 页,剩余内容已隐藏,支付完成后下载完整资料
Android应用程序自动重新整理
——提高程序效率
Abhik Roychoudhury
新加坡国立大学,新加坡
摘要
移动设备,如智能手机和平板电脑,一直在消耗着我们自然能源。因此,针对这些平台的应用程序必须节能。然而,由于对能量使用方面知识的欠缺,在实际的设计实践中情况往往不会考虑节能问题。在本文中,我们提出了一种轻量级的应用程序重新整理技术,可以帮助应用程序开发高效率。我们的技术依赖于一套能效指南,可以让应用程序中的编码能源密集型(硬件)资源的得到最佳使用。给定一个应用程序的原型,我们的技术开始于为它生成一个设计表达式。设计表达式可以被描述为一个正则表达式,代表了能源密集型资源使用的排序和应用程序中关键功能(事件处理程序)的排序。它还生成一组缺陷表达式,这是表示能效指标不合格的设计表达式。应用程序的设计表达式与缺陷表达式之间的非空交集表示违反了我们的能效指南(因此可能会导致重新分解)。为了评估我们的重新分解技术的功效,所以我们使用我们的技术分析了一套开源Android应用程序,并由此产生了应用程序的重新分解,结果是将这些应用的能耗降低3%至29%。同时我们还为我们的一个主题应用程序提供了一个案例研究,研究了这个应用程序在两年的时间和200多个组合中的变化。我们的框架发现,在这些研究中,如果开发人员使用了一种能源感应重新确定技术,例如在这项工作中提出的技术,那么早期在开发阶段我们就已经让程序进行了重新组合,降低了能耗。
分类和主题描述:D.2.2 [软件工程师—设计工具与技术
关键词:移动应用 ;重新整理;能源效率
1简介
应用程序开发工具的轻松便捷使用,使最近一段时间内导致了大量的移动应用程序。 截至2015年,Google Play商店[2]共有180多万个应用程式。许多在线教程和公开的测试工具,如MonekyRunner [3]
在Play商店注册发行商账户费用$ 25 [1]
授予个人或教室使用的全部或部分本作品的数字或复印件的许可,无需付费,只要副本不是为了利润或商业利益而制作或分发的,并且副本在第一页上承担本通知和完整引用 。 如果要复制,重新发布,在服务器上发布或重新分发到列表,则需要事先具体的许可或费用。
使测试应用程序功能变得相对容易,即使是新的应用程序开发人员开发去测试其应用程序的功能也是很容易。然而,测试其非功能性行为,特别是能源效率就不是那么容易的。 移动设备消耗着大自然的能源, 因此,为这些设备制作的应用程序的设计和能源效率优化至关重要。 然而,由于诸如缺乏对能效设计的正确理解或缺乏能够执行这种节能设计的工具等因素,致使应用程序开发主要是以能量无关的方式进行的。
近年来,研究工作提出了许多技术(如剖析[4],测试[5]),可用于开发后的质量保证。这样的技术无法为节能设计和移动应用的重新分解提供足够的技术支持支持。在本文中,我们提出了一种正交方法来解决这个问题。我们提出了一种轻量级的应用程序重新分解技术,它使用一套节能指南来为特定的应用程序生成节能替代。这些能源效率指标是在在通过优化能源密集型(硬件)资源的使用来提高能源效率的假设下制定的。诸如I / O组件和电源管理实用程序等资源对能源消耗最大的影响,因此必须尽可能减少其使用量,而不会影响应用程序的功能。此外,某些资源(如传感器)可以通过多种配置来访问,每种配置都提供服务质量与能效之间的具体权衡,基于应用程序的功能,对最优的正确使用可以进一步降低能耗。
为了检测重新分解机会,我们的框架会检查在特定应用程序中违反(能源效率)准则的情况。不过,直接在应用程式源代码中进行的出的违反准则的情况有可能是由于多种原因造成的。例如,移动应用程序本质上是事件驱动的,通常由隔离的代码段(或事件处理程序)组成,应用程序源代码之间的排序可能不明确。这使得很难在事件处理程序边界之间检测准则违例。此外,现实生活中的应用程序可能包含数千行代码,并不是所有这些代码都显着影响了应用程序的能耗行为。因此,在我们的框架寻找重新分解机会之前,它首先产生一个中间的,简洁的应用程序的表示。这种中间表示,从此被称为设计表达式,仅包含与应用程序的能源消耗行为最相关的信息。准确来说,设计表达可以被描述为一个常规表达,它代表了能源密集型资源使用的顺序和应用程序内的关键功能(事件处理程序)的调用。使用设计表达式可以使我们在事件处理器边界之外重新确定能源使用过多的资源。此外,由于设计表达式是定制的正则表达式,我们可以使用现成的工具和技术来分析/操纵它们。同样值得一提的是,我们的框架会自动为给定的应用程序生成设计表达式。
为了检测违规行为,我们的框架还会生成一组缺陷表达式。缺陷表达式具有与设计表达式相同的语法,但代表了能效指南的违规。所以本质上,设计表达式代表应用程序应该做什么(为了实现其功能),而缺陷表达式代表应用程序为了节能而不应该做什么。设计表达式与缺陷表达式之间的非空交点违反与缺陷表达相关的能效指标。值得一提的是,这样的分析是可能的,因为设计表达式以及缺陷表达式都是由同一个人构成的。在检测到引导违规时,我们的框架产生了一个重新设计的设计表达式,使得它具有一个空缺的缺陷表达式。最后,将重新设计的设计表达式提交给应用开发者批准。如果开发者批准显示的重新分解,则将更改映射回源代码。
关键贡献:
bull;我们提出了一套针对Android应用专门设计的节能指南。 这些指导原则可以提高应用程序开发人员对节能设计模式的理解,并为构建能源感应重新分解工具提供必要的基础。
bull;我们提供一个自动化框架,可以检测并重新确定Android应用程序中的能源效率指南违规。 我们的框架的功效和可扩展性来自使用移动应用程序(即设计表达式)的新型中间表示。 这些设计表达仅包含对于提高应用程序的能耗行为的至关重要的信息,同时保持其原有功能。
bull;我们使用F-Droid [6]应用程序库中的一套开源应用程序对我们的框架进行了评估。 在这个评估中,我们观察到,由我们框架产生的重组显降低了应用程序的能耗的 - 观察到改善3%至29%。
bull;我们还为我们的一个主题应用程序提供了一个深入的案例研究,这些应用程序在两年的时间和超过200个提交中捕获了其设计演变。 我们的框架发现,在开发阶段早些时候可以实施的若干项承诺重新考虑机会,如果开发人员使用了一种能源感知重新确定技术,例如在这项工作中提出的技术
|
DESIGN EXTRACTION |
||||||||||||||||||||||||||||||||||||
|
App |
EFG |
EFG |
DFA |
DFA |
Expression |
Design Expression |
||||||||||||||||||||||||||||||
|
Source |
Generation |
Construction |
Generation |
|||||||||||||||||||||||||||||||||
|
Detect Guideline |
Re-factor |
|||||||||||||||||||||||||||||||||||
|
<!-- 剩余内容已隐藏,支付完成后下载完整资料
资料编号:[141641],资料为PDF文档或Word文档,PDF文档可免费转换为Word |
||||||||||||||||||||||||||||||||||||
您可能感兴趣的文章
- 饮用水微生物群:一个全面的时空研究,以监测巴黎供水系统的水质外文翻译资料
- 步进电机控制和摩擦模型对复杂机械系统精确定位的影响外文翻译资料
- 具有温湿度控制的开式阴极PEM燃料电池性能的提升外文翻译资料
- 警报定时系统对驾驶员行为的影响:调查驾驶员信任的差异以及根据警报定时对警报的响应外文翻译资料
- 门禁系统的零知识认证解决方案外文翻译资料
- 车辆废气及室外环境中悬浮微粒中有机磷的含量—-个案研究外文翻译资料
- ZigBee协议对城市风力涡轮机的无线监控: 支持应用软件和传感器模块外文翻译资料
- ZigBee系统在医疗保健中提供位置信息和传感器数据传输的方案外文翻译资料
- 基于PLC的模糊控制器在污水处理系统中的应用外文翻译资料
- 光伏并联最大功率点跟踪系统独立应用程序外文翻译资料
