{'fraction_non_alphanumeric': 0.019166666666666665, 'fraction_numerical': 0.0, 'mean_word_length': 5.491891891891892, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
An Observational Study on Compatibility-Related API Usage

Android has been the largest mobile platform in the world. However, with its prosperity, fragmentation has notoriously become a general phenomenon. This phenomenon causes compatibility issues, which bring terribly frustrating to developers and poor experience to users. Existing researches are confined in reason exploration and development test and lack of study on code level. To address this limitation of prior work, we conducted a large observational study on compatibility-related APIs in Android development. By exploring the pattern for developers to use compatibility-related API, we used the data flow analysis to locate code segments involving its usage. Then we manually conducted an investigation in code segments and the APIs it contains. Our study revealed the present situation how developer use the compatibility-related APIs, and disclosed the importance of using the compatibility-related APIs correctly. With these findings, we propose an approach named DISCAR to automatically discriminate compatibility-related APIs in Android apps. Experimental results on apps from Google Play demonstrate the effectiveness of DISCRA.