  A fundamental building block of a mobile application is the ability to
persist program data between different invocations. Referred to as
\emph{persistence}, this functionality is commonly implemented by means of
persistence frameworks. Without a clear understanding of the energy
consumption, execution time, and programming effort of popular Android
persistence frameworks, mobile developers lack guidelines for selecting
frameworks for their applications. To bridge this knowledge gap, we report on
the results of a systematic study of the performance and programming effort
trade-offs of eight Android persistence frameworks, and provide practical
recommendations for mobile application developers.
