Compatibility Issues in Android: Characterisation and Detection
Android has become the most popular mobile platform with over 2.5 billion active users who use many different languages across many different countries. Since it is open-sourced and rapidly evolved, fragmentation, induced by different device vendors and rapid evolution of itself, has become a serious problem in the whole Android ecosystem, which affects consistent running of Android Apps. In addition, the app per se could also give a bad user-experience if it only provides a single or several different languages. Therefore, we present different approaches to strengthen the quality of Android apps to provide app users a consistent user-friendly experience from two different aspects. Extensive fragmentation induces severe compatibility issues. We first proposed \androsea{} to identify silently evolved methods, which have the same comment but different implementation between two consecutive Android releases and successfully identified 4,769 silently evolved methods between ten most used Android releases, including 2,271 publicly-accessible methods. To go step further, we also proposed \andromevol{} to successfully quantify 333,952 incompatibility APIs between 11 different releases and 6 different vendors, including 191,546 methods and 142,406 fields. To have a better understanding of the fragmentation, we also investigated how these customizations bring in updates from the official newer releases. We found that only a small portion of version releases of the official Android OS projects were merged into their customization releases. Project TeamProf John Grundy, Pei Liu (PhD Candidate), Prof Li Li Papers
Tool
|
