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.
Wed 7 NovDisplayed time zone: Guadalajara, Mexico City, Monterrey change
10:30 - 12:00 | Mobile AppsResearch Papers / Journal-First at Horizons 10-11 Chair(s): Shane McIntosh McGill University | ||
10:30 22mTalk | Getting the Most from Map Data Structures in Android Journal-First Rubén Saborido Infantes Department of Computer Science and Software Engineering, Concordia University, Montreal, Rodrigo Morales Concordia University, Foutse Khomh Polytechnique Montréal, Yann-Gaël Guéhéneuc Concordia University and Polytechnique Montréal, Giuliano Antoniol Polytechnique Montréal DOI | ||
10:52 22mTalk | Successes, Challenges, and Rethinking – An Industrial Investigation on Crowdsourced Mobile Application Testing Journal-First Ruizhi Gao , Yabin Wang , Yang Feng University of California, Irvine, Zhenyu Chen Nanjing University, W. Eric Wong DOI | ||
11:15 22mTalk | AppFlow: Using Machine Learning to Synthesize Robust, Reusable UI Tests Research Papers | ||
11:37 22mTalk | Winning the App Production Rally Research Papers Ehsan Noei University of Toronto, Daniel Alencar Da Costa Queen's University, Kingston, Ontario, Ying Zou Queen's University, Kingston, Ontario |