Publication | Closed Access
APIMatchmaker: Matching the Right APIs for Supporting the Development of Android Apps
16
Citations
43
References
2022
Year
EngineeringInformation RetrievalData ScienceData MiningRight ApisAndroid DevelopersApi Usage PatternsSoftware EngineeringAndroid AppsComputer ScienceAndroid App DevelopmentCollaborative FilteringOpen ApiCold-start ProblemCode RepresentationSoftware DesignText Mining
Android developers are often faced with the need to learn how to use different APIs suitable for their projects. Automated API recommendation approaches have been invented to help fill this gap, and these have been demonstrated to be useful to some extent. Unfortunately, most state-of-the-art works are not proposed for Android developers, and the ones dedicated to Android app development often suffer from high redundancy and poor run-time performance, or do not target the problem of recommending API usage patterns. To address this gap we propose to the community a new tool, namely <italic xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">APIMatchmaker</i> , to recommend API usages by learning directly from similar real-world Android apps. Unlike existing recommendation approaches, which leverage a single context to find similar projects, we innovatively introduce a multi-dimensional, context-aware, collaborative filtering approach to better achieve the purpose. Specifically, in addition to code similarity, we also take app descriptions (or topics) into consideration to ensure that similar apps also provide similar functions. We evaluate <italic xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">APIMatchmaker</i> on a large number of real-world Android apps and observe that <italic xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">APIMatchmaker</i> yields a high success rate in recommending APIs for Android apps under development, and it is also able to outperform the state-of-the-art.
| Year | Citations | |
|---|---|---|
Page 1
Page 1