diff --git a/dev/devicelab/lib/framework/devices.dart b/dev/devicelab/lib/framework/devices.dart index 6992765576..7a210bcc9b 100644 --- a/dev/devicelab/lib/framework/devices.dart +++ b/dev/devicelab/lib/framework/devices.dart @@ -128,6 +128,9 @@ abstract class Device { /// A unique device identifier. String get deviceId; + /// Switch the device into fixed/regular performance mode. + Future toggleFixedPerformanceMode(bool enable) async {} + /// Whether the device is awake. Future isAwake(); @@ -589,6 +592,11 @@ class AndroidDevice extends Device { String deviceInfo = ''; int apiLevel = 0; + @override + Future toggleFixedPerformanceMode(bool enable) async { + await shellExec('cmd', ['power', 'set-fixed-performance-mode-enabled', if (enable) 'true' else 'false']); + } + /// Whether the device is awake. @override Future isAwake() async { diff --git a/dev/devicelab/lib/tasks/perf_tests.dart b/dev/devicelab/lib/tasks/perf_tests.dart index f8b7e07ff2..28f521587d 100644 --- a/dev/devicelab/lib/tasks/perf_tests.dart +++ b/dev/devicelab/lib/tasks/perf_tests.dart @@ -1311,6 +1311,8 @@ class PerfTest { late Device selectedDevice; selectedDevice = device ?? await devices.workingDevice; await selectedDevice.unlock(); + await selectedDevice.toggleFixedPerformanceMode(true); + final String deviceId = selectedDevice.deviceId; final String? localEngine = localEngineFromEnv; final String? localEngineHost = localEngineHostFromEnv; @@ -1415,6 +1417,7 @@ class PerfTest { } finally { await resetManifest(); await resetPlist(); + await selectedDevice.toggleFixedPerformanceMode(false); } final Map data = json.decode(