LiveDroid: identifying and preserving mobile app state in volatile runtime environments

LiveDroid: identifying and preserving mobile app state in volatile runtime environments
复制标题

LiveDroid:在不稳定的运行时环境中识别和保留移动应用程序状态

DOI:
10.1145/3428228
复制
发表时间:
2020
影响因子:
--
通讯作者:
Neamtiu, Iulian
Neamtiu, Iulian
中科院分区:
--
文献类型:
--
作者:
Farooq, Umar;Zhao, Zhijia;Sridharan, Manu;Neamtiu, Iulian

文献摘要

参考文献

被引文献

相似文献

移动的操作系统(尤其是Android)将应用程序暴露给易变的运行时环境。反映过去用户交互和系统环境更新的应用状态(例如,电池状态改变)可以被隐式地破坏,以响应运行时配置改变(例如,屏幕旋转)或内存压力。因此,开发人员负责识别受波动性影响的应用状态,并在应用生命周期中保存它。如果处理不当,应用可能会在运行时配置更改或用户返回应用后丢失状态或最终处于不一致的状态。为了将开发人员从这个繁琐且容易出错的任务中解放出来,我们提出了一个系统化的解决方案LiveDroid,它可以精确识别应用状态中需要在应用生命周期中保留的必要部分,并自动保存和恢复它。LiveDroid包括:(i)静态分析器,其对应用源代码和资源文件进行推理以精确定位表示必要应用状态的程序变量和GUI属性,以及(ii)运行时系统,其管理状态保存和恢复。我们将LiveDroid实现为Android Studio中的插件和APK的修补工具。我们的评估显示LiveDroid可以成功应用于966个Android应用程序。一项针对36个Android应用程序的研究表明,LiveDroid比现有的解决方案更精确地识别应用程序状态,现有的解决方案包括所有可变的程序变量,但忽略了GUI属性。因此,平均而言,LiveDroid能够将状态保存和恢复的成本分别降低16.6倍(1.7倍-141.1倍)和9.5倍(1.1倍-43.8倍)。此外,与开发人员执行的手动状态处理相比,我们的分析揭示了由于不完整的状态保存/恢复而导致的46个问题,所有这些问题都可以通过LiveDroid成功消除。
Mobile operating systems, especially Android, expose apps to a volatile runtime environment. The app state that reflects past user interaction and system environment updates (e.g., battery status changes) can be destroyed implicitly, in response to runtime configuration changes (e.g., screen rotations) or memory pressure. Developers are therefore responsible for identifying app state affected by volatility and preserving it across app lifecycles. When handled inappropriately, the app may lose state or end up in an inconsistent state after a runtime configuration change or when users return to the app.To free developers from this tedious and error-prone task, we propose a systematic solution, LiveDroid, which precisely identifies thenecessarypart of the app state that needs to be preserved across app lifecycles, and automatically saves and restores it. LiveDroid consists of: (i) a static analyzer that reasons about app source code and resource files to pinpoint the program variables and GUI properties that represent the necessary app state, and (ii) a runtime system that manages the state saving and recovering. We implemented LiveDroid as a plugin in Android Studio and a patching tool for APKs. Our evaluation shows that LiveDroid can be successfully applied to 966 Android apps. A focused study with 36 Android apps shows that LiveDroid identifies app state much more precisely than an existing solution that includes all mutable program variables but ignores GUI properties. As a result, on average, LiveDroid is able to reduce the costs of state saving and restoring by 16.6X (1.7X - 141.1X) and 9.5X (1.1X - 43.8X), respectively. Furthermore, compared with the manual state handling performed by developers, our analysis reveals a set of 46 issues due to incomplete state saving/restoring, all of which can be successfully eliminated by LiveDroid.
仅摘要:移动应用程序的模块化性能建模
DOI: 10.1145/1958746.1958793
发表时间: 2011
期刊: ACM Sigsoft Software Engineering Notes
影响因子: --
作者:
N. Arijo;R. Heckel;M. Tribastone;S. Gilmore
通讯作者: S. Gilmore
DOI: 10.1145/2568225.2568309
发表时间: 2014-05
期刊: Proceedings of the 36th International Conference on Software Engineering
影响因子: --
作者:
Semih Okur;D. L. Hartveld;Danny Dig;A. Deursen
通讯作者: Semih Okur;D. L. Hartveld;Danny Dig;A. Deursen
DOI: 10.1201/9781003229100-6
发表时间: 2022-02
期刊: Mastering Git
影响因子: --
作者:
Sufyan bin Uzayr
通讯作者: Sufyan bin Uzayr
代码重构如何影响能源使用?
DOI: 10.1145/2652524.2652538
发表时间: 2014
期刊: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering
影响因子: --
作者:
C. Sahin;L. Pollock;J. Clause
通讯作者: J. Clause
具有垃圾收集功能的语言的实时堆空间分析
DOI: 10.1145/1542431.1542450
发表时间: 2009
期刊: 2012 IEEE 12th International Working Conference on Source Code Analysis and Manipulation
影响因子: --
作者:
E. Albert;S. Genaim;M. Gómez
通讯作者: M. Gómez