| Index: tools/telemetry/telemetry/android_platform.py
|
| diff --git a/tools/telemetry/telemetry/android_platform.py b/tools/telemetry/telemetry/android_platform.py
|
| index 6e544d72b1c3d0a4bc124cbf5ecbc0cbac40b8fe..833769af59f2f422293ec0146b0b97ad7e08de79 100644
|
| --- a/tools/telemetry/telemetry/android_platform.py
|
| +++ b/tools/telemetry/telemetry/android_platform.py
|
| @@ -2,27 +2,70 @@
|
| # Use of this source code is governed by a BSD-style license that can be
|
| # found in the LICENSE file.
|
|
|
| +import logging
|
| import os
|
| import sys
|
|
|
| +from telemetry import platform
|
| +
|
| # Get build/android scripts into our path.
|
| sys.path.append(
|
| os.path.abspath(
|
| os.path.join(os.path.dirname(__file__),
|
| '../../../build/android')))
|
| +
|
| +from pylib import perf_tests_helper # pylint: disable=F0401
|
| +from pylib import thermal_throttle # pylint: disable=F0401
|
| +
|
| try:
|
| from pylib import surface_stats_collector # pylint: disable=F0401
|
| except Exception:
|
| surface_stats_collector = None
|
|
|
|
|
| -class AndroidPlatform(object):
|
| +class AndroidPlatform(platform.Platform):
|
| def __init__(self, adb, window_package, window_activity):
|
| super(AndroidPlatform, self).__init__()
|
| self._adb = adb
|
| self._window_package = window_package
|
| self._window_activity = window_activity
|
| + self._surface_stats_collector = None
|
| + self._perf_tests_setup = perf_tests_helper.PerfTestSetup(adb)
|
| + self._thermal_throttle = None
|
| +
|
| + def IsRawDisplayFrameRateSupported(self):
|
| + return True
|
| +
|
| + def StartRawDisplayFrameRate(self, trace_tag):
|
| + assert not self._surface_stats_collector
|
| + self._surface_stats_collector = \
|
| + surface_stats_collector.SurfaceStatsCollector(
|
| + self._adb, self._window_package, self._window_activity, trace_tag)
|
| + self._surface_stats_collector.__enter__()
|
| +
|
| + def GetRawDisplayFrameRate(self):
|
| + self._surface_stats_collector.__exit__()
|
| + self._surface_stats_collector = None
|
| +
|
| + def SetFullPerformanceModeEnabled(self, enabled):
|
| + if enabled:
|
| + self._perf_tests_setup.SetUp()
|
| + else:
|
| + self._perf_tests_setup.TearDown()
|
| +
|
| + def CanMonitorThermalThrottling(self):
|
| + return True
|
| +
|
| + def StartMonitoringThermalThrottling(self):
|
| + assert not self._thermal_throttle
|
| + self._thermal_throttle = thermal_throttle.ThermalThrottle(self._adb)
|
| + if self._thermal_throttle.IsThrottled():
|
| + logging.warn('Device is being thermally throttled.')
|
|
|
| - def GetSurfaceCollector(self, trace_tag):
|
| - return surface_stats_collector.SurfaceStatsCollector(
|
| - self._adb, self._window_package, self._window_activity, trace_tag)
|
| + def StopMonitoringThermalThrottling(self):
|
| + has_been_throttled = self._thermal_throttle.HasBeenThrottled()
|
| + self._thermal_throttle = None
|
| + if has_been_throttled:
|
| + logging.warn('Device was thermally throttled during tests.')
|
| + return True
|
| + return False
|
|
|