Using the `android` command to create a new project has been deprecated in favour
of using Android Studio. To avoid this constraint a template project has been added
and this is simply duplicated with the relevant files populated when creating a new
project.
Uiautomator1 has been deprecated, therefore the uiautomation base classes have
been upgraded to use uiautomator2 and the new gradle build system.
Altered to retrieve `package_name` rather than `package` as per the previous commit.
The new method of using uiautomation 2 is by using instrumented apk files rather
than JAR files. This commit updates the base workload has been updated to
install/uninstall the new uiautomation APK files and to invoke the relevant
instrumentation.
When moving to Uiautomation 2, tests are now complied into apk files rather than
jar files. To avoid conflicts with regular workload apks a new resource type is
added to retrieve the test files which will be renamed to have the extension
.uiautoapk
A force flag has been added to the `install_apk` method which
ignores the check that the specified file is an apk. This is to support
the new UiAutomation Apk which have been given the extention .uiautoapk.
Adds a method to determine the appropriate method of triggering a media refresh
of a given list of file based on the devices android version and root status. If
a device is running android marshmallow and below or has root, trigger a refresh
of the files containing folder otherwise trigger a refresh of each individual
file.
In android N it is no longer allowed to trigger a media refresh of a directory
without root, therefore this method has been added to trigger a refresh of an
individual file.
Previously AndroidPerfWorkload broadcast media mounted unconditionally
inside push_assets and delete_assets. This change makes it so the
broadcast only happens if something was actually pushed/needs to be
delete.
rt-app inserts its own classifiers into the results. Previosly, if was
replacing the existing classifier if there were any. Now, classifiers
are updated, rather than replaced.
`set_sysfile_values` now accepts a `^` symbol prefixed to the
file path to indicated that the value should be written as binary data.
To accommodate this an extra `binary` flag has been added to the `set_sysfile_value`and `get_sysfile_value` methods to write and retrieve the binary data respectively.
This commit resolves a couple of issues that were causing impropper
cluster shutdown tracking in the cpustates script.
- requested_states in the PowerStateProcessor was being initalized to -1
instead of None if no state was requested; the later checks are
against None.
- requested_states was not being set if the request could be satisfied
immediately, and was being cleared upon being statisfied at a later
time. This caused a problem when a core leaves idle and then tries to
re-enter cluster shutdown. Here is an example sequence of events that
illustrates the issue (assume core0 and core1 are the only two cores
on a cluster):
1. both cores are running
2. core0 requests cluster-sleep. As core1 is running, it
is put into core-sleep instead, and its request is saved.
3. core1 requests cluster-sleep. As core0 has a pending request
for cluster-sleep, both cores are put into cluster-sleep and
the pending request is cleared.
4. core1 becomes active. core0 is elevated to core-sleep.
5. core1 tries to enter cluster-sleep. Since core0 is currently
in core-sleep (and its prior request has laredy been
cleared), core1 is put into core-sleep instead, and its
request is saved. This is an ERROR as but cores have in fact
requested cluster-sleep at this stage.
If, in step 4., core0 becomes active instead, exactly the same
situation will result, as core1 was put into cluster-sleep immediately
and its request was never saved.
Idle state requests are now always tracked on entry and are only
cleared when the core leave idle.
- Also removed a pointless identy assignment.
Added an option to generate a timeline of state transitions, in
contrast to the existing timeline of computed states. This is primarily
intended for debugging of the latter, but may also be useful for certain
kinds of analyses.
…ypes
Due to a change in the parameter kind we have to update the googleplaybooks workload to work with integers for page numbers as opposed to strings.
This was missed in the previous update: 8f12066
Fixed being unable to find the 'update status' box.
Now selects a 'do you know' notification rather than the latest,
as this is now a link on how to upgrade the app which opens in
external browser.
This changeset adds the ability to sleep on the device via a
device.sleep() method. This invokes sleep on the target device. This
is useful for situations where the passage of time on the target
device does not match that of the host, e.g., gem5.
This changeset also updates a number of workloads to use this new
sleep method.
For historical reasons audio and video workloads were launching the
browser as part of their setup. This is no longer necessary. Not only
that, since on recent devices the default Android browser is missing,
this causes problems with the workloads. This commit removes the browser
launch.