Abstract
As Android becomes a de-facto choice of development platform for mobile apps, developers extensively leverage its accompanying Software Development Kit to quickly build their apps. This SDK comes with a set of APIs which developers may find limited in comparison to what system apps can do or what framework developers are preparing to harness capabilities of new generation devices. Thus, developers may attempt to explore in advance the normally "inaccessible" APIs for building unique API-based functionality in their app. The Android programming model is unique in its kind. Inaccessible APIs, which however are used by developers, constitute yet another specificity of Android development, and is worth investigating to understand what they are, how they evolve over time, and who uses them. To that end, in this work, we empirically investigate 17 important releases of the Android framework source code base, and we find that inaccessible APIs are commonly implemented in the Android framework, which are further neither forward nor backward compatible. Moreover, a small set of inaccessible APIs can eventually become publicly accessible, while most of them are removed during the evolution, resulting in risks for such apps that have leveraged inaccessible APIs. Finally, we show that inaccessible APIs are indeed accessed by third-party apps, and the official Google Play store has tolerated the proliferation of apps leveraging inaccessible API methods.
Original language | English |
---|---|
Title of host publication | Proceedings - 2016 IEEE International Conference on Software Maintenance and Evolution, ICSME 2016 |
Editors | Bram Adams, Denys Poshyvanyk |
Place of Publication | Piscataway NJ USA |
Publisher | IEEE, Institute of Electrical and Electronics Engineers |
Pages | 411-422 |
Number of pages | 12 |
ISBN (Electronic) | 9781509038060 |
ISBN (Print) | 9781509038077 |
DOIs | |
Publication status | Published - 2017 |
Externally published | Yes |
Event | IEEE International Conference on Software Maintenance and Evolution 2016 - Raleigh, United States of America Duration: 2 Oct 2016 → 10 Oct 2016 Conference number: 32nd http://icsme2016.github.io/ https://ieeexplore.ieee.org/xpl/conhome/7807393/proceeding (Proceedings) |
Conference
Conference | IEEE International Conference on Software Maintenance and Evolution 2016 |
---|---|
Abbreviated title | ICSME 2016 |
Country/Territory | United States of America |
City | Raleigh |
Period | 2/10/16 → 10/10/16 |
Internet address |