Recover as It is Designed to Be: Recovering from Compatibility Mobile App Crashes by Reusing User Flows
<|reference_start|>Recover as It is Designed to Be: Recovering from Compatibility Mobile App Crashes by Reusing User Flows: Android OS is severely fragmented by API updates and device vendors' OS customization, creating a market condition where vastly different OS versions coexist. This gives rise to compatibility crash problems where Android apps crash on certain Android versions but not on others. Although well-known, this problem is extremely challenging for app developers to overcome due to the sheer number of Android versions in the market that must be tested. We present RecoFlow, a framework for enabling app developers to automatically recover an app from a crash by programming user flows with our API and visual tools. RecoFlow tracks app feature usage with the user flows on user devices and recovers an app from a crash by replaying UI actions of the app feature disrupted by the crash. To prevent recurring compatibility crashes, RecoFlow executes a previously crashed app in compatibility mode that is enabled by our novel Android OS virtualization technique. Our evaluation with professional Android developers shows that our API and tools are easy to use and effective in recovering from compatibility crashes.<|reference_end|>
@article{kim2024recover,
    title={Recover as It is Designed to Be: Recovering from Compatibility Mobile
  App Crashes by Reusing User Flows},
    author={Donghwi Kim, Hyungjun Yoon, Chang Min Park, Sujin Han, Youngjin Kwon,
  Steven Y. Ko, Sung-Ju Lee},
    journal={arXiv preprint arXiv:2406.01339},
    year={2024},
    archivePrefix={arXiv},
    eprint={2406.01339},
    primaryClass={cs.HC cs.OS cs.SE}
}