Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(118)

Unified Diff: tools/telemetry/telemetry/core/platform/android_device.py

Issue 522553002: Move remote platforms creation logic from android_browser_finder to platform (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix android_browser_finder_unittest Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/core/platform/android_device.py
diff --git a/tools/telemetry/telemetry/core/platform/android_device.py b/tools/telemetry/telemetry/core/platform/android_device.py
new file mode 100644
index 0000000000000000000000000000000000000000..f72a18619bff18684364dfb679729a22a85ad5ff
--- /dev/null
+++ b/tools/telemetry/telemetry/core/platform/android_device.py
@@ -0,0 +1,63 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+import logging
+
+from telemetry.core import util
+from telemetry.core.backends import adb_commands
+from telemetry.core.platform import device
+from telemetry.core.platform.profiler import monsoon
+
+
+class AndroidDevice(device.Device):
+ """ Class represents information for connecting to an android device.
+
+ Attributes:
+ device_id: the device's serial string created by adb to uniquely
+ identify an emulator/device instance. This string can be found by running
+ 'adb devices' command
+ enable_performance_mode: when this is set to True, android platform will be
+ set to high performance mode after browser is started.
+ """
+ def __init__(self, device_id, enable_performance_mode=False):
+ super(AndroidDevice, self).__init__(
+ name='Android device %s' % device_id, guid=device_id)
+ self._device_id = device_id
+ self._enable_performance_mode = enable_performance_mode
+
+ @classmethod
+ def GetAllConnectedDevices(cls):
+ device_serials = adb_commands.GetAttachedDevices()
+ # The monsoon provides power for the device, so for devices with no
+ # real battery, we need to turn them on after the monsoon enables voltage
+ # output to the device.
+ if not device_serials:
+ try:
+ m = monsoon.Monsoon(wait=False)
+ m.SetUsbPassthrough(1)
+ m.SetVoltage(3.8)
+ m.SetMaxCurrent(8)
+ logging.warn("""
+Monsoon power monitor detected, but no Android devices.
+
+The Monsoon's power output has been enabled. Please now ensure that:
+
+ 1. The Monsoon's front and back USB are connected to the host.
+ 2. The device is connected to the Monsoon's main and USB channels.
+ 3. The device is turned on.
+
+Waiting for device...
+""")
+ util.WaitFor(adb_commands.GetAttachedDevices, 600)
+ device_serials = adb_commands.GetAttachedDevices()
+ except IOError:
+ return []
+ return [AndroidDevice(s) for s in device_serials]
+
+ @property
+ def device_id(self):
+ return self._device_id
+
+ @property
+ def enable_performance_mode(self):
+ return self._enable_performance_mode

Powered by Google App Engine
This is Rietveld 408576698