Skip to main content
Log in

Code recommendation for android development: how does it work and what can be improved?

  • Research Paper
  • Published:
Science China Information Sciences Aims and scope Submit manuscript

Abstract

Android applications are developed based on framework and are always pattern-based. For Android developers, they can be facilitated by code recommendation to ensure high development efficiency and quality. Existing research work has proposed several methods and tools to support recommendation in diverse ways. However, how code recommendation work in Android development and what can be further improved to better support Android development has not been clarified. To understand the reality, we conduct a qualitative review on current code recommendation techniques and tools reported in prime literature. The collected work is first grouped into three categories based on a multidimensional framework. Then the review is performed to draw a comprehensive image of the adoption of recommendation in Android development when meeting specific development requirements. Based on the review, we give out possible improvements of code recommendation from two aspects. First, a set of improvement suggestions are presented to enhance the ability of the state-ofthe- art code recommendation techniques. Second, a customizable tool framework is proposed to facilitate the design of code recommendation tools and the tool framework is able to integrate the recommendation features more easily.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Wu J, Shen L, Guo W, et al. How is code recommendation applied in Android development: a qualitative review. In: Proceedings of the International Conference on Software Analysis, Testing and Evolution, Kunming, 2016. 30–35

    Google Scholar 

  2. Su X, Khoshgoftaar T M. A survey of collaborative filtering techniques. Adv Artif Intell, 2009, 4: 2

    Google Scholar 

  3. Thung F, Wang S, Lo D, et al. Automatic recommendation of API methods from feature requests. In: Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, Silicon Valley, 2013. 290–300

    Google Scholar 

  4. Jiang H, Nie L, Sun Z, et al. Rosf: leveraging information retrieval and supervised learning for recommending code snippets. IEEE Trans Serv Comput, 2016, 9: 1–13

    Article  Google Scholar 

  5. Nie L, Jiang H, Ren Z, et al. Query expansion based on crowd knowledge for code search. IEEE Trans Serv Comput, 2016, 9: 771–783

    Article  Google Scholar 

  6. Gu X, Zhang H, Zhang D, et al. Deep API learning. In: Proceedings of the ACM SIGSOFT International Symposium on Foundations of Software Engineering, Seattle, 2016. 631–642

    Google Scholar 

  7. Omar C, Yoon Y S, LaToza T D, et al. Active code completion. In: Proceedings of the International Conference on Software Engineering, Zurich, 2012. 859–869

    Google Scholar 

  8. Schafer M, Sridharan M, Dolby J, et al. Effective Smart Completion for JavaScript. Technical Report RC25359. 2013

    Google Scholar 

  9. Omori T, Kuwabara H, Maruyama K. Improving code completion based on repetitive code completion operations. Inf Media Tech, 2015, 10: 210–225

    Google Scholar 

  10. Zhang C, Yang J, Zhang Y, et al. Automatic parameter recommendation for practical API usage. In: Proceedings of the International Conference on Software Engineering, Zurich, 2012. 826–836

    Google Scholar 

  11. Li L, Bissyandé T F, Klein J, et al. Parameter values of Android APIs: a preliminary study on 100000 apps. In: Proceedings of International Conference on Software Analysis, Evolution, and Reengineering, Osaka, 2016. 1: 584–588

    Google Scholar 

  12. Raychev V, Vechev M, Yahav E. Code completion with statistical language models. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, Edinburgh, 2014. 49: 419–428

    Google Scholar 

  13. Asaduzzaman M, Roy C K, Monir S, et al. Exploring API method parameter recommendations. In: Proceedings of the IEEE International Conference on Software Maintenance and Evolution, Bremen, 2015. 271–280

    Google Scholar 

  14. Nguyen A T, Nguyen T T, Nguyen H A, et al. Graph-based pattern-oriented, context-sensitive source code completion. In: Proceedings of the International Conference on Software Engineering, Zurich, 2012. 69–79

    Google Scholar 

  15. Heinemann L, Bauer V, Herrmannsdoerfer M, et al. Identifier-based context-dependent api method recommendation. In: Proceedings of the European Conference on Software Maintenance and Reengineering, Szeged, 2012. 31–40

    Google Scholar 

  16. Asaduzzaman M, Roy C K, Schneider K A, et al. Cscc: simple, efficient, context sensitive code completion. In: Proceedings of the IEEE International Conference on Software Maintenance and Evolution, Victoria, 2014. 71–80

    Google Scholar 

  17. Holmes R, Murphy G C. Using structural context to recommend source code examples. In: Proceeding of the IEEE International Conference on Software Engineering, Saint Louis, 2005. 117–125

    Google Scholar 

  18. Proksch S, Lerch J, Mezini M. Intelligent code completion with Bayesian networks. ACM Trans Softw Eng Methodol, 2015, 25: 3

    Article  Google Scholar 

  19. Nguyen T T, Pham H V, Vu P M, et al. Recommending API usages for mobile apps with hidden markov model. In: Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, Lincoln, 2015. 795–800

    Google Scholar 

  20. Bruch M, Monperrus M, Mezini M. Learning from examples to improve code completion systems. In: Proceedings of the Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, Amsterdam, 2009. 213–222

    Google Scholar 

  21. Amann S, Proksch S, Mezini M. Method-call recommendations from implicit developer feedback. In: Proceedings of the International Workshop on CrowdSourcing in Software Engineering, Hyderabad, 2014. 5–6

    Google Scholar 

  22. Pham H V, Vu P M, Nguyen T T. Learning API usages from bytecode: a statistical approach. In: Proceedings of the International Conference on Software Engineering, Austin, 2016. 416–427

    Google Scholar 

  23. McDonnell T, Ray B, Kim M. An empirical study of API stability and adoption in the android ecosystem. In: Proceedings of the IEEE International Conference on Software Maintenance, Eindhoven, 2013. 70–79

    Google Scholar 

  24. Linares-Vásquez M, Bavota G, Bernal-Cárdenas C, et al. API change and fault proneness: a threat to the success of Android apps. In: Proceedings of the Joint Meeting on Foundations of Software Engineering, Saint Petersburg, 2013. 477–487

    Google Scholar 

  25. Almeida M, Bilal M, Blackburn J, et al. An empirical study of android alarm usage for application scheduling. In: Proceedings of the International Conference on Passive and Active Network Measurement, Heraklion, 2016. 373–384

    Google Scholar 

  26. Lin Y, Cosmin R, Danny D. Retrofitting concurrency for Android applications through refactoring. In: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, HongKong, 2014. 341–352

    Google Scholar 

  27. Rountev A, Yan D. Static reference analysis for GUI objects in Android software. In: Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization, Orlando, 2014. 143–153

    Chapter  Google Scholar 

  28. Ko D, Ma K, Park S, et al. API document quality for resolving deprecated APIs. In: Proceedingso of the Asia-Pacific Software Engineering Conference, Jeju, 2014. 2: 27–30

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Liwei Shen.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Wu, J., Shen, L., Guo, W. et al. Code recommendation for android development: how does it work and what can be improved?. Sci. China Inf. Sci. 60, 092111 (2017). https://doi.org/10.1007/s11432-017-9058-0

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s11432-017-9058-0

Keywords

Navigation