Running compute-intensive or blocking I/O operations in the UI event thread of smartphone apps can severely degrade responsiveness. Despite the fact that Android supports writing concurrent code via AsyncTask, we know little about how developers use AsyncTask to improve responsiveness. To understand how AsyncTask is used/underused/misused in practice, we first conduct a formative study using a corpus of 104 open-source Android apps comprising 1.34M SLOC. Our study shows that even though half of the apps use AsyncTask, there are hundreds of places where they missed opportunities to encapsulate long-running operations in AsyncTask. Second, 46% of the usages are manually refactored. However,the refactored code contains concurrency bugs (such...
Mobile platforms commonly support an event-driven model of concurrent programming. In an event-drive...
Computation offloading is a promising way to improve the performance as well as reducing the battery...
In event-driven programming frameworks, such as Android, the client and the framework interact using...
Running compute-intensive or blocking I/O operations in the UI event thread of smartphone apps can s...
To avoid unresponsiveness, a core part of mobile development is asynchronous programming. Android pr...
In multicore era, programmers exploit concurrent programming to gain performance and responsiveness ...
Asynchronous programming is in demand today, because re-sponsiveness is increasingly important on al...
Software applications developed for the Android platform are very popular. Due to this, static analy...
Programming environments for smartphones expose a concurrency model that combines multi-threading an...
Concurrency is becoming the norm in modern software because multicores are now everywhere. Developer...
Software application becomes more and more complex nowadays. To provide a good software application ...
As synchronous blocking wastes system resources and affects program performance in concurrent proces...
Concurrency bugs are notoriously difficult to debug, and situation becomes even worse on mobile plat...
Objective: Test cases tend to be large in number as redundant test cases are generated due to the pr...
International audienceAndroid code smells are bad implementation practices withinAndroid application...
Mobile platforms commonly support an event-driven model of concurrent programming. In an event-drive...
Computation offloading is a promising way to improve the performance as well as reducing the battery...
In event-driven programming frameworks, such as Android, the client and the framework interact using...
Running compute-intensive or blocking I/O operations in the UI event thread of smartphone apps can s...
To avoid unresponsiveness, a core part of mobile development is asynchronous programming. Android pr...
In multicore era, programmers exploit concurrent programming to gain performance and responsiveness ...
Asynchronous programming is in demand today, because re-sponsiveness is increasingly important on al...
Software applications developed for the Android platform are very popular. Due to this, static analy...
Programming environments for smartphones expose a concurrency model that combines multi-threading an...
Concurrency is becoming the norm in modern software because multicores are now everywhere. Developer...
Software application becomes more and more complex nowadays. To provide a good software application ...
As synchronous blocking wastes system resources and affects program performance in concurrent proces...
Concurrency bugs are notoriously difficult to debug, and situation becomes even worse on mobile plat...
Objective: Test cases tend to be large in number as redundant test cases are generated due to the pr...
International audienceAndroid code smells are bad implementation practices withinAndroid application...
Mobile platforms commonly support an event-driven model of concurrent programming. In an event-drive...
Computation offloading is a promising way to improve the performance as well as reducing the battery...
In event-driven programming frameworks, such as Android, the client and the framework interact using...