一句话:提出 ConfFix,利用 Android 框架版本对 XML 配置元素处理差异的知识,自动生成补丁修复配置兼容性问题。
Android 应用常用 XML 配置文件描述 UI,但不同 Android 框架版本对同一 XML 元素的处理不一致,会导致配置兼容性(CC)问题,引发崩溃或界面不一致,且缺乏通用修复方案。本文先实证研究开发者修复真实 CC 问题的常见策略,进而提出 ConfFix:它由“XML 元素在不同框架版本中如何被不一致处理”的知识驱动,生成消除此类不一致的补丁。作者在 13 个开源 Android 应用的 77 个可复现 CC 问题上评估,ConfFix 成功修复 64 个且精度较高,优于基线;其中 38 个问题的补丁已被开发者确认并合并。
XML configuration files are widely-used to specify the user interfaces (UI) of Android apps. Configuration compatibility (CC) issues are induced owing to the inconsistent handling of such XML configuration files across different Android framework versions. CC issues can cause software crashes and inconsistent look-and-feels, severely impacting the user experience of Android apps. However, there is no universal solution to resolve CC issues and app developers need to handle CC issues case by case. Existing tools are designed based on predefined rules or visual features that are possibly manifested by CC issues. Unfortunately, they can fail or generate overfitting patches when the CC issues are beyond their capabilities. To fill the above research gaps, we first empirically studied the app developers' common strategies in patching real-world CC issues. Based on the findings, we propose ConfFix, an automatic approach to repair CC issues in Android apps. ConfFix is driven by the knowledge of how an XML element is handled inconsistently in different versions of the Android framework and generates patches to eliminate such inconsistencies. We evaluated ConfFix on a set of 77 reproducible CC issues in 13 open-source Android apps. The results show that ConfFix outperforms baselines in successfully repairing 64 CC issues with a high precision. Encouragingly, the patches for 38 CC issues have been confirmed and merged by app developers.
@inproceedings{HuangXW0C23,
title = {ConfFix: Repairing Configuration Compatibility Issues in Android Apps},
author = {Huaxun Huang and Chi Xu and Ming Wen and Yepang Liu and Shing-Chi Cheung},
booktitle = {ISSTA},
year = {2023},
doi = {10.1145/3597926.3598074}
}