Threading

In order to answer RQ3, "Are there significant performance differences between apps that use different competing libraries implementing typical programming tasks?", we selected a set of 7 programming tasks typically performed by Android apps. These libraries are listed in Table 12, organized in networking over HTTP, Collections, Image rendering/loading, JSON manipulation, I/O, Logging and Threading.


Taking into account the extent of the analysis carried out, we needed to select a limited set of tasks to be considered. Furthermore, we considered tasks with at least 2 alternatives/libraries, which have methods to be invoked in at least 5 different apps, across at least 10 different versions, and with at least 25 different test scenarios. The libraries under analysis are some of the most used libraries for Android for each category, according to AppBrain.

In the following figures, we present the results obtained from the evaluation of 3 performance indicators of tests executed over the apps containing some of the identified Threading Libraries.

Energy

Memory

Time

Tests method coverage (%)