AndroidCompass: A Dataset of Android Compatibility Checks in Code Repositories

@article{Nielebock2021AndroidCompassAD,
  title={AndroidCompass: A Dataset of Android Compatibility Checks in Code Repositories},
  author={Sebastian Nielebock and Paul Blockhaus and Jacob Kr{\"u}ger and Frank Ortmeier},
  journal={2021 IEEE/ACM 18th International Conference on Mining Software Repositories (MSR)},
  year={2021},
  pages={535-539}
}
Many developers and organizations implement apps for Android, the most widely used operating system for mobile devices. Common problems developers face are the various hardware devices, customized Android variants, and frequent updates, forcing them to implement workarounds for the different versions and variants of Android APIs used in practice. In this paper, we contribute the Android Compatibility checkS dataSet (AndroidCompass) that comprises changes to compatibility checks developers use… 

Figures and Tables from this paper

Automatically Detecting API-induced Compatibility Issues in Android Apps: A Comparative Analysis (Replicability Study)
TLDR
Experimental results show that existing tools can indeed be reproduced, but their capabilities are quite distinct, as confirmed by the fact that there is only a small overlap of the results reported by the selected tools.
TriggerZoo: A Dataset of Android Applications Automatically Infected with Logic Bombs
TLDR
Triggerzoo is presented, a new dataset of 406 Android apps containing logic bombs and benign trigger-based behavior that is released only to the research community using authenticated API and can be exploited as ground truth to assess their approaches and provide comparisons against other tools.
An Experimental Analysis of Graph-Distance Algorithms for Comparing API Usages
TLDR
This paper systematically identified a set of eight graph-based distance algorithms and applied them on two datasets of real-world API usages and misuses, suggesting that existing distance algorithms are not reliable for comparing API usage graphs.
Guided pattern mining for API misuse detection by change-based code analysis
TLDR
This paper introduces different, lightweight code search and filtering strategies and evaluated them on 37 real-world API misuses to determine their usefulness in finding relevant API usage patterns and introduces a just-in-time API misuse detection process which analyzes changes at the time of commit.

References

SHOWING 1-10 OF 24 REFERENCES
Taming Android fragmentation: Characterizing and detecting compatibility issues for Android apps
TLDR
An empirical study on 191 real-world compatibility issues collected from popular open-source Android apps is conducted, characterized the symptoms and root causes of compatibility issues, and disclosed that the patches of these issues exhibit common patterns.
Understanding and Detecting Evolution-Induced Compatibility Issues in Android Apps
TLDR
A new tool called IctApiFinder is developed, to detect incompatible API usages in Android applications, and effectively computes the OS versions on which an API may be invoked, using an inter-procedural data-flow analysis frame-work.
Understanding and Detecting Fragmentation-Induced Compatibility Issues for Android Apps
TLDR
An empirical study on 220 real-world compatibility issues collected from five popular open-source Android apps, and a technique, FicFinder, to automatically detect compatibility issues in Android apps that can uncover previously-unknown issues are proposed.
CiD: automating the detection of API-related compatibility issues in Android apps
TLDR
This paper proposes an automated approach named CiD for systematically modelling the lifecycle of the Android APIs and analysing app bytecode to flag usages that can lead to potential compatibility issues, and demonstrates the usefulness of CiD by helping developers repair their apps.
Data-Driven Solutions to Detect API Compatibility Issues in Android: An Empirical Study
TLDR
ACRYL learns from changes implemented in other apps in response to API changes, which allows not only to detect compatibility issues, but also to suggest a fix, and points to the future possibility of combining the two approaches, trying to learn detection/fixing rules on both the API and the client side.
How Android Developers Handle Evolution-induced API Compatibility Issues: A Large-scale Study
TLDR
RAPID, an automated tool to determine whether a compatibility issue has been addressed or not, by incorporating both static analysis and machine learning techniques is proposed, which would be extremely useful to novice developers and may significantly improve the current status of compatibility issue handling.
API compatibility issues in Android: Causes and effectiveness of data-driven detection techniques
TLDR
It is found that there is no clear winner, since the two techniques are highly complementary, and none of them provides a comprehensive support in detecting API compatibility issues: ACRyL achieves a precision of 7.0% (28.0%, when considering only the severe warnings), while CiD achievesA precision of 18.4%.
Understanding and Detecting Callback Compatibility Issues for Android Applications
TLDR
A graph-based model is proposed to capture the control flow inconsistencies caused by API evolutions and a static analysis technique, Cider, is devised to detect callback compatibility issues.
PIVOT: Learning API-Device Correlations to Facilitate Android Compatibility Issue Detection
TLDR
This paper proposes a technique, PIVOT, that automatically learns API-device correlations of FIC issues from existing Android apps and demonstrates that it can effectively prioritize valid API- device correlations for app corpora collected at different time.
Cooperative API Misuse Detection Using Correction Rules
TLDR
This paper assumes that a developer manually detected and fixed an API misuse relating to a third-party library and can infer a correction rule for the API misuse, which represents a cooperative technique to transfer the knowledge of API-misuse fixes to other developers.
...
...