Study and Refactoring of Android Asynchronous Programming (T)
- 1 November 2015
- conference paper
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
To avoid unresponsiveness, a core part of mobile development is asynchronous programming. Android providesseveral async constructs that developers can use. However, developers can still use the inappropriate async constructs, which result in memory leaks, lost results, and wasted energy. Fortunately, refactoring tools can eliminate these problems by transforming async code to use the appropriate constructs. In this paper we conducted a formative study on a corpusof 611 widely-used Android apps to map the asynchronouslandscape of Android apps, understand how developers retrofit asynchrony, and learn about barriers encountered by developers. Based on this study, we designed, implemented, and evaluated ASYNCDROID, a refactoring tool which enables Android developers to transform existing improperly-used async constructs into correct constructs. Our empirical evaluation shows that ASYNCDROID is applicable, accurate, and saves developers effort. We submitted 45 refactoring patches, and developers consider that the refactorings are useful.Keywords
This publication has 26 references indexed in Scilit:
- Retrofitting concurrency for Android applications through refactoringPublished by Association for Computing Machinery (ACM) ,2014
- How do code refactorings affect energy usage?Published by Association for Computing Machinery (ACM) ,2014
- Tracking load-time configuration optionsPublished by Association for Computing Machinery (ACM) ,2014
- A study and toolkit for asynchronous programming in c#Published by Association for Computing Machinery (ACM) ,2014
- Mining billions of AST nodes to study actual and potential usage of Java language featuresPublished by Association for Computing Machinery (ACM) ,2014
- Adoption and use of Java genericsEmpirical Software Engineering, 2012
- Performance Modeling and Analysis of Context-Aware Mobile Software SystemsLecture Notes in Computer Science, 2010
- Have things changed now?Published by Association for Computing Machinery (ACM) ,2006
- Compiling for a Hybrid Programming Model Using the LMAD RepresentationLecture Notes in Computer Science, 2003
- The Paradigm compiler for distributed-memory multicomputersComputer, 1995