{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,18]],"date-time":"2026-03-18T13:15:32Z","timestamp":1773839732951,"version":"3.50.1"},"reference-count":58,"publisher":"MDPI AG","issue":"8","license":[{"start":{"date-parts":[[2024,7,23]],"date-time":"2024-07-23T00:00:00Z","timestamp":1721692800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Information"],"abstract":"<jats:p>Keeping up with the fast evolution of mobile operating systems is challenging for developers, who have to frequently adapt their apps to the upgrades and behavioral changes of the underlying API framework. Those changes often break backward compatibility. The consequence is that apps, if not updated, may misbehave and suffer unexpected crashes if executed within an evolved environment. Being able to quickly identify the portion of the app that should be modified to provide compatibility with new API versions can be challenging. To facilitate the debugging activities of problems caused by backward incompatible upgrades of the operating system, this paper presents FILO, a technique that is able to recommend the method that should be modified to implement the fix by analyzing a single failing execution. FILO can also provide additional information and key symptomatic anomalous events that can help developers understand the reason for the failure, therefore facilitating the implementation of the fix. We evaluated FILO against 18 real compatibility problems related to Android upgrades and compared it with Spectrum-Based Localization approaches. Results show that FILO is able to efficiently and effectively identify the fix-locus in the apps.<\/jats:p>","DOI":"10.3390\/info15080423","type":"journal-article","created":{"date-parts":[[2024,7,23]],"date-time":"2024-07-23T14:26:50Z","timestamp":1721744810000},"page":"423","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["FILO: Automated FIx-LOcus Identification for Android Framework Compatibility Issues"],"prefix":"10.3390","volume":"15","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-3499-0159","authenticated-orcid":false,"given":"Marco","family":"Mobilio","sequence":"first","affiliation":[{"name":"Department of Informatics, Systems, and Communication, University of Milano-Bicocca, Viale Sarca 336, 20126 Milan, Italy"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2120-2894","authenticated-orcid":false,"given":"Oliviero","family":"Riganelli","sequence":"additional","affiliation":[{"name":"Department of Informatics, Systems, and Communication, University of Milano-Bicocca, Viale Sarca 336, 20126 Milan, Italy"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1261-2234","authenticated-orcid":false,"given":"Daniela","family":"Micucci","sequence":"additional","affiliation":[{"name":"Department of Informatics, Systems, and Communication, University of Milano-Bicocca, Viale Sarca 336, 20126 Milan, Italy"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-9527-7042","authenticated-orcid":false,"given":"Leonardo","family":"Mariani","sequence":"additional","affiliation":[{"name":"Department of Informatics, Systems, and Communication, University of Milano-Bicocca, Viale Sarca 336, 20126 Milan, Italy"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"1968","published-online":{"date-parts":[[2024,7,23]]},"reference":[{"key":"ref_1","doi-asserted-by":"crossref","unstructured":"McDonnell, T., Ray, B., and Kim, M. (2013, January 22\u201328). An empirical study of API stability and adoption in the android ecosystem. Proceedings of the IEEE International Conference on Software Maintenance, Eindhoven, The Netherlands.","DOI":"10.1109\/ICSM.2013.18"},{"key":"ref_2","doi-asserted-by":"crossref","unstructured":"Mahmud, T., Che, M., and Yang, G. (2022, January 19\u201323). Android api field evolution and its induced compatibility issues. Proceedings of the 16th ACM\/IEEE International Symposium on Empirical Software Engineering and Measurement, Helsinki, Finland.","DOI":"10.1145\/3544902.3546242"},{"key":"ref_3","doi-asserted-by":"crossref","unstructured":"Wei, L., Liu, Y., and Cheung, S.-C. (2016, January 3\u20137). Taming Android fragmentation: Characterizing and detecting compatibility issues for Android apps. Proceedings of the 31st IEEE\/ACM International Conference on Automated Software Engineering, Singapore.","DOI":"10.1145\/2970276.2970312"},{"key":"ref_4","doi-asserted-by":"crossref","unstructured":"Mostafa, S., Rodriguez, R., and Wang, X. (2017, January 10\u201314). Experience Paper: A Study on Behavioral Backward Incompatibilities of Java Software Libraries. Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis, Santa Barbara, CA, USA.","DOI":"10.1145\/3092703.3092721"},{"key":"ref_5","doi-asserted-by":"crossref","unstructured":"Abreu, R., Zoeteweij, P., and van Gemund, A.J.C. (2007, January 10\u201314). On the accuracy of spectrum-based fault localization. Proceedings of the Testing: Academic and Industrial Conference Practice and Research Techniques\u2014MUTATION (TAICPART-MUTATION 2007), Windsor, UK.","DOI":"10.1109\/TAICPART.2007.4344104"},{"key":"ref_6","doi-asserted-by":"crossref","unstructured":"Jones, J.A., and Harrold, M.J. (2005, January 7). Empirical evaluation of the Tarantula automatic fault-localization technique. Proceedings of the 20th IEEE\/ACM International Conference on Automated Software Engineering, Long Beach, CA, USA.","DOI":"10.1145\/1101908.1101949"},{"key":"ref_7","doi-asserted-by":"crossref","unstructured":"Mobilio, M., Riganelli, O., Micucci, D., and Mariani, L. (2019, January 28\u201331). FILO: FIx-LOcus Recommendation for Problems Caused by Android Framework Upgrade. Proceedings of the 2019 IEEE 30th International Symposium on Software Reliability Engineering (ISSRE), Berlin, Germany.","DOI":"10.1109\/ISSRE.2019.00043"},{"key":"ref_8","unstructured":"Teclib (2024, June 10). GLPI Android Inventory Agent. Available online: https:\/\/github.com\/glpi-project\/android-inventory-agent."},{"key":"ref_9","unstructured":"(2024, June 10). Michael Kerrisk, Diff(1)? Linux Manual Page. Available online: http:\/\/man7.org\/linux\/man-pages\/man1\/diff.1.html."},{"key":"ref_10","unstructured":"Foundation, J. (2024, June 10). Appium. Available online: http:\/\/appium.io\/."},{"key":"ref_11","unstructured":"(2024, June 10). Android Studio. Available online: https:\/\/developer.android.com\/studio."},{"key":"ref_12","unstructured":"(2024, June 10). The Android Profiler. Available online: https:\/\/developer.android.com\/studio\/profile\/android-profiler."},{"key":"ref_13","unstructured":"(2024, June 10). XDA Developers, Xposed. Available online: https:\/\/forum.xda-developers.com\/f\/xposed-general.3094\/."},{"key":"ref_14","doi-asserted-by":"crossref","unstructured":"Mobilio, M., Riganelli, O., Micucci, D., and Mariani, L. (2020, January 21). Filo: Fix-locus localization for backward incompatibilities caused by android framework upgrades. Proceedings of the 35th IEEE\/ACM International Conference on Automated Software Engineering Virtual Event, Melbourne, Australia.","DOI":"10.1145\/3324884.3415290"},{"key":"ref_15","doi-asserted-by":"crossref","unstructured":"Kochhar, P.S., Xia, X., Lo, D., and Li, S. (2016, January 18\u201320). Practitioners\u2019 expectations on automated fault localization. Proceedings of the 25th International Symposium on Software Testing and Analysis, Saarbrucken, Germany.","DOI":"10.1145\/2931037.2931051"},{"key":"ref_16","unstructured":"GitHub, Inc (2024, June 10). GitHub. Available online: https:\/\/github.com."},{"key":"ref_17","unstructured":"Cunningham, J. (2024, June 10). Activities. Available online: https:\/\/github.com\/cunnj\/Activities."},{"key":"ref_18","unstructured":"(2024, June 10). AriaLyy, Boss Transfer. Available online: https:\/\/github.com\/shijunjzr\/BlogDemo\/."},{"key":"ref_19","unstructured":"(2024, June 10). xiangtailiang, FakeGPS. Available online: https:\/\/github.com\/xiangtailiang\/FakeGPS."},{"key":"ref_20","unstructured":"Paul, T. (2024, June 10). FilePicker. Available online: https:\/\/github.com\/DeveloperPaul123\/FilePickerLibrary."},{"key":"ref_21","unstructured":"(2024, June 10). Mozilla, FirefoxLite. Available online: https:\/\/github.com\/mozilla-mobile\/FirefoxLite."},{"key":"ref_22","unstructured":"(2024, June 10). FOSS Browser. Available online: https:\/\/f-droid.org\/packages\/de.baumann.browser\/."},{"key":"ref_23","unstructured":"(2024, June 10). Dieter Adriaenssens, GetBack_GPS. Available online: https:\/\/github.com\/ruleant\/getback_gps."},{"key":"ref_24","unstructured":"(2024, June 10). Eugene Kislyakov, GoodWeather. Available online: https:\/\/github.com\/qqq3\/good-weather."},{"key":"ref_25","unstructured":"(2024, June 10). KanjiFix. Available online: https:\/\/github.com\/ascendedguard\/android-kanji-fix."},{"key":"ref_26","unstructured":"(2024, June 10). MapDemo. Available online: https:\/\/github.com\/MiniPlaneterKUET\/MapDemo."},{"key":"ref_27","unstructured":"Swanberg, J. (2024, June 10). PoGoIV. Available online: https:\/\/github.com\/farkam135\/GoIV."},{"key":"ref_28","unstructured":"(2024, June 10). OpenTraining. Available online: https:\/\/github.com\/chaosbastler\/opentraining."},{"key":"ref_29","unstructured":"(2024, June 10). PrivacyPolice. Available online: https:\/\/github.com\/BramBonne\/privacypolice."},{"key":"ref_30","unstructured":"(2024, June 10). Stanley Idesis, QuotoGraph. Available online: https:\/\/github.com\/stanidesis\/quotograph."},{"key":"ref_31","unstructured":"(2024, June 10). Martin Lapi\u0161, SearchView. Available online: https:\/\/github.com\/lapism\/SearchBar-SearchView."},{"key":"ref_32","unstructured":"(2024, June 10). Network 47, ToneDef. Available online: https:\/\/github.com\/Fortyseven\/ToneDef."},{"key":"ref_33","unstructured":"(2024, June 10). TrebleShot. Available online: https:\/\/github.com\/trebleshot\/android."},{"key":"ref_34","unstructured":"Kishida, K. (2024, June 10). Property of Average Precision and Its Generalization: An Examination of Evaluation Indicator for Information Retrieval Experiments, Available online: https:\/\/www.nii.ac.jp\/TechReports\/public_html\/05-014E.pdf."},{"key":"ref_35","doi-asserted-by":"crossref","first-page":"8","DOI":"10.1109\/TSE.2016.2521368","article-title":"A survey on software fault localization","volume":"42","author":"Wong","year":"2016","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_36","unstructured":"(2024, June 10). Google, Monkey. Available online: https:\/\/developer.android.com\/studio\/test\/monkey."},{"key":"ref_37","doi-asserted-by":"crossref","unstructured":"Choudhary, S.R., Gorla, A., and Orso, A. (2015, January 9\u201313). Automated Test Input Generation for Android: Are We There Yet?. Proceedings of the 2015 30th IEEE\/ACM International Conference on Automated Software Engineering (ASE), Lincoln, NE, USA.","DOI":"10.1109\/ASE.2015.89"},{"key":"ref_38","unstructured":"(2024, June 10). Android Framework Classes and Services. Available online: https:\/\/android.googlesource.com\/platform\/frameworks\/base.git."},{"key":"ref_39","doi-asserted-by":"crossref","unstructured":"Linares-V\u00e1squez, M., Bavota, G., Penta, M.D., Oliveto, R., and Poshyvanyk, D. (2014, January 2\u20133). How Do API Changes Trigger Stack Overflow Discussions? A Study on the Android SDK. Proceedings of the 22nd International Conference on Program Comprehension, Hyderabad, India.","DOI":"10.1145\/2597008.2597155"},{"key":"ref_40","doi-asserted-by":"crossref","unstructured":"Li, L., Gao, J., Bissyand\u00e9, T.F., Ma, L., Xia, X., and Klein, J. (2018, January 14). Characterising Deprecated Android APIs. Proceedings of the 2023 IEEE\/ACM International Conference on Software Engineering: Future of Software Engineering (ICSE-FoSE), Gothenburg, Sweden.","DOI":"10.1145\/3196398.3196419"},{"key":"ref_41","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3649895","article-title":"Who Should We Blame for Android App Crashes? An In-Depth Study at Scale and Practical Resolutions","volume":"20","author":"Gong","year":"2024","journal-title":"ACM Trans. Sens. Networks"},{"key":"ref_42","unstructured":"Xia, H., Zhang, Y., Zhou, Y., Chen, X., Wang, Y., Zhang, X., Cui, S., Hong, G., Zhang, X., and Yang, M. (July, January 27). How Android developers handle evolution-induced API compatibility issues: A large-scale study. Proceedings of the ACM\/IEEE 42nd International Conference on Software Engineering, Seoul, Republic of Korea."},{"key":"ref_43","doi-asserted-by":"crossref","unstructured":"Cai, H., Zhang, Z., Li, L., and Fu, X. (2019, January 15\u201319). A large-scale study of application incompatibilities in Android. Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis, Beijing, China.","DOI":"10.1145\/3293882.3330564"},{"key":"ref_44","doi-asserted-by":"crossref","unstructured":"Li, L., Bissyand\u00e9, T.F., Wang, H., and Klein, J. (2018, January 16\u201321). CiD: Automating the Detection of API-Related Compatibility Issues in Android Apps. Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis, Amsterdam, The Netherlands.","DOI":"10.1145\/3213846.3213857"},{"key":"ref_45","doi-asserted-by":"crossref","unstructured":"Huang, H., Wei, L., Liu, Y., and Cheung, S.-C. (2018, January 3\u20137). Understanding and detecting callback compatibility issues for android applications. Proceedings of the 33rd ACM\/IEEE International Conference on Automated Software Engineering, Montpellier, France.","DOI":"10.1145\/3238147.3238181"},{"key":"ref_46","doi-asserted-by":"crossref","unstructured":"Mahmud, T., Che, M., and Yang, G. (2021, January 9\u201312). Android compatibility issue detection using api differences. Proceedings of the 2021 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER), Honolulu, HI, USA.","DOI":"10.1109\/SANER50967.2021.00051"},{"key":"ref_47","doi-asserted-by":"crossref","unstructured":"Mora, F., Li, Y., Rubin, J., and Chechik, M. (2018, January 3\u20137). Client-specific equivalence checking. Proceedings of the 33rd ACM\/IEEE International Conference on Automated Software Engineering, Montpellier, France.","DOI":"10.1145\/3238147.3238178"},{"key":"ref_48","doi-asserted-by":"crossref","unstructured":"Fazzini, M., and Orso, A. (2017, January 30). Automated cross-platform inconsistency detection for mobile apps. Proceedings of the 2017 32nd IEEE\/ACM International Conference on Automated Software Engineering (ASE), Urbana, IL, USA.","DOI":"10.1109\/ASE.2017.8115644"},{"key":"ref_49","doi-asserted-by":"crossref","unstructured":"Riboira, A., and Abreu, R. (2010, January 4\u20136). The GZoltar project: A graphical debugger interface. Proceedings of the International Academic and Industrial Conference on Practice and Research Techniques, Windsor, UK.","DOI":"10.1007\/978-3-642-15585-7_25"},{"key":"ref_50","doi-asserted-by":"crossref","unstructured":"Steimann, F., Frenkel, M., and Abreu, R. (2013, January 15\u201320). Threats to the validity and value of empirical assessments of the accuracy of coverage-based fault locators. Proceedings of the 2013 International Symposium on Software Testing and Analysis, Lugano, Switzerland.","DOI":"10.1145\/2483760.2483767"},{"key":"ref_51","doi-asserted-by":"crossref","unstructured":"Parnin, C., and Orso, A. (2011, January 17\u201321). Are automated debugging techniques actually helping programmers?. Proceedings of the 2011 International Symposium on Software Testing and Analysis, Toronto, ON, Canada.","DOI":"10.1145\/2001420.2001445"},{"key":"ref_52","doi-asserted-by":"crossref","unstructured":"Pradel, M., and Gross, T.R. (2012, January 2\u20139). Leveraging test generation and specification mining for automated bug detection without false positives. Proceedings of the 2012 34th International Conference on Software Engineering (ICSE), Zurich, Switzerland.","DOI":"10.1109\/ICSE.2012.6227185"},{"key":"ref_53","unstructured":"Dig, D., Negara, S., Mohindra, V., and Johnson, R. (2008, January 10\u201318). ReBA: A Tool for Generating Binary Adapters for Evolving Java Libraries. Proceedings of the Companion of the 30th International Conference on Software Engineering, Leipzig, Germany."},{"key":"ref_54","first-page":"15","article-title":"Anomaly detection: A survey","volume":"41","author":"Chandola","year":"2016","journal-title":"ACM Comput. Surv."},{"key":"ref_55","doi-asserted-by":"crossref","first-page":"4","DOI":"10.1109\/TSE.2010.93","article-title":"Dynamic analysis for diagnosing integration faults","volume":"37","author":"Mariani","year":"2011","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_56","doi-asserted-by":"crossref","unstructured":"Pastore, F., Mariani, L., Goffi, A., Oriol, M., and Wahler, M. (2012, January 27\u201330). Dynamic analysis of upgrades in C\/C++ software. Proceedings of the 2012 IEEE 23rd International Symposium on Software Reliability Engineering, Dallas, TX, USA.","DOI":"10.1109\/ISSRE.2012.9"},{"key":"ref_57","doi-asserted-by":"crossref","unstructured":"Zuddas, D., Jin, W., Pastore, F., Mariani, L., and Orso, A. (2014, January 15\u201319). MIMIC: Locating and understanding bugs by analyzing mimicked executions. Proceedings of the 29th ACM\/IEEE International Conference on Automated Software Engineering, Vasteras, Sweden.","DOI":"10.1145\/2642937.2643014"},{"key":"ref_58","doi-asserted-by":"crossref","first-page":"34","DOI":"10.1109\/TSE.2017.2755013","article-title":"Automatic software repair: A survey","volume":"45","author":"Gazzola","year":"2019","journal-title":"IEEE Trans. Softw. Eng."}],"container-title":["Information"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/2078-2489\/15\/8\/423\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,10]],"date-time":"2025-10-10T15:21:46Z","timestamp":1760109706000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/2078-2489\/15\/8\/423"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,7,23]]},"references-count":58,"journal-issue":{"issue":"8","published-online":{"date-parts":[[2024,8]]}},"alternative-id":["info15080423"],"URL":"https:\/\/doi.org\/10.3390\/info15080423","relation":{},"ISSN":["2078-2489"],"issn-type":[{"value":"2078-2489","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024,7,23]]}}}