Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3597926.3598074acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

ConfFix: Repairing Configuration Compatibility Issues in Android Apps

Published: 13 July 2023 Publication History

Abstract

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.

References

[1]
2023. AdAway commit 576720b. https://github.com/AdAway/AdAway/commit/576720b
[2]
2023. airmessage pull request #45. https://github.com/airmessage/airmessage-android/pull/45
[3]
2023. airmessage/airmessage-android. https://github.com/airmessage/airmessage-android
[4]
2023. AmazeFileManager commit b3b8d60. https://github.com/TeamAmaze/AmazeFileManager/commit/b3b8d60
[5]
2023. Android API Differences Report. https://developer.android.com/sdk/api_diff/s-dp2/changes/changes-summary
[6]
2023. Android Developers. https://developer.android.com/
[7]
2023. apps-android-wikipedia commit 4738471. https://github.com/wikimedia/apps-android-wikipedia/commit/4738471
[8]
2023. apps-android-wikipedia commit 53010ec. https://github.com/wikimedia/apps-android-wikipedia/commit/53010ec
[9]
2023. Available Resources. https://developer.android.com/guide/topics/resources/available-resources?hl=en
[10]
2023. CarlosEsco/Neko. https://github.com/CarlosEsco/Neko
[11]
2023. Corewala/Buran. https://github.com/Corewala/Buran
[12]
2023. corona-warn-app/cwa-app-android. https://github.com/corona-warn-app/cwa-app-android
[13]
2023. cwa-app-android commit 8296d1f. https://github.com/corona-warn-app/cwa-app-android/commit/8296d1f
[14]
2023. enricocid/Music-Player-GO. https://github.com/enricocid/Music-Player-GO
[15]
2023. F-Droid - Free and Open Source Android App Repository. https://www.f-droid.org/en/
[16]
2023. fenix commit 7cea2ed. https://github.com/mozilla-mobile/fenix/commit/7cea2ed
[17]
2023. fenix pull request #26364. https://github.com/mozilla-mobile/fenix/pull/26364
[18]
2023. GitHub. https://github.com
[19]
2023. Google Play. https://play.google.com/store/apps
[20]
2023. Improve your code with lint checks. https://developer.android.com/studio/write/lint
[21]
2023. LibreTube. https://github.com/libre-tube/LibreTube
[22]
2023. lichess-org/lichobile. https://github.com/lichess-org/lichobile
[23]
2023. M66B/FairEmail. https://github.com/M66B/FairEmail
[24]
2023. mozilla-mobile/fenix. https://github.com/mozilla-mobile/fenix
[25]
2023. organicmaps/organicmaps. https://github.com/organicmaps/organicmaps
[26]
2023. ProtonMail/proton-mail-android. https://github.com/ProtonMail/proton-mail-android
[27]
2023. ProtonVPN/android-app. https://github.com/ProtonVPN/android-app
[28]
2023. Top Android SDK Versions. https://www.appbrain.com/stats/top-android-sdk-versions
[29]
2023. Update the order notes design. https://github.com/mozilla-mobile/fenix/pull/15886
[30]
2023. Write automated tests with UI Automator. https://developer.android.com/training/testing/other-components/ui-automator
[31]
2023. zhanghai/MaterialFiles. https://github.com/zhanghai/MaterialFiles
[32]
Abdulmajeed Alameer, Paul T Chiou, and William GJ Halfond. 2019. Efficiently repairing internationalization presentation failures by solving layout constraints. In 2019 12th IEEE Conference on Software Testing, Validation and Verification (ICST 2019). 172–182. https://doi.org/10.1109/ICST.2019.00026
[33]
Ali S Alotaibi, Paul T Chiou, and William GJ Halfond. 2021. Automated Repair of Size-Based Inaccessibility Issues in Mobile Applications. In 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE 2021). 730–742. https://doi.org/10.1109/ASE51524.2021.9678625
[34]
Steven Arzt, Siegfried Rasthofer, Christian Fritz, Eric Bodden, Alexandre Bartel, Jacques Klein, Yves Le Traon, Damien Octeau, and Patrick McDaniel. 2014. Flowdroid: Precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for android apps. Acm Sigplan Notices, 49, 6 (2014), 259–269. https://doi.org/10.1145/2771783.2771803
[35]
Haipeng Cai, Ziyi Zhang, Li Li, and Xiaoqin Fu. 2019. A large-scale study of application incompatibilities in Android. In Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2019). 216–227. https://doi.org/10.1145/3293882.3330564
[36]
Jieshan Chen, Chunyang Chen, Zhenchang Xing, Xiwei Xu, Liming Zhu, Guoqiang Li, and Jinshui Wang. 2020. Unblind your apps: Predicting natural-language labels for mobile gui components by deep learning. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering (ICSE 2020). 322–334. https://doi.org/10.1145/3377811.3380327
[37]
Mattia Fazzini and Alessandro Orso. 2017. Automated cross-platform inconsistency detection for mobile apps. In Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE 2017). 308–318. https://doi.org/10.1109/ASE.2017.8115644
[38]
Mattia Fazzini, Qi Xin, and Alessandro Orso. 2019. Automated API-usage update for Android apps. In Proceedings of the 28th ACM SIGSOFT international symposium on software testing and analysis (ISSTA 2019). 204–215. https://doi.org/10.1145/3293882.3330571
[39]
Stefanus A Haryono, Ferdian Thung, Hong Jin Kang, Lucas Serrano, Gilles Muller, Julia Lawall, David Lo, and Lingxiao Jiang. 2020. Automatic Android deprecated-API usage update by learning from single updated example. In Proceedings of the 28th international conference on program comprehension (ICPC 2020). 401–405. https://doi.org/10.1145/3387904.3389285
[40]
Stefanus A Haryono, Ferdian Thung, David Lo, Lingxiao Jiang, Julia Lawall, Hong Jin Kang, Lucas Serrano, and Gilles Muller. 2022. AndroEvolve: Automated Android API update with data flow analysis and variable denormalization. Empirical Software Engineering (EMSE 2022), 27, 3 (2022), https://doi.org/10.1007/s10664-021-10096-0
[41]
Dongjie He, Lian Li, Lei Wang, Hengjie Zheng, Guangwei Li, and Jingling Xue. 2018. Understanding and detecting evolution-induced compatibility issues in Android apps. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering (ASE 2018). 167–177. https://doi.org/10.1145/3238147.3238185
[42]
Huaxun Huang, Lili Wei, Yepang Liu, and Shing-Chi Cheung. 2018. Understanding and detecting callback compatibility issues for android applications. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering (ASE 2018). 532–542. https://doi.org/10.1145/3238147.3238181
[43]
Huaxun Huang, Ming Wen, Lili Wei, Yepang Liu, and Shing-Chi Cheung. 2021. Characterizing and Detecting Configuration Compatibility Issues in Android Apps. In 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE 2021). 517–528. https://doi.org/10.1109/ASE51524.2021.9678556
[44]
Stéphane Jacquet, Xavier Chamberland-Thibeault, and Sylvain Hallé. 2021. Automated Repair of Layout Bugs in Web Pages with Linear Programming. In International Conference on Web Engineering (ICWE 2021). 423–439. https://doi.org/10.1007/978-3-030-74296-6_32
[45]
Mona Erfani Joorabchi, Ali Mesbah, and Philippe Kruchten. 2013. Real challenges in mobile app development. In 2013 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement. 15–24. https://doi.org/10.1109/ESEM.2013.9
[46]
Taeyeon Ki, Chang Min Park, Karthik Dantu, Steven Y Ko, and Lukasz Ziarek. 2019. Mimic: UI compatibility testing system for Android apps. In Proceedings of the 41st International Conference on Software Engineering (ICSE 2019). 246–256. https://doi.org/10.1109/ICSE.2019.00040
[47]
Maxime Lamothe, Weiyi Shang, and Tse-Hsun Peter Chen. 2020. A3: Assisting android api migrations using code examples. IEEE Transactions on Software Engineering, 48, 2 (2020), 417–431. https://doi.org/10.1109/TSE.2020.2988396
[48]
Cong Li, Chang Xu, Lili Wei, Jue Wang, Jun Ma, and Jian Lu. 2018. ELEGANT: Towards Effective Location of Fragmentation-Induced Compatibility Issues for Android Apps. In Proceedings of the 25th Asia-Pacific Software Engineering Conference (APSEC 2018). 278–287. https://doi.org/10.1109/APSEC.2018.00042
[49]
Li Li, Tegawendé F Bissyandé, Haoyu Wang, and Jacques Klein. 2018. Cid: Automating the detection of api-related compatibility issues in android apps. In Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2018). 153–163. https://doi.org/10.1145/3213846.3213857
[50]
Pei Liu, Yanjie Zhao, Haipeng Cai, Mattia Fazzini, John Grundy, and Li Li. 2022. Automatically Detecting API-induced Compatibility Issues in Android Apps: A Comparative Analysis (Replicability Study). In Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2022). 617–628. https://doi.org/10.1145/3533767.3534407
[51]
Sonal Mahajan, Abdulmajeed Alameer, Phil McMinn, and William GJ Halfond. 2017. Automated repair of layout cross browser issues using search-based techniques. In Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2017). 249–260. https://doi.org/10.1145/3092703.3092726
[52]
Sonal Mahajan, Abdulmajeed Alameer, Phil McMinn, and William GJ Halfond. 2018. Automated repair of internationalization presentation failures in web pages using style similarity clustering and search-based techniques. In 2018 IEEE 11th International Conference on Software Testing, Verification and Validation (ICST 2018). 215–226. https://doi.org/10.1109/ICST.2018.00030
[53]
Sonal Mahajan, Abdulmajeed Alameer, Phil McMinn, and William GJ Halfond. 2021. Effective automated repair of internationalization presentation failures in web applications using style similarity clustering and search-based techniques. Software Testing, Verification and Reliability, 31, 1-2 (2021), https://doi.org/10.1002/stvr.1746
[54]
Forough Mehralian, Navid Salehnamadi, and Sam Malek. 2021. Data-driven accessibility repair revisited: on the effectiveness of generating labels for icons in Android apps. In Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2021). 107–118. https://doi.org/10.1145/3468264.3468604
[55]
Omer Tripp, Marco Pistoia, Patrick Cousot, Radhia Cousot, and Salvatore Guarnieri. 2013. Andromeda: Accurate and scalable security analysis of web applications. In International Conference on Fundamental Approaches to Software Engineering (FASE 2013). 210–225. https://doi.org/10.1007/978-3-642-37057-1_15
[56]
Lili Wei, Yepang Liu, and Shing-Chi Cheung. 2016. Taming Android fragmentation: Characterizing and detecting compatibility issues for Android apps. In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering (ASE 2016). 226–237. https://doi.org/10.1145/2970276.2970312
[57]
Lili Wei, Yepang Liu, and Shing-Chi Cheung. 2019. Pivot: learning api-device correlations to facilitate android compatibility issue detection. In 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE 2019). 878–888. https://doi.org/10.1109/ICSE.2019.00094
[58]
Lili Wei, Yepang Liu, Shing-Chi Cheung, Huaxun Huang, Xuan Lu, and Xuanzhe Liu. 2020. Understanding and detecting fragmentation-induced compatibility issues for android apps. IEEE Transactions on Software Engineering (TSE 2020), 46, 11 (2020), 1176–1199. https://doi.org/10.1109/TSE.2018.2876439
[59]
Aoyu Wu, Wai Tong, Tim Dwyer, Bongshin Lee, Petra Isenberg, and Huamin Qu. 2020. Mobilevisfixer: Tailoring web visualizations for mobile phones leveraging an explainable reinforcement learning framework. IEEE Transactions on Visualization and Computer Graphics (TVCG 2020), 27, 2 (2020), 464–474. https://doi.org/10.1109/TVCG.2020.3030423
[60]
Hao Xia, Yuan Zhang, Yingtian Zhou, Xiaoting Chen, Yang Wang, Xiangyu Zhang, Shuaishuai Cui, Geng Hong, Xiaohan Zhang, Min Yang, and Zhemin Yang. 2020. How Android Developers Handle Evolution-induced API Compatibility Issues: A Large-scale Study. In Proceedings of the 42nd International Conference on Software Engineering (ICSE 2020). 886–898. https://doi.org/10.1145/3377811.3380357
[61]
Qi Xin and Steven P Reiss. 2017. Leveraging syntax-related code for automated program repair. In 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE). 660–670. https://doi.org/10.1109/ASE.2017.8115676
[62]
Yanjie Zhao, Li Li, Kui Liu, and John Grundy. 2022. Towards Automatically Repairing Compatibility Issues in Published Android Apps. In Proceedings of the 44th International Conference on Software Engineering (ICSE 2022). 2142–2153. https://doi.org/10.1145/3510003.3510128

Index Terms

  1. ConfFix: Repairing Configuration Compatibility Issues in Android Apps

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ISSTA 2023: Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis
    July 2023
    1554 pages
    ISBN:9798400702211
    DOI:10.1145/3597926
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 13 July 2023

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Android
    2. Automated Repair
    3. Compatibility
    4. XML Configuration

    Qualifiers

    • Research-article

    Conference

    ISSTA '23
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 58 of 213 submissions, 27%

    Upcoming Conference

    ISSTA '25

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 203
      Total Downloads
    • Downloads (Last 12 months)101
    • Downloads (Last 6 weeks)11
    Reflects downloads up to 14 Nov 2024

    Other Metrics

    Citations

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media