<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Energy Consumption Measurement Frameworks for Android OS: A Systematic Literature Review</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Saint Petersburg Polytechnical University</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Saint Petersburg State University</institution>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Vladislav Myasnikov</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>-In a modern world smartphones became a com- one should be able to compare application or module energy monly used electronic devices performing numerous day-to- consumption before and after refactoring. Therefore a tool day tasks and much more. Quick battery discharge degrades for conducting such experiments is required. Such a tool upsreorgreaxmpesraiernecer,esapnodnsciobmlepfuotratiito.nIatlliys innotetnasliwveayosr ebvaiddelyntwwrihtticehn may come as one-time testbed for a specific project or a tool to use and how to set up an experiment to estimate energy more generic and reusable framework or utility. It should be consumption of a specific application. For this we conducted a noted that there's little uniformity among such tools. They Systematic Literature Review (SLR) to list existing frameworks to differ not only in metering methodologies but in measurement measure application power metering for Android OS, to classify results as well, i.e. some frameworks measure battery charge tahcecuarapcpyroaancdheesxpueserdimteontacrlemateethtohdeomlogayn.dOaulrsofindtoingasssiensdsictahteeir percentage change, other calculate consumed power in watts, that although there is a considerable amount of studies in this while another group operates in abstract units of measure. field with various approaches, there is still a vacant place for a In order to help practitioners and engineers better underreadily available tool, and it is difficult to compare accuracy of stand current state-of-the-art approaches to energy consumpdifferent frameworks. However there is a solid set of practices tion measurement and to select proper approach, technique or amnedasutercehmneiqnut.es for experimental setup in application energy tool for a particular experiment, we conduct a systematic literature review (SLR) on the energy consumption measurement I. INTRODUCTION frameworks for mobile devices using Android OS. We selected It is impossible to imagine a modern world without smart- this mobile platform as it is the most presented platform on phones and other mobile devices. Their compact size com- the market compared to iOS and Windows Phone [3], and it bined with significant computational capabilities grant them a is also open-sourced, meaning that some types of frameworks firm position as a day-to-day informational and recreational (for example those that modify OS kernel) might be absent on tool. At the end of 2019 a number of smartphone users is other platforms. expected to be 3.2 billion with Android OS as a leading mobile This paper is organized as follows. In Section 2 our methodoperating system [1]. ology for SLR is described and research questions (RQs) are As smartphones and tablets are mobile electronic devices, formulated. Section 3 contains answers for RQs. Limitations its user experience is substantially defined by battery lifetime. of this study are reported in Section 4. A side question of While hardware components are constantly improving with relating our proposed framework classification to a number of power-saving electronics and more capacitous batteries being commercial profilers is addressed in Section 5. Conclusions available to the market, inefficiently written software causes are drawn and future work is outlined in Section 6. degradation of user experience due to elevated charge drain. Different applications and even different versions of the II. METHOD same application consume energy differently. A school of We followed SLR guidelines by Kitchenham and Charters thought called ”green software development” advocates a need [4] with a number of differences: to consider energy consumption as well as performance met- • Instead of manual search process we addressed online rics during application development [2]. A common practice is search engine. While this decision certainly affects the energy-efficient refactoring - such a change in software code selection of studies compared to manual search, we used that doesn't change its end user functionality but decreases its a large number of papers to make a preliminary list and energy footprint. introduced additional phases to study selection process, Was a particular energy refactoring effective? How much so we think the impact of this change on SLR quality is energy did we save by applying it? To answer these questions negligible.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        • Quality assessment was done along with the data
extraction process and in some sense — as a part of
it. However Kitchenham and Charters [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] allow such
methodology, noting that quality information can be used
either to assist primary study selection by constructing
detailed inclusion/exclusion criteria prior to the main data
collection activity or to assist data analysis and synthesis,
so it is collected along with the main data.
      </p>
    </sec>
    <sec id="sec-2">
      <title>A. Research Questions</title>
      <p>A following list of research questions (RQs) was compiled
during initial literature assessment:
• RQ1: What approaches exist to estimate code fragments,
methods or application energy consumption under
Android OS?
• RQ2: Are there open source code repositories or other
programming artifacts for corresponding frameworks?
• RQ3: What devices are used in measurement
experiments?
• RQ4: How many frameworks specify or suggest
experimental methodology?
• RQ5: What is the measurement precision and what is the
base scenario to compare to?</p>
      <p>However after preliminary data extraction we also added
the following questions due to the freqently occuring gaps in
methodology in the reviewed studies:
• RQ6: What units of measurements are used in
experiments with a particular framework and what is measured?
• RQ7: How do frameworks deal with metering hardware
frequency being considerably lower than CPU frequency?
RQ6 is answered to classify all the different ways report
measurement results. RQ7 came into attention due to the
possibility of a child thread be entirely executed between
multimeter synchronization impulses therefore its contribution
to the energy consumption would not be properly recorded.</p>
    </sec>
    <sec id="sec-3">
      <title>B. Search Process</title>
      <sec id="sec-3-1">
        <title>A preliminary list of 931 studies was formed with a Google</title>
        <p>Scholar1 resource. The query was ”android ”energy-efficiency”
framework”, therefore ”energy-efficiency” was required to
appear as a phrase in a study text.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>C. Study Selection</title>
      <sec id="sec-4-1">
        <title>At first inclusion criteria were rather simple — include</title>
        <p>studies about energy measuring frameworks, exclude all others
— but it was quickly became apparent they were not sufficient.
Indeed some studies were discussing a software and hardware
complex or purely software tool for measuring energy
expenditure which was generic enough to be called a framework.
However many articles contained a description of a testbed —
a testing environment that measures specific program energy
consumption in one way or another. In a considerable amount
of cases the distinction between a testbed and a framework was
blurry. We consider a programming artifact to be a testbed if</p>
        <sec id="sec-4-1-1">
          <title>1https://scholar.google.com</title>
          <p>the experiment itself and its conclusions are the centerpiece
of the corresponding article. If, however, this artifact is the
main discussion point for the article, we consider it to be a
framework.</p>
          <p>Usually a testbed is only vaguely described, while
frameworks are documented in detail, up to the point of open
source repositories, so this separation worked well. There
was a handful of notable exceptions however where a study
focused on a specific energy-efficiency question also contained
a detailed description of its testing environment along with the
experimental methodology and software architecture. In such
cases a question was asked if this testbed is described in such
a detail that it can be a subject of a framework-centered article.
In the case of positive answer a study was added to short-list.</p>
          <p>Additionally we do not include articles regarding smart
watches and similar devices as its functionality is rather
limited compared to the smartphone, therefore only mainstream
Android OS is considered as a focus of this SLR. We also
exclude articles focused on Windows Phone and iOS.</p>
          <p>To summarize, our final criteria to include a study into a
short-list was as follows:
• Studies describing technical artifacts for other operating
systems than mainstream Android OS are excluded.
• Studies focused on a framework as an end result of a
research are included.
• Studies focused on other topics but containing enough
information on a testbed or a method to make one for it
to be considered alienable as a standalone framework are
included.
• All other articles are exlcuded.</p>
          <p>At first stage Myasnikov, Sartasov and Gessen processed
every article independently. An article was assigned ”+” if
a reviewer considered it to be worthy of inclusion, ”-” if a
review was negative and ” ∼” if in doubt. Three pluses or two
pluses and a tilde meant inclusion to short-list, while an article
with three minuses was excluded from further reading. Other
review combinations signified review conflicts. About 45% of
studies were marked conflicts at the end of this phase.</p>
          <p>Secondly, studies with conflicting reviews were additionally
reviewed by Slesarev, and each article was read in greater
detail and discussed until a consensus was formed among the
researchers. At the end of this phase 51 articles were added
to short list.</p>
          <p>
            Some studies in the result list deserve specific mention.
Although WattsOn framework [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ] targets Windows Phone, it
was included because authors claim their approach is portable
to Android OS. 3 additional articles were added to the short
list manually as they were not a part of original study list:
• Yoon, Kim et al. [
            <xref ref-type="bibr" rid="ref6">6</xref>
            ]
• Zhang, Tiwana et al. [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ]
• Li and Gallagher [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ]
          </p>
          <p>Those studies became known either due to past literature
reviews in similar topics or during review process when they
were referenced in multiple other articles. They were also
reviewed independently by three researchers and got 3 pluses
for review.</p>
        </sec>
      </sec>
      <sec id="sec-4-2">
        <title>Third stage of study selection was done along with data extraction. 6 studies in fact were written about a different subject while looking like a framework article at a top level, so our short-list contained 48 articles.</title>
        <p>
          However at this time we’ve found out that in some cases
multiple studies were describing the same framework under
different angles or at different points of development cycles.
It is a common situation for an ongoing research project. As
the focus of our SLR is the frameworks and not the articles
per se, if multiple studies were written by the same or similar
collective of authors from the same institution and described
a similarly named frameworks based on a similar principles,
after discussion and consensus between researchers they were
considered to be written about a single framework, and data
extraction results were merged for these studies. In particular
we grouped the articles concerning the following frameworks:
• JouleUnit by Wilke et al. [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ], [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]
• Greendroid by Couto et al. [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ], [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]
• PETrA by Di Nucci, Palomba et al. [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]
• Aggarwal et al. [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] and Feghi [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]
• Li and Gallagher [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ], [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]
• Ahmad et al. [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ], [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]
        </p>
      </sec>
      <sec id="sec-4-3">
        <title>In the end, out of 931 studies aggregated automatically and 3 papers added manually our short-list contained 48 articles summarized into 41 frameworks.</title>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>D. Data Extraction</title>
      <p>To answer the stated RQs we answered the following data
extraction questions for each included study or study group:
• Conceptual questions:
1) What is the method of reading current battery charge
level or energy expenditure? Examples include
external multimeter, internal sensor, Android OS API
etc.
2) How large is the part of an application to be
profiled? For example, one may measure energy
consumption of a single line of code, a code block,
a method, a unit-test, an application or all currently
running applications.
3) What is the end result of a measurement
experiment?
4) What are the units of measurement utilized in a
framework (i.e. watts, joules, relative units)?
• Technical questions:
1) Is the application code executed on a smartphone
or special test device and what is its Android OS
version?
2) What kind of code instrumentation is used if any?
In this context we define code instrumentation as
addition of framework-specific subprograms (i.e. for
method start and end logging) to the target source
code.
3) How is energy consumption measurement started
from a technical standpoint?</p>
      <p>Generally SLRs are accompanied with a quality assessment
procedure concerning every included article. As we’re more
interested in frameworks than in individual articles themselves,
we decided to modify this process by assessing the quality
of individual studies if they were not grouped with other
publications, otherewise we assessed a group of articles as a
whole. Therefore if a framework is described in two articles,
we assess the quality from both of them simultaneously.</p>
      <p>To assess the quality we formulate the following questions:</p>
      <sec id="sec-5-1">
        <title>1) Is there an open-source code for the framework? 2) Is framework measurement approach described? 3) Is experimental methodology described? 4) Is framework accuracy assessed?</title>
        <p>These questions intentionally overlap with our RQs, as
this information is in our opinion essential if a reader wants
to understand a proposed framework. They were scored as
follows:
• Question 1: yes (Y) if a repository can be found, partly
(P) if a program using a framework can be found, but not
a source code, no (N) otherwise. Even if an article states
2https://docs.google.com/spreadsheets/d/
17D1ArPavFQaFPGnU-OI3r8x1QoboWOoEa-rHR-9U98I/edit?
usp=sharing
a number of lines of code for a described framework or
gives code fragments or algorithms, it is still a no.
• Question 2: yes (Y) if a framework approach is described
in great detail, and entire thought process from principles
to implementation can be tracked, partly (P) if only a
general description of framework principles is present,
no (N) otherwise.
• Question 3: yes (Y) if a methodology is described in great
detail and limits and bounds are stated, partly (P) if only a
broad description of measurement methodology is given,
no (N) otherwise.
• Question 4: yes (Y) if an experiment and a base case
are described, partly (P) if some consideration is given
to accuracy, but not a thorough one, no (N) otherwise.</p>
        <p>The scoring procedure was Y = 1, P = 0.5, N = 0. Article
quality was obtained as a sum of individual question scores.
Results are given in Table I.</p>
      </sec>
      <sec id="sec-5-2">
        <title>III. DISCUSSION OF RESEARCH QUESTIONS This sections contains our findings in relation to the specific research questions as stated above.</title>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>A. RQ1: What approaches exist to estimate code fragments, methods or application energy consumption under Android OS?</title>
      <sec id="sec-6-1">
        <title>We can classify different approaches for software energy</title>
        <p>consumption estimation into two bins: if power measurement
is direct or indirect.</p>
        <p>Direct measurement approach means that some metering
agent is directly measuring voltage, current or even power.</p>
        <p>Subclasses of this approach are as follows:
• External meter: External digital multimeter is
connected to battery contacts of smart device. Sometimes
to compensate voltage drop in Li-ion batteries during
discharge and therefore normalize power readings an
external power generator working as a constant voltage
source is connected to testing device instead of default
battery. Framework launches an application in question or
a unit test alongside power measurement. In the end total
power consumption is estimated by linear interpolation
as</p>
        <p>E =</p>
        <p>Nread−1</p>
        <p>X
i=1</p>
        <p>Ui ×</p>
        <p>Ii+1 + Ii
2
× (ti+1 − ti)</p>
        <p>(1)
where E is total energy, Nread is number of power
readings, Ui is ith voltage read, Ii is ith current read,
ti is time of ith read. Some multimeters write the time
of a read directly, while for other ti+1 − ti is an inverse
of a multimeter frequency. Step interpolation is also used
in some works.</p>
        <p>
          If a more detailed report is needed, for example at a
level of methods or code blocks, then the source code
is instrumented with additional logging instructions for
method or code beginning and end, and two data traces
are generated — power readings and application
execution trace as in Couto et al. [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. In this case system
clocks on smartphone and multimeter or controlling PC
should be synchronized before the start of experiments.
        </p>
        <p>Power readings can then be aligned with execution trace
and provide an insight which method or piece of code
is responsible for high energy usage. As instrumentation
introduces additional code to be executed, its energy
overhead should also be estimated and subtracted from
final readings.
• Internal meter: This approach utilizes internal power
meters installed on the smartphone by manufacturer and
Android OS API to access them. While generally such
a tool can get a good power consumption estimate for
a smartphone as a whole, under specific experimental
conditions it can be trimmed down to a level of a
single application in question. Because smartphone and
power sensor are using the same system clock, there are
no issues with clock synchronization. Power readings
requests may be integrated into instrumentation code.</p>
        <p>Energy consumption is estimated in the same way as
before.</p>
        <p>
          Indirect measurement approach (or model-based approach)
means that profiling software is aggregating some information
regarding code execution and relates it to energy consumption
using some mathematical model. Frameworks utilizing this
approach operate in two phases: model calibration and energy
estimation. At first stage model coefficients are determined
or tuned with preliminary experiments or reference data. It is
an important step not only for different smartphone models,
but for different devices of a same model as well [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. After
a model is tailored for a device, actual energy metering
experiments may be commenced.
        </p>
        <p>Subclasses are formed based on the type of aggregated
information used in the model:
• Working time model: For this group information
regarding working time of various smartphone systems is
aggregated. Various devices may consume energy differently
under different modes of operation. For example, Wi-Fi
module consumes different amounts of energy when idle,
when looking for a network and when transferring data
over a network. Therefore energy consumption value is
calculated as</p>
        <p>Ndev N Pi
XX
i=1 j=1
E =</p>
        <p>Pij × tij</p>
        <p>(2)
where E is total energy, Ndev is a number of tracked
devices on a smartphone, N Pi is a number of different
power characteristics of ith device, Pij is a jth power
characteristic of ith device, tij is active time for ith device
operating under Pij power characteristic.</p>
        <p>
          Calibration phase consists of experiments for determining
power profiles for individual components using one of the
direct measurement approaches: both external and
internal meters are conceptually suitable. Linear regression
is used to extract power coefficients from experimental
data. As an alternative some frameworks utilize Android
power profile data [
          <xref ref-type="bibr" rid="ref53">53</xref>
          ].
        </p>
        <p>Energy estimation is assessed by measuring active device
time during experimental code execution. Different
components have different ways for measuring their active
time, i.e. CPU stores information about its time in
different power states in proc folder, while Wi-Fi generates
system events when it transitions from one power state
to another.</p>
        <p>
          Additional estimations may also be incorporated into such
model, for example, corrections for battery discharge rate
[
          <xref ref-type="bibr" rid="ref44">44</xref>
          ].
• Instruction energy model: This group of frameworks
considers energy consumptions of various code
instruction types — conditional statements, loop controls,
method calls, floating-point operations etc. Energy
consumption is calculated as
where E is total energy, Ninstr is number of different
instruction types in a model, Pi is power consumption of
a single instruction of ith type, ni is number of ith type
instructions in the code.
        </p>
        <p>Model calibration is done by measuring power
consumption of each instruction type in a synthetic tests using
direct approach.</p>
        <p>
          Total energy is calculated from instruction statistics of a
specific code execution trace. It should be noted that it
is not required to launch test code under Android OS if
no specific Android API is invoked. Instruction statistics and GreenDroid (January 2019), so we may call them
semimay be aggregated in any suitable environment. abandoned. In our experience lack of recent commits usually
• Method/API call energy model: This approach is similar indicates either a research project being finished or it was
to the previous one, but instead of a power profile for a abandoned for some reason. Additionally, none of the projects
single instruction energy consumption of a system or API can be built out of the box, and build instructions are not
call, or framework method is calculated. Models under provided in details. As stated before, PowerTutor was used in
this approach are created under assumption that most a number of other studies when it was supported, but it is not
of the time and energy is spent outside of application surprising that a significant amount of more recent testbeds
code, and therefore good estimation of application energy we’ve seen in studies during study selection phase are based
consumption can be obtained by analyzing its API usage. on industrial grade Monsoon power monitor [
          <xref ref-type="bibr" rid="ref54">54</xref>
          ]3.
        </p>
        <p>We assign each of the listed frameworks to its approach in We conclude that studied frameworks rarely provide their
the Table II. code in open source repositories. Those who do are not easy to
launch. What’s worse, not all of the frameworks are available
to the practinioners even in the form of proprietary software.</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>C. RQ3: What devices are used in measurement experiments?</title>
      <p>
        Direct measurement
External meter [
        <xref ref-type="bibr" rid="ref43">43</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], [
        <xref ref-type="bibr" rid="ref46">46</xref>
        ], [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ],
[
        <xref ref-type="bibr" rid="ref50">50</xref>
        ], [
        <xref ref-type="bibr" rid="ref52">52</xref>
        ], [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ], [
        <xref ref-type="bibr" rid="ref41">41</xref>
        ]
Internal meter [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], [
        <xref ref-type="bibr" rid="ref45">45</xref>
        ], [
        <xref ref-type="bibr" rid="ref51">51</xref>
        ], [
        <xref ref-type="bibr" rid="ref37">37</xref>
        ], [
        <xref ref-type="bibr" rid="ref40">40</xref>
        ], [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ], [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ]
      </p>
      <p>
        Indirect measurement
Working time model [
        <xref ref-type="bibr" rid="ref44">44</xref>
        ], [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref47">47</xref>
        ], [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ], [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ],
[
        <xref ref-type="bibr" rid="ref48">48</xref>
        ], [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], [
        <xref ref-type="bibr" rid="ref49">49</xref>
        ], [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ], [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ],
[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], [
        <xref ref-type="bibr" rid="ref52">52</xref>
        ], [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ], [
        <xref ref-type="bibr" rid="ref42">42</xref>
        ]
      </p>
      <p>
        [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]
[
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ], [
        <xref ref-type="bibr" rid="ref33">33</xref>
        ]
      </p>
      <sec id="sec-7-1">
        <title>The number of devices running Android OS is hard to</title>
        <p>
          reliably count: from the very first HTC Dream model line to
modern foldable smartphones as well as tablets. Android OS
is also continues to being developed with a major release by
Google every year. For example Android Q version released
in 2019 supports foldable smartphones and 5G-devices [
          <xref ref-type="bibr" rid="ref55">55</xref>
          ].
        </p>
        <p>
          Instruction energy model Additionally, Android API is not static, although generally
Method/API call energy model an application is forward compatible with a newer Android
OS version [
          <xref ref-type="bibr" rid="ref56">56</xref>
          ]. Regardless, application well-behaving on a
specific version of Android platform might be glitching on
B. RQ2: Are there open source code repositories or other another version due to the API change. With such variety of
programming artifacts for corresponding frameworks? devices and versions it is important to understand what range
        </p>
        <p>This research question intentionally overlaps with the Ques- of devices and Android OS versions are covered by existing
tion 1 in Quality Assessment section. Energy consumption energy metering frameworks.
measurement frameworks are practical and generic tools by We obtained the following distribution of target devices
definition, therefore it is reasonable to expect its source code from the listed frameworks:
available for reuse. As an alternative a metering application • A special testbed is used in ∼17% studies. In this context
may also be sufficient. a testbed is a special platform running Android OS which</p>
        <p>
          Among the 41 included frameworks the results are as is not a smartphone or a tablet, although it might be
follows: functionally similar. For example, Odroid-A platform has
• 5 frameworks have their source code available in repos- a set of functions similar to Samsung Galaxy S2 [
          <xref ref-type="bibr" rid="ref44">44</xref>
          ].
itory: JouleUnit [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ], [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], GreenMiner [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ], GreenDroid • An emulator is used in ∼12% studies. Emulator allows
[
          <xref ref-type="bibr" rid="ref11">11</xref>
          ], [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], EnSights [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ], PowerTutor [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] to run applications without necessity to procure a real
• 3 frameworks are openly presented as a ready application: device. However emulator is not a complete substitute
PowerTutor [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], PETrA [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ], ”PowerProfiler &amp; for a smartphone or a tablet, in particular application
Energy-aware Network Selection” application in Google performance might be worse in emulated environments
Play by Uc¸an, Tuysuz and Trestian [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]. A web-site for thus negatively affecting measurement accuracy. Another
another framework, Orka [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ], is available in Imperial limiting factor is a number of devices available for
College of London intranet. emulation, for example, only one model of the Nexus 7
• 3 studies include code samples or statistics in the text: tablet is emulated in Westfield and Gopalan [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ]. Hence
Sema [
          <xref ref-type="bibr" rid="ref35">35</xref>
          ], Huang et al. [
          <xref ref-type="bibr" rid="ref29">29</xref>
          ], Kapetanakis and Panagio- a range of available emulated devices is significantly
takis [
          <xref ref-type="bibr" rid="ref40">40</xref>
          ]. limited compared to commercially available smartphone
Note that PowerTutor [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] is marked as having both a source and tablet ranges, albeit this approach is significantly
code and an application available. Non-mentioned studies cheaper. WattsOn framework [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] is also included into this
don’t refer to the source code.
        </p>
        <p>It should be noted separately that all of the frameworks bet3wMeoennsosmonarptodweevricmeobnaitttoerryisaandhieglhecftrreoqnuicesn.cyIt misulctiampaebteler ttoo
bueplcooandnemcteeadwith their code available are not kept up to date. PowerTutor surement results to a PC. While it was designed with smart device energy
and JouleUnit were abandoned over 5 years ago. At the measurements in mind, it is just that - a high-quality multimeter, which can
time of writing (January 2020) most recent commits are bTeheuresefodreinwea dvoarnieottycoonfsisdceernaMrioonssonoont tloimbietead mtoeteArinndgrofirdampeowwoerrk pbryo fiitslienlfg,.
found in GreenMiner (May 2018), EnSights (August 2018) but it can lie in a foundation of one.</p>
        <p>
          category as its authors claim it to be portable to Android
emulators.
• Real devices such as smartphones and tablets are used in
the other studies. Smartphones are much more prevalent
than tablets — the latter are experimented upon in a single
study [
          <xref ref-type="bibr" rid="ref51">51</xref>
          ]. A number of devices used for experiments
varies from 1 to 3.
        </p>
      </sec>
      <sec id="sec-7-2">
        <title>To evaluate a potential range of devices for a particular</title>
        <p>
          framework one can try different methods. Firstly, this range
may be estimated using target Android OS version used in the
experiments described in a selected study. Then the article is
considered applicable for devices with the specified version
and (with a caution) higher due to forward compatibility [
          <xref ref-type="bibr" rid="ref56">56</xref>
          ].
Such an assessment, however, is rather imprecise as there are
no guarantee that experiments were conducted on a minimally
available version. Secondly, an estimate of supported Android
versions can be based on measurement tools being used in
experiments if they are specified in a study. In general this
assessment is more precise than the first. Thirdly, it’s worth
to take into account technical restrictions imposed by the
framework itself if they are mentioned.
        </p>
        <p>
          With the listed frameworks we obtained the following
results:
• In the articles where it was possible to draw conclusions
on Android version experiments are conducted on
Android OS versions 2 to 5, so approximately 90% of all
devices are supported [
          <xref ref-type="bibr" rid="ref57">57</xref>
          ].
• Some restrictions are stated explicitly, for example,
device power profile must be uploaded to the framework
server prior to experiments [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]. However, in some
studies its restrictions are implied, for example, Android
Power Profiler tool used for energy metering is available
only for Android 5.0+ devices [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ], while Trepn Profiler
is available for a limited range of devices for Android
4.0+ [
          <xref ref-type="bibr" rid="ref51">51</xref>
          ], [
          <xref ref-type="bibr" rid="ref47">47</xref>
          ], [
          <xref ref-type="bibr" rid="ref33">33</xref>
          ].
• At least 12 frameworks require root access for the device,
mainly to use additional API. It might be unacceptable
for some users as rooted devices void the manufacturer’s
warranty. Additionally there is a risk of disrupting proper
OS functioning under root privileges compared to a
nonroot user.
• In 7 of those 12 frameworks it is not enough to just
have a root access, as one must also integrate a kernel
module into the OS [
          <xref ref-type="bibr" rid="ref45">45</xref>
          ], [
          <xref ref-type="bibr" rid="ref46">46</xref>
          ], [
          <xref ref-type="bibr" rid="ref36">36</xref>
          ], [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], [
          <xref ref-type="bibr" rid="ref42">42</xref>
          ] or otherwise
modify an existing Android framework [
          <xref ref-type="bibr" rid="ref48">48</xref>
          ], [
          <xref ref-type="bibr" rid="ref39">39</xref>
          ]. Such
preparatory actions impose a considerably higher entry
barrier than simply obtaining root access rights for the
device.
        </p>
      </sec>
      <sec id="sec-7-3">
        <title>In the end the range of supported devices is wide despite</title>
        <p>some of the frameworks targeting testbeds or emulators. While
individual restrictions make some frameworks harder to set up
than others, we conclude that development tools versioning
and framework accessibility in general (see RQ2) is more
limiting for their usage than device range.</p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>D. RQ4: How many frameworks specify or suggest experimental methodology?</title>
      <p>It is not enough to write code, launch a framework to
estimate its energy consumption and get results. Experimental
methodology is as important as framework itself. By
methodology we mean a set of rules, procedures and techniques aimed
to decrease, eliminate or otherwise take control of external and
internal influences, which are not independent variables of the
experiment, on experimental outcome. In a way, methodology
defines a context of framework usage as authors see it, and
non-stringent approach to experimental setup and outcome
interpretation leads to innacurate or outright wrong results.
Ill-thought procedures or rules or lack of thereof in a study is
an alarming signal.</p>
      <p>In this regard studies in our list generally take experimental
methodology into consideration with only 6 articles not
mentioning it. We extracted this information from the others and
aggregated them into following groups:
• Testing environment setup.
• Repeated launch of tests, benchmarks etc.
• Overhead estimation.</p>
      <p>Table III contains study distribution into each group.</p>
      <p>
        A smartphone or a tablet is a complex device with numerous
settings. Using it as a testing device requires to pay attention
to its configuration. To a lesser extent this is also true for
emulator. Such parameters include the following:
1) Reducing activity of background processes (both system
and non-system) [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], [
        <xref ref-type="bibr" rid="ref51">51</xref>
        ], [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ], [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], [
        <xref ref-type="bibr" rid="ref40">40</xref>
        ], [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ].
2) Increasing scheduling priority of the subject application
[
        <xref ref-type="bibr" rid="ref23">23</xref>
        ].
3) Decresing screen brightness or switching it off
completely [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ], [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ], [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ].
4) Switching off all unnecessary modules (Wi-Fi, 3G, GPS,
accelerometer, proximity etc.) [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ], [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ], [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], [
        <xref ref-type="bibr" rid="ref40">40</xref>
        ], [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ].
5) Charging battery for the same level [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ], [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ].
6) Shutting down for cooling down the battery heat [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ].
7) Warmup execution [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ].
8) Time waiting before beginning a new test in order to let
background processes calm down [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ], [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ].
9) Application reinstalling [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
10) Application cache erasing [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ].
11) Rebooting the device [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ].
12) Factory data reset [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ].
      </p>
      <p>If left unchecked these factors introduce additional energy
drain and thus skew measurement results and decrease
repeatability, therefore a proper setup is required. About 40%
of the listed frameworks take it into consideration one way or
another.</p>
      <p>
        A framework itself might introduce additional energy
consumption. For example, code instrumentation is required to
obtain execution trace, but as it is implemented in the form
of additional code, it inevitably introduces energy overhead.
Aggregating system data while executing a test suite is another
reason behind elevated energy consumption during
measurement. To alleviate this problem one should estimate this
overhead and subtract it from measurement results. In particular
code instrumentation is estimated by running all the tracking
code from a selected trace without the original test code and
measuring its energy footprint. Around 50% of all studies
address this issue, with some studies only stating measures
to overcome it [
        <xref ref-type="bibr" rid="ref37">37</xref>
        ], [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ], while other actually estimate its
effect [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        A notable number of studies — about 37% — repeat
their measurements multiple times to get an average or mean
value of consumed energy. In this way authors reduce random
metering equipment jittering and OS scheduling impact on
measurement results [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ].
      </p>
      <p>
        Chung, Lin and King [
        <xref ref-type="bibr" rid="ref43">43</xref>
        ] and Jung, Kim and Cha [
        <xref ref-type="bibr" rid="ref45">45</xref>
        ]
should be mentioned separately. Those studies specify amount
of time for the experiment to last to produce adequate results.
However they do not specify reasoning behind selecting
particular values, so we do make another group for them.
      </p>
      <p>Overall, we conclude that collectively studies in our list
contain enough guidelines for a practitioner to properly conduct
energy consumption estimation process.
setup or even impossible. This accuracy estimation technique
is used both for direct measurement and model-based.</p>
      <p>
        Another way to assess accuracy of a newer framework is to
compare it with an already existing tool which is considered
to be a baseline. Once again accuracy is a relative difference
between frameworks. Several studies match themselves against
a PowerTutor framework [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ], [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], while one of the studies
compares the proposed framework with Appscope [
        <xref ref-type="bibr" rid="ref42">42</xref>
        ]. While
such comparisons allow researchers to evaluate measurement
accuracy with respect to the few existing solutions, lack of
homogenity in baseline framework selection indicates that
there is no universally accepted accuracy standard.
      </p>
      <p>
        As stated above, several studies fell into several groups at
the same time. For example, in some studies a comparison is
made both with real measurements and with other frameworks
[
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ], [
        <xref ref-type="bibr" rid="ref42">42</xref>
        ]. One interesting take on this approach is
described in Saksonov [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] where a derivable energy profile
is compared to the default Android Power Profile4 and direct
measurements.
      </p>
      <p>Based on this we conclude that such two-factor estimation
process provides better context of actual framework accuracy.
Complete lack of accuracy assessment strongly indicates a
study of a subpar quality.</p>
    </sec>
    <sec id="sec-9">
      <title>E. RQ5: What is the measurement precision and what is the base scenario to compare to?</title>
      <p>Measurement accuracy is one of the key characteristics of F. RQ6: What units of measurements are used in experiments
energy profiling framework. Thus a question of framework with a particular framework and what is measured?
accuracy might be expected to be answered in a corresponding
study. Our review shows that accuracy estimation of some sort Code energy consumption measure using a framework can
was carried out approximately in 61% works, which can be be expressed in different terms. For example, recall equation
divided by a type of estimation into the following groups: 2. With the direct approach total energy is the most obvious
• Comparison with direct measurement. way to estimate consumed energy. However when voltage is
• Comparison with another tool (frameworks, power mod- constant amount of consumed Ampere-hours is as informative
els). as total energy. Likewise, if power reads are regular their
Study distribution into each group is shown in Table IV. amount and distribution contain all necessary information.
Some studies fell into several groups at the same time. Similar idea is also frequently used in model-based approach</p>
      <p>
        If a study compares framework accuracy with a baseline in for estimating CPU power usage [
        <xref ref-type="bibr" rid="ref53">53</xref>
        ]. Moreover, the same
the form of external power or current metering device data, we value can be presented with varying degree of accuracy. For
correspond it to comparison with direct measurement group. example, under some experimental setups energy may be
Such a device can be an ordinary multimeter [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] or a special better measured in μJ than in mJ or J for a more conclusive
equipment like, for example, Monsoon [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Accuracy results. Therefore lack of homogenity in result presentation
is estimated as a relative difference between framework and among the listed frameworks can be explained.
equipment data. Note that baseline scenario organization for Table V aggregates the characteristics measured in the listed
this group is similar to the direct measurement approach in studies and distributions of the corresponding measurement
framework building (see RQ1). A significant limitation of units. Among absolute characteristics power and energy were
this technique is also the similar — usage of an external most often measured with their values presented in mW and J,
meter comes at a price of estimating only the total power respectively, current, voltage and electric charge are estimated
consumption of a test device without breaking it down by less often. In specific cases higher accuracy measurement was
hardware components, and therefore intercomponent compar- 4An XML file detailing power characteristics of smartphone components
ative analysis may be limited and require specific experimantal provided by its manufacturer.
used with μW for power [
        <xref ref-type="bibr" rid="ref47">47</xref>
        ], and nJ for energy [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ]. However, 10 KHz. As amperemeters average variable current between
some studies are not precise in terminology, in particular synchronization impulses, power spikes of higher frequencies
difference in battery charge is also labeled as consumed energy may be smoothed out to levels of measurement errors and pass
[
        <xref ref-type="bibr" rid="ref44">44</xref>
        ]. undetected. Therefore it is important to understand if studies
      </p>
      <p>
        It is not uncommon to estimate specific energy calculated dealing with direct measurement approach frameworks or
diper unit of device operation. Examples include instructions rect measurement baseline comparison alter their methodology
[
        <xref ref-type="bibr" rid="ref43">43</xref>
        ], MHz of processor, screen inch or dB of speakers [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ], to address this issue.
bits of transmitted traffic [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. We’ve identified 10 frameworks that in one way or another
      </p>
      <p>
        Relative quantities are also encountered in the listed studies, acknowledge it:
although rarely. Banerjee et al. [
        <xref ref-type="bibr" rid="ref49">49</xref>
        ] introduce a measure • Mittal et al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], Dolezal and Becvar [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ], Saksonov [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ],
reflecting the energy efficiency of the application for a certain Pandiyan and Wu [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] turn off DVFS completely or set it
time period. Dong, Lan and Zhong [
        <xref ref-type="bibr" rid="ref41">41</xref>
        ] measure energy to a more controlled mode of operation, so CPU current
consumption in percentages relative to the total energy con- draw is at least more predictable and consistent.
sumption of the system. • Hung et al. [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ], Yoon et al. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], Zhang et al. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] include
      </p>
      <p>
        Jung, Kim and Cha [
        <xref ref-type="bibr" rid="ref45">45</xref>
        ] organize their measuring process CPU frequency data as an additional input for total energy
using both absolute and relative quantities. The percentage consumption estimation.
of screen brightness, the percentage of processor utilization • Couto et al. [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], Li and Gallagher [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] adjust test running
and its frequency, the strength of Wi-Fi and 3G signals in time to be comparable to metering hardware frequency.
dBm were measured along with many other characteristics of • Larsson and Stigelid [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ] adjust metering frequency to
a device energy behavior. test running time. We include this study with caution
      </p>
      <p>Overall, about 65% of the listed studies report a single though, as authors access Android API and not an internal
quantity, in other studies two or more are reported. meter itself, therefore frequency of API calls might be
unrelated to frequency of internal meter readings.</p>
      <p>TABLE V We conclude that the issue is not widely acknowledged, but</p>
      <p>MEASURED CHARACTERISTICS it can be alleviated at least to an extent both by configuring
Quantity Number of papers the test device and by properly setting up experiment. We
Power 21 suggest that testing those measures for adequacy in a
realEnergy 22 life multicore scenario with threads created and destroyed
regularly and at high frequency is an open challenge.</p>
      <p>Accuracy distribution
mW — 14, W — 6, μW — 1</p>
      <p>J — 12, mJ — 7,
kJ — 1, μJ — 1, nJ — 1</p>
      <p>A — 2, mA — 1</p>
      <p>V — 1, mV — 1
mAh — 2, mAms — 1</p>
    </sec>
    <sec id="sec-10">
      <title>G. RQ7: How do frameworks deal with metering hardware frequency being considerably lower than CPU frequency?</title>
      <sec id="sec-10-1">
        <title>This RQ was included at later stages of data extraction</title>
        <p>process as a reaction to the following phenomena.</p>
        <p>Modern CPUs including systems on a chip like smartphones
or tablets operate at frequencies of several GHz. While the
operating voltage for a CPU is more or less constant5, the
current it draws can vary tremendously. When multiple cores
are working, it is higher than in the case of a single core
working. Entire CPU or even each of its cores may potentially
work at different frequencies with different corresponding
current, changing dynamically — this process is called Dynamic
Voltage Frequency Scaling (DVFS). Such changes in drawn
current may appear at frequencies of at least MHz range.</p>
        <p>
          On the contrary metering hardware in the listed works
operates at considerably lower frequencies. Maximum
frequency of 100 KHz is found in Wilke et al. [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ], [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], but
the bulk of studies uses multimeters operating way below
5For Li-ion and Li-pol batteries commonly used in modern smartphones
voltage drops slightly between 90% and 20% of charge, but it is largely
insignificant drop. Electronic devices can in fact safely operate in a range of
voltages, so only a significant drop in voltage after 20% of charge results in
functional degrade.
        </p>
      </sec>
      <sec id="sec-10-2">
        <title>IV. STUDY LIMITATIONS</title>
        <p>One of the main issues when conducting SLR is to find all
relevant studies to include. We used automatic search system
(Google Scholar) and therefore our search is as efficient and
thorough as this service is. While the query term ”energy
efficiency” allowed us to find a good amount of relevant
studies, we admit that in some of the additionally included
articles it was absent. There is a probability that we missed
some other relevant studies not using this term in the text.</p>
        <p>Additionally several months passed since our original search
and article publication, so there is also a possibility of some
newer articles published after summer 2019 being missed in
our study.</p>
        <p>
          It is also possible that we missed to group some articles,
although we don’t think there’s a high probability to it. We
assume our merge process was reliable enough as an idea to
merge [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] and [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] into a single group came initially from
their common institution of origin despite completely different
sets of authors.
        </p>
        <p>Another limitation was a selective quality control of a
data extraction process. In some cases particular studies were
handled by a single researcher with extracted data being
wellwritten and not raising questions, so other researchers relied
on this data instead of original study. Such process could
introduce errors in extracted data due to misunderstanding of
a study.</p>
        <p>V. CLASSIFICATION OF SOME COMMERCIAL POWER circumstances accuracy comparison between approaches is</p>
        <p>PROFILERS currently extremely hard to undertake.</p>
        <p>
          As we prepared this article, a frequently asked question On a brighter side, these frameworks are reported to be
was how to relate results obtained from SLR to a number used. To our knowledge only a PowerTutor framework [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] was
of commercially available power profilers used in practical able to evolve further and became a broadly used application,
Android development. While comparative accuracy overview while some of the frameworks were documented to be used
is out of the scope of this article, we think it is useful to apply internally as a tools for higher level research projects [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ],
framework classification obtained in RQ1 to those profilers. [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
        <p>Our goal here is to help practitioners better understand their A number of devices supported by existing frameworks is
intended use cases. The list is definitely not exhaustive, but large, so even if a practitioner would write a framework itself,
those were the most frequently mentioned profilers. test device itself is not a limiting factor. A set of
method</p>
        <p>
          Trepn Power Profiler [
          <xref ref-type="bibr" rid="ref58">58</xref>
          ] is a tool developed by Qualcomm ological practices and techniques was established to improve
which is no longer supported. It is a direct measurement measurement accuracy, and even relatively low frequency of
framework using internal meter, and therefore its energy hardware equipment compared to measured device can be
consumption data is as accurate as the meter itself is. This offset by smart experimental design, although we think that
issue was acknowledged by developers and a list of accurate there are still open questions in this area.
devices was compiled [
          <xref ref-type="bibr" rid="ref59">59</xref>
          ]. We’ve also shown that our proposed classification is useful
        </p>
        <p>
          BatteryHistorian [
          <xref ref-type="bibr" rid="ref60">60</xref>
          ] is a tool for background system in- to analyze possible use cases for commercially available power
formation aggregation in Android OS. Not only it provides profilers targeting Android OS.
power drain information but also statistics of runtime system Results of our study affected design decisions and helped to
events like Wi-Fi scans or wakelocks. Being classified as a continue developent of our own tool for energy consumption
direct measurement framework with internal meter, it displays metering for Android OS - a working time model-based
energy consumption as percentage of battery charge which is Navitas framework6. From the beginning it was conceived as
a victim to battery degradation. A noticable drop in battery an open-sourced framework which could be used in different
charge usually requires a significant amount of computations scenarios, and one of possible applications we’re developing is
and/or peripherals work, therefore this value is not suitable for a plugin for Android Studio IDE. Its development, evaluation
short time experiments, for example, those that run only for and application for energy refactorings is a focus for future
several seconds. work.
        </p>
        <p>
          Android Studio Energy Profiler [
          <xref ref-type="bibr" rid="ref61">61</xref>
          ] shows energy
consumption as a real-time graph in relative units. Regretfully, ACKNOWLEDGMENT
there is virtually no documentation on the model itself, but Authors would like to thank Lanit-Tercom company for
after analyzing the information obtained from various sources hosting our research project as part of its Summer School’19.
(such as StackOverflow [
          <xref ref-type="bibr" rid="ref62">62</xref>
          ]) and experimenting with tool
itself we came to the conclusion it is a working time model- REFERENCES
based solution. It aggregates various system events, assigns
them weights and gives a resulting relative power drain metric.
        </p>
        <p>While it is granular enough to be used for energy refactorings
efficiency estimation, we have concerns if its
”one-size-fitsall” model is representative of real smart devices hardware
energy consumption.</p>
      </sec>
      <sec id="sec-10-3">
        <title>VI. CONCLUSIONS AND FUTURE WORK</title>
        <p>The results of our study indicate that there are various
approaches to measure application energy consumption in
Android OS with some frameworks utilizing external equipment
to gather necessary data and others using previously calibrated
models. While there are merits to all of those approaches it
is difficult to compare framework accuracy with one another
based on the studies themself as there is no uniform accuracy
estimation methodology presented in the listed publications.</p>
        <p>Even if one is going to compare frameworks
experimentally, only a handful of studies have their source code or
sample application openly available which considerably limits
framework representation for such analysis. What’s worse,
code repositories look mostly abandoned, and framework
startup documentation is scarce. We conclude that under these</p>
        <sec id="sec-10-3-1">
          <title>6https://github.com/Stanislav-Sartasov/</title>
          <p>Navitas-Framework/</p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Marko</given-names>
            <surname>Milijic</surname>
          </string-name>
          , “
          <volume>29</volume>
          + Smartphone Usage Statistics: Around the World in
          <year>2020</year>
          ,” https://leftronic.com/smartphone-usage-statistics/,
          <year>2019</year>
          , [Online; accessed 14-January-2020].
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>C.</given-names>
            <surname>Sahin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Cayci</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Manotas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Clause</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Kiamilev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Pollock</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Winbladh</surname>
          </string-name>
          , “
          <article-title>Initial explorations on design pattern energy usage</article-title>
          ,
          <source>” 2012 1st International Workshop on Green and Sustainable Software, GREENS 2012 - Proceedings</source>
          ,
          <year>06 2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S. O</given-names>
            <surname>'Dea</surname>
          </string-name>
          , “
          <article-title>Share of global smartphone shipments by operating system from 2014 to</article-title>
          <year>2023</year>
          ,” https://www.statista.com/statistics/272307/ market-share
          <article-title>-forecast-for-smartphone-operating-</article-title>
          <string-name>
            <surname>systems</surname>
            <given-names>/</given-names>
          </string-name>
          ,
          <year>2019</year>
          , [Online; accessed 14-January-2020].
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>B.</given-names>
            <surname>Kitchenham</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Charters</surname>
          </string-name>
          , “
          <article-title>Guidelines for performing systematic literature reviews in software engineering</article-title>
          ,” vol.
          <volume>2</volume>
          ,
          <issue>01</issue>
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>R.</given-names>
            <surname>Mittal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kansal</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Chandra</surname>
          </string-name>
          , “
          <article-title>Empowering developers to estimate app energy consumption</article-title>
          ,”
          <source>in Proceedings of the 18th Annual International Conference on Mobile Computing and Networking</source>
          , ser. Mobicom '
          <fpage>12</fpage>
          . New York, NY, USA: Association for Computing Machinery,
          <year>2012</year>
          , p.
          <fpage>317</fpage>
          -
          <lpage>328</lpage>
          . [Online]. Available: https://doi.org/10. 1145/2348543.2348583
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>C.</given-names>
            <surname>Yoon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Kim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Jung</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Kang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Cha</surname>
          </string-name>
          , “Appscope:
          <article-title>Application energy metering framework for android smartphones using kernel activity monitoring</article-title>
          ,”
          <source>in Proceedings of the 2012 USENIX Conference on Annual Technical Conference</source>
          , ser.
          <source>USENIX ATC'12. USA: USENIX Association</source>
          ,
          <year>2012</year>
          , p.
          <fpage>36</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>L.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Tiwana</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. P.</given-names>
            <surname>Dick</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Qian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z. M.</given-names>
            <surname>Mao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Wang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L.</given-names>
            <surname>Yang</surname>
          </string-name>
          , “
          <article-title>Accurate online power estimation and automatic battery behavior based power model generation for smartphones</article-title>
          ,” in 2010 IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and
          <article-title>System Synthesis (CODES+ISSS)</article-title>
          ,
          <year>Oct 2010</year>
          , pp.
          <fpage>105</fpage>
          -
          <lpage>114</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>X.</given-names>
            <surname>Li</surname>
          </string-name>
          and
          <string-name>
            <given-names>J. P.</given-names>
            <surname>Gallagher</surname>
          </string-name>
          , “
          <article-title>Fine-grained energy modeling for the source code of a mobile application</article-title>
          ,”
          <source>in Proceedings of the 13th International Conference on Mobile and Ubiquitous Systems: Computing, Networking and Services</source>
          , ser.
          <source>MOBIQUITOUS</source>
          <year>2016</year>
          . New York, NY, USA: Association for Computing Machinery,
          <year>2016</year>
          , p.
          <fpage>180</fpage>
          -
          <lpage>189</lpage>
          . [Online]. Available: https://doi.org/10.1145/2994374.2994394
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>C.</given-names>
            <surname>Wilke</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          <article-title>Go¨tz, and</article-title>
          <string-name>
            <given-names>S.</given-names>
            <surname>Richly</surname>
          </string-name>
          , “
          <article-title>Jouleunit: A generic framework for software energy profiling</article-title>
          and testing,”
          <source>in Proceedings of the 2013 Workshop on Green in/by Software Engineering</source>
          , ser.
          <source>GIBSE '13</source>
          . New York, NY, USA: Association for Computing Machinery,
          <year>2013</year>
          , p.
          <fpage>9</fpage>
          -
          <lpage>14</lpage>
          . [Online]. Available: https://doi.org/10.1145/2451605.2451610
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>C.</given-names>
            <surname>Wilke</surname>
          </string-name>
          , “
          <article-title>Energy-aware development and labeling for mobile applications</article-title>
          ,
          <source>” Ph.D. dissertation</source>
          , 03
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Couto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cunha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. P.</given-names>
            <surname>Fernandes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Pereira</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Saraiva</surname>
          </string-name>
          , “
          <article-title>Greendroid: A tool for analysing power consumption in the android ecosystem</article-title>
          ,” in
          <source>2015 IEEE 13th International Scientific Conference on Informatics, Nov</source>
          <year>2015</year>
          , pp.
          <fpage>73</fpage>
          -
          <lpage>78</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M.</given-names>
            <surname>Couto</surname>
          </string-name>
          , “
          <article-title>Monitoring energy consumption in android applications</article-title>
          ,”
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Couto</surname>
          </string-name>
          , T. Carc¸a˜o,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cunha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Fernandes</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Saraiva</surname>
          </string-name>
          , “
          <article-title>Detecting anomalous energy consumption in android applications</article-title>
          ,”
          <volume>10</volume>
          2014, pp.
          <fpage>77</fpage>
          -
          <lpage>91</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>D.</given-names>
            <surname>Di Nucci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Palomba</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Prota</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Panichella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Zaidman</surname>
          </string-name>
          , and A. De Lucia, “
          <article-title>Petra: A software-based tool for estimating the energy profile of android applications</article-title>
          ,” in 2017 IEEE/ACM 39th International Conference on Software Engineering
          <string-name>
            <surname>Companion (ICSE-C)</surname>
          </string-name>
          ,
          <source>May</source>
          <year>2017</year>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>6</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>-</surname>
          </string-name>
          , “
          <article-title>Software-based energy profiling of android apps: Simple, efficient</article-title>
          and reliable?”
          <source>in 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering</source>
          (SANER),
          <year>Feb 2017</year>
          , pp.
          <fpage>103</fpage>
          -
          <lpage>114</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Feghhi</surname>
          </string-name>
          ,
          <article-title>“Multi-layer tracing of android applications for energyconsumption analysis</article-title>
          ,”
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>K.</given-names>
            <surname>Aggarwal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Campbell</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hindle</surname>
          </string-name>
          , and E. Stroulia, “
          <article-title>The power of system call traces: Predicting the software energy consumption impact of changes,”</article-title>
          <source>in Proceedings of 24th Annual International Conference on Computer Science and Software Engineering</source>
          , ser.
          <source>CASCON '14</source>
          . USA: IBM Corp.,
          <year>2014</year>
          , p.
          <fpage>219</fpage>
          -
          <lpage>233</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>X.</given-names>
            <surname>Li</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Gallagher</surname>
          </string-name>
          , “
          <article-title>An energy-aware programming approach for mobile application development guided by a fine-grained energy model</article-title>
          ,”
          <volume>05</volume>
          2016.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>R. W.</given-names>
            <surname>Ahmad</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Naveed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. J. P. C.</given-names>
            <surname>Rodrigues</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. A.</given-names>
            <surname>Madani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Shuja</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Maqsood</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Saeed</surname>
          </string-name>
          , “
          <article-title>Enhancement and assessment of a code-analysis-based energy estimation framework</article-title>
          ,
          <source>” IEEE Systems Journal</source>
          , vol.
          <volume>13</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>1052</fpage>
          -
          <lpage>1059</lpage>
          ,
          <year>March 2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>R.</given-names>
            <surname>Ahmad</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gani</surname>
          </string-name>
          , S. h. Ab hamid, A. Naveed,
          <string-name>
            <given-names>K.</given-names>
            <surname>Ko</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Rodrigues</surname>
          </string-name>
          , “
          <article-title>A case and framework for code analysis-based smartphone application energy estimation</article-title>
          ,”
          <source>International Journal of Communication Systems</source>
          , vol.
          <volume>30</volume>
          , 11
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>A.</given-names>
            <surname>Hindle</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Wilson,
          <string-name>
            <given-names>K.</given-names>
            <surname>Rasmussen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. J.</given-names>
            <surname>Barlow</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Campbell</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Romansky</surname>
          </string-name>
          , “
          <article-title>Greenminer: A hardware based mining software repositories software energy consumption framework</article-title>
          ,”
          <source>in Proceedings of the 11th Working Conference on Mining Software Repositories, ser. MSR</source>
          <year>2014</year>
          . New York, NY, USA: Association for Computing Machinery,
          <year>2014</year>
          , p.
          <fpage>12</fpage>
          -
          <lpage>21</lpage>
          . [Online]. Available: https://doi.org/10.1145/2597073.2597097
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>M.</given-names>
            <surname>Tuysuz</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Uc¸an, and</article-title>
          <string-name>
            <given-names>R.</given-names>
            <surname>Trestian</surname>
          </string-name>
          , “
          <article-title>A real-time power monitoring and energy-efficient network/interface selection tool for android smartphones</article-title>
          ,
          <source>” Journal of Network and Computer Applications</source>
          , vol.
          <volume>127</volume>
          , 11
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>S.</given-names>
            <surname>Hao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W. G. J.</given-names>
            <surname>Halfond</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Govindan</surname>
          </string-name>
          , “
          <article-title>Estimating android applications' cpu energy usage via bytecode profiling</article-title>
          ,
          <source>” in 2012 First International Workshop on Green and Sustainable Software (GREENS)</source>
          ,
          <year>June 2012</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>7</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>U.</given-names>
            <surname>Bareth</surname>
          </string-name>
          , “
          <article-title>Simulating power consumption of location tracking algorithms to improve energy-efficiency of smartphones,” in 2012 IEEE 36th Annual Computer Software</article-title>
          and Applications Conference,
          <year>July 2012</year>
          , pp.
          <fpage>613</fpage>
          -
          <lpage>622</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>T.</given-names>
            <surname>Kamiyama</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Inamura</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Ohta</surname>
          </string-name>
          , “
          <article-title>A model-based energy profiler using online logging for android applications</article-title>
          ,” in
          <source>2014 Seventh International Conference on Mobile Computing and Ubiquitous Networking (ICMU)</source>
          ,
          <year>Jan 2014</year>
          , pp.
          <fpage>7</fpage>
          -
          <lpage>13</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>A.</given-names>
            <surname>Saksonov</surname>
          </string-name>
          , “
          <article-title>Method to derive energy profiles for android platform</article-title>
          ,”
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>H.</given-names>
            <surname>Sahar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Bangash</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Beg</surname>
          </string-name>
          , “
          <article-title>Towards energy aware objectoriented development of android applications</article-title>
          ,
          <source>” Sustainable Computing: Informatics and Systems</source>
          , vol.
          <volume>21</volume>
          , 11
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>D.</given-names>
            <surname>Pandiyan</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Wu</surname>
          </string-name>
          , “
          <article-title>Quantifying the energy cost of data movement for emerging smart phone workloads on mobile platforms</article-title>
          ,” in
          <source>2014 IEEE International Symposium on Workload Characterization (IISWC)</source>
          ,
          <year>Oct 2014</year>
          , pp.
          <fpage>171</fpage>
          -
          <lpage>180</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>J.</given-names>
            <surname>Huang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Qian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gerber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z. M.</given-names>
            <surname>Mao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Sen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>O.</given-names>
            <surname>Spatscheck</surname>
          </string-name>
          , “
          <article-title>A close examination of performance and power characteristics of 4g lte networks</article-title>
          ,
          <source>” in Proceedings of the 10th International Conference on Mobile Systems</source>
          , Applications, and Services, ser.
          <source>MobiSys '12</source>
          . New York, NY, USA: Association for Computing Machinery,
          <year>2012</year>
          , p.
          <fpage>225</fpage>
          -
          <lpage>238</lpage>
          . [Online]. Available: https://doi.org/10.1145/2307636.2307658
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>W.</given-names>
            <surname>Oliveira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Oliveira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Castor</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Fernandes</surname>
          </string-name>
          , and G. Pinto, “
          <article-title>Recommending energy-efficient java collections</article-title>
          ,” in
          <source>2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR)</source>
          ,
          <source>May</source>
          <year>2019</year>
          , pp.
          <fpage>160</fpage>
          -
          <lpage>170</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>B.</given-names>
            <surname>Westfield</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Gopalan</surname>
          </string-name>
          , “
          <article-title>Orka: A new technique to profile the energy usage of android applications</article-title>
          ,” in
          <source>2016 5th International Conference on Smart Cities and Green ICT Systems (SMARTGREENS)</source>
          ,
          <year>April 2016</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>J.</given-names>
            <surname>Dolezal</surname>
          </string-name>
          and
          <string-name>
            <given-names>Z.</given-names>
            <surname>Becvar</surname>
          </string-name>
          , “
          <article-title>Methodology and tool for energy consumption modeling of mobile devices,” in 2014 IEEE Wireless Communications</article-title>
          and Networking Conference Workshops (WCNCW),
          <year>April 2014</year>
          , pp.
          <fpage>34</fpage>
          -
          <lpage>39</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Yan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Yan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Lu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Yan</surname>
          </string-name>
          , “
          <article-title>Lightweight energy consumption analysis and prediction for android applications</article-title>
          ,”
          <source>Science of Computer Programming</source>
          , vol.
          <volume>162</volume>
          , 05
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>M.</given-names>
            <surname>Larsson</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Stigelid</surname>
          </string-name>
          , “
          <article-title>Energy efficient data synchronization in mobile applications : A comparison between different data synchronization techniques</article-title>
          ,
          <source>” Ph.D. dissertation</source>
          , 08
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Fischer</surname>
          </string-name>
          , L. B. d. Brisolara, and J.
          <string-name>
            <surname>C. B. d</surname>
          </string-name>
          . Mattos, “
          <article-title>Sema: An approach based on internal measurement to evaluate energy efficiency of android applications</article-title>
          ,” in
          <source>2015 Brazilian Symposium on Computing Systems Engineering (SBESC)</source>
          ,
          <year>Nov 2015</year>
          , pp.
          <fpage>48</fpage>
          -
          <lpage>53</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>S.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Yoon</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Cha</surname>
          </string-name>
          , “
          <article-title>User interaction-based profiling system for android application tuning</article-title>
          ,”
          <source>in Proceedings of the 2014 ACM International Joint Conference on Pervasive and Ubiquitous Computing</source>
          , ser.
          <source>UbiComp '14</source>
          . New York, NY, USA: Association for Computing Machinery,
          <year>2014</year>
          , p.
          <fpage>289</fpage>
          -
          <lpage>299</lpage>
          . [Online]. Available: https://doi.org/10. 1145/2632048.2636091
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>X.</given-names>
            <surname>Chen</surname>
          </string-name>
          and
          <string-name>
            <given-names>Z.</given-names>
            <surname>Zong</surname>
          </string-name>
          , “
          <article-title>Android app energy efficiency: The impact of language, runtime, compiler, and implementation,” in 2016 IEEE International Conferences on Big Data and Cloud Computing (BDCloud), Social Computing and Networking (SocialCom), Sustainable Computing</article-title>
          and
          <string-name>
            <surname>Communications (SustainCom) (BDCloud-SocialCom-SustainCom)</surname>
          </string-name>
          ,
          <source>Oct</source>
          <year>2016</year>
          , pp.
          <fpage>485</fpage>
          -
          <lpage>492</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [38]
          <string-name>
            <given-names>S.</given-names>
            <surname>Hung</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Liang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Tu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Chang</surname>
          </string-name>
          , “
          <article-title>Performance and power estimation for mobile-cloud applications on virtualized platforms</article-title>
          ,
          <source>” in 2013 Seventh International Conference on Innovative Mobile and Internet Services in Ubiquitous Computing</source>
          ,
          <year>July 2013</year>
          , pp.
          <fpage>260</fpage>
          -
          <lpage>267</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [39]
          <string-name>
            <given-names>A.</given-names>
            <surname>Carette</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. A. A.</given-names>
            <surname>Younes</surname>
          </string-name>
          , G. Hecht,
          <string-name>
            <given-names>N.</given-names>
            <surname>Moha</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Rouvoy</surname>
          </string-name>
          , “
          <article-title>Investigating the energy impact of android smells</article-title>
          ,” in
          <source>2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering</source>
          (SANER),
          <year>Feb 2017</year>
          , pp.
          <fpage>115</fpage>
          -
          <lpage>126</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [40]
          <string-name>
            <given-names>K.</given-names>
            <surname>Kapetanakis</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Panagiotakis</surname>
          </string-name>
          , “
          <article-title>Efficient energy consumption's measurement on android devices</article-title>
          ,
          <source>” in 2012 16th Panhellenic Conference on Informatics, Oct</source>
          <year>2012</year>
          , pp.
          <fpage>351</fpage>
          -
          <lpage>356</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          [41]
          <string-name>
            <given-names>M.</given-names>
            <surname>Dong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Lan</surname>
          </string-name>
          , and L. Zhong, “
          <article-title>Rethink energy accounting with cooperative game theory</article-title>
          ,”
          <source>in Proceedings of the 20th Annual International Conference on Mobile Computing and Networking</source>
          , ser.
          <source>MobiCom '14</source>
          . New York, NY, USA: Association for Computing Machinery,
          <year>2014</year>
          , p.
          <fpage>531</fpage>
          -
          <lpage>542</lpage>
          . [Online]. Available: https://doi.org/10. 1145/2639108.2639128
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          [42]
          <string-name>
            <given-names>S.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Jung</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Chon</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Cha</surname>
          </string-name>
          , “
          <article-title>Entrack: a system facility for analyzing energy consumption of android system services</article-title>
          ,
          <source>” 09</source>
          <year>2015</year>
          , pp.
          <fpage>191</fpage>
          -
          <lpage>202</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          [43]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Chung</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lin</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>King</surname>
          </string-name>
          , “Aneprof:
          <article-title>Energy profiling for android java virtual machine and applications</article-title>
          ,” in
          <source>2011 IEEE 17th International Conference on Parallel and Distributed Systems</source>
          ,
          <year>Dec 2011</year>
          , pp.
          <fpage>372</fpage>
          -
          <lpage>379</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          [44]
          <string-name>
            <surname>Donghwa</surname>
            <given-names>Shin</given-names>
          </string-name>
          , Kitae Kim,
          <string-name>
            <given-names>Naehyuck</given-names>
            <surname>Chang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Woojoo</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Yanzhi</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <surname>Qing Xie</surname>
            , and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Pedram</surname>
          </string-name>
          , “
          <article-title>Online estimation of the remaining energy capacity in mobile systems considering system-wide power consumption and battery characteristics,” in 2013 18th Asia and South Pacific Design Automation Conference (ASP-DAC)</article-title>
          ,
          <year>Jan 2013</year>
          , pp.
          <fpage>59</fpage>
          -
          <lpage>64</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          [45]
          <string-name>
            <given-names>W.</given-names>
            <surname>Jung</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Kim</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Cha</surname>
          </string-name>
          , “
          <article-title>Userscope: A fine-grained framework for collecting energy-related smartphone user contexts</article-title>
          ,
          <source>” in 2013 International Conference on Parallel and Distributed Systems</source>
          ,
          <year>Dec 2013</year>
          , pp.
          <fpage>158</fpage>
          -
          <lpage>165</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          [46]
          <string-name>
            <given-names>S.</given-names>
            <surname>Tsao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Kao</surname>
          </string-name>
          , I. Suat,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Kuo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Chang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Yu</surname>
          </string-name>
          , “
          <article-title>Powermemo: A power profiling tool for mobile devices in an emulated wireless environment</article-title>
          ,” in
          <source>2012 International Symposium on System on Chip (SoC)</source>
          ,
          <year>Oct 2012</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>5</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref47">
        <mixed-citation>
          [47]
          <string-name>
            <given-names>G.</given-names>
            <surname>Metri</surname>
          </string-name>
          , “
          <article-title>Energy efficiency analysis and optimization for mobile platforms</article-title>
          ,”
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref48">
        <mixed-citation>
          [48]
          <string-name>
            <given-names>X.</given-names>
            <surname>Gao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Wang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>A.</given-names>
            <surname>Stavrou</surname>
          </string-name>
          , “
          <article-title>E-android: A new energy profiling tool for smartphones</article-title>
          ,” in
          <source>2017 IEEE 37th International Conference on Distributed Computing Systems (ICDCS)</source>
          ,
          <year>June 2017</year>
          , pp.
          <fpage>492</fpage>
          -
          <lpage>502</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref49">
        <mixed-citation>
          [49]
          <string-name>
            <given-names>A.</given-names>
            <surname>Banerjee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. K.</given-names>
            <surname>Chong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Chattopadhyay</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Roychoudhury</surname>
          </string-name>
          , “
          <article-title>Detecting energy bugs and hotspots in mobile apps</article-title>
          ,”
          <source>in Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering</source>
          , ser.
          <source>FSE</source>
          <year>2014</year>
          . New York, NY, USA: Association for Computing Machinery,
          <year>2014</year>
          , p.
          <fpage>588</fpage>
          -
          <lpage>598</lpage>
          . [Online]. Available: https://doi.org/10.1145/2635868.2635871
        </mixed-citation>
      </ref>
      <ref id="ref50">
        <mixed-citation>
          [50]
          <string-name>
            <given-names>D.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Sahin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Clause</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W. G. J.</given-names>
            <surname>Halfond</surname>
          </string-name>
          , “
          <article-title>Energy-directed test suite optimization</article-title>
          ,
          <source>” in 2013 2nd International Workshop on Green and Sustainable Software (GREENS)</source>
          ,
          <source>May</source>
          <year>2013</year>
          , pp.
          <fpage>62</fpage>
          -
          <lpage>69</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref51">
        <mixed-citation>
          [51]
          <string-name>
            <given-names>K.</given-names>
            <surname>Walcott-Justice</surname>
          </string-name>
          , “
          <article-title>Maue: A framework for detecting energy bugs from user interactions on mobile applications</article-title>
          ,”
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref52">
        <mixed-citation>
          [52]
          <string-name>
            <surname>H.-J. Kim</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Kyong</surname>
          </string-name>
          , and S.-S. Lim, “
          <article-title>A systematic power and performance analysis framework for heterogeneous multiprocessor system</article-title>
          ,
          <source>” Journal of IEMEK</source>
          , vol.
          <volume>9</volume>
          , pp.
          <fpage>315</fpage>
          -
          <lpage>321</lpage>
          ,
          <year>12 2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref53">
        <mixed-citation>
          [53] “Power Profiles for Android,” https://source.android.com/devices/tech/ power,
          <year>2019</year>
          , [Online; accessed 14-January-2020].
        </mixed-citation>
      </ref>
      <ref id="ref54">
        <mixed-citation>
          [54]
          <string-name>
            <surname>Monsoon</surname>
            <given-names>Solutions</given-names>
          </string-name>
          , Inc., “High voltage power monitor,” https://www. msoon.com/online-store,
          <year>2019</year>
          , [Online; accessed 18-August-2019].
        </mixed-citation>
      </ref>
      <ref id="ref55">
        <mixed-citation>
          [55] “Android 10 for Developers,” https://developer.android.com/about/ versions/10/highlights,
          <year>2019</year>
          , [Online; accessed 14-January-2020].
        </mixed-citation>
      </ref>
      <ref id="ref56">
        <mixed-citation>
          [56] “
          <article-title>Application forward compatibility</article-title>
          .” [Online]. Available: https:// developer.android.com/guide/topics/manifest/uses-sdk-element.html#fc
        </mixed-citation>
      </ref>
      <ref id="ref57">
        <mixed-citation>[57] “Distribution dashboard.” [Online]. Available: https://developer.android. com/about/dashboards</mixed-citation>
      </ref>
      <ref id="ref58">
        <mixed-citation>
          [58] “Trepn Power Profiler,” https://developer.qualcomm.com/forums/ software/trepn-power-profiler,
          <year>2019</year>
          , [Online; accessed 14-
          <fpage>January2020</fpage>
          ].
        </mixed-citation>
      </ref>
      <ref id="ref59">
        <mixed-citation>
          [59] “
          <article-title>Which mobile devices report accurate system power consumption?” https://developer</article-title>
          .qualcomm.com/forum/qdn-forums/software/ trepn-power
          <source>-profiler/28349</source>
          ,
          <year>2013</year>
          , [Online; accessed 14-January-2020].
        </mixed-citation>
      </ref>
      <ref id="ref60">
        <mixed-citation>
          [60] “
          <article-title>Analyze power use with Battery Historian</article-title>
          ,” https://developer.android. com/topic/performance/power/battery-historian,
          <year>2020</year>
          , [Online; accessed 14-January-2020].
        </mixed-citation>
      </ref>
      <ref id="ref61">
        <mixed-citation>
          [61] “
          <article-title>Inspect energy use with Energy Profiler</article-title>
          ,” https://developer.android. com/studio/profile/energy-profiler,
          <year>2019</year>
          , [Online; accessed 14-
          <fpage>January2020</fpage>
          ].
        </mixed-citation>
      </ref>
      <ref id="ref62">
        <mixed-citation>
          [62] “
          <article-title>Energy consumption on Android Studio Profiler</article-title>
          ,” https://stackoverflow.com/questions/52647045/ energy-consumption
          <article-title>-on-android-studio-</article-title>
          <string-name>
            <surname>profiler</surname>
          </string-name>
          ,
          <year>2018</year>
          , [Online; accessed 14-January-2020].
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>