Getting the most from map data structures in Android

Loading...
Thumbnail Image

Identifiers

Publication date

Reading date

Authors

Saborido Infantes, Rubén
Morales, Rodrigo
Khomh, Foutse
Guéhéneuc, Yann-Gaël
Antoniol, Giuliano

Collaborators

Advisors

Tutors

Editors

Journal Title

Journal ISSN

Volume Title

Publisher

Springer

Metrics

Google Scholar

Share

Research Projects

Organizational Units

Journal Issue

Abstract

A map is a data structure that is commonly used to store data as key–value pairs and retrieve data as keys, values, or key–value pairs. Although Java offers different map implementation classes, Android SDK offers other implementations supposed to be more efficient than HashMap: ArrayMap and SparseArray variants (SparseArray, LongSparseArray, SparseIntArray, SparseLongArray, and SparseBooleanArray). Yet, the performance of these implementations in terms of CPU time, memory usage, and energy consumption is lacking in the official Android documentation; although saving CPU, memory, and energy is a major concern of users wanting to increase battery life. Consequently, we study the use of map implementations by Android developers in two ways. First, we perform an observational study of 5713 Android apps in GitHub. Second, we conduct a survey to assess developers’ perspective on Java and Android map implementations. Then, we perform an experimental study comparing HashMap, ArrayMap, and SparseArray variants map implementations in terms of CPU time, memory usage, and energy consumption. We conclude with guidelines for choosing among the map implementations: HashMap is preferable over ArrayMap to improve energy efficiency of apps, and SparseArray variants should be used instead of HashMap and ArrayMap when keys are primitive types.

Description

Bibliographic citation

Saborido, R., Morales, R., Khomh, F. et al. Getting the most from map data structures in Android. Empir Software Eng 23, 2829–2864 (2018). https://doi.org/10.1007/s10664-018-9607-8

Collections

Endorsement

Review

Supplemented By

Referenced by

Creative Commons license

Except where otherwised noted, this item's license is described as Attribution-NonCommercial-NoDerivatives 4.0 Internacional