Index: build/android/pylib/android_commands.py |
diff --git a/build/android/pylib/android_commands.py b/build/android/pylib/android_commands.py |
index 2dab2c1cfa4eaeca96cebdd2ee5595440365ebf0..e282ec86f1f144cbc6970520518c6cc0c9b259d4 100644 |
--- a/build/android/pylib/android_commands.py |
+++ b/build/android/pylib/android_commands.py |
@@ -65,6 +65,23 @@ MD5SUM_DEVICE_FOLDER = constants.TEST_EXECUTABLE_DIR + '/md5sum/' |
MD5SUM_DEVICE_PATH = MD5SUM_DEVICE_FOLDER + 'md5sum_bin' |
MD5SUM_LD_LIBRARY_PATH = 'LD_LIBRARY_PATH=%s' % MD5SUM_DEVICE_FOLDER |
+def GetEmulators(): |
+ """Returns a list of emulators. Does not filter by status (e.g. offline). |
+ |
+ Both devices starting with 'emulator' will be returned in below output: |
+ |
+ * daemon not running. starting it now on port 5037 * |
+ * daemon started successfully * |
+ List of devices attached |
+ 027c10494100b4d7 device |
+ emulator-5554 offline |
+ emulator-5558 device |
+ """ |
+ re_device = re.compile('^emulator-[0-9]+', re.MULTILINE) |
+ devices = re_device.findall(cmd_helper.GetCmdOutput([constants.ADB_PATH, |
+ 'devices'])) |
+ return devices |
+ |
def GetAVDs(): |
"""Returns a list of AVDs.""" |
@@ -73,11 +90,11 @@ def GetAVDs(): |
return avds |
-def GetAttachedDevices(hardware=True, emulator=True, offline=False): |
- """Returns a list of attached, android devices and emulators. |
+def GetAttachedDevices(): |
+ """Returns a list of attached, online android devices. |
If a preferred device has been set with ANDROID_SERIAL, it will be first in |
- the returned list. The arguments specify what devices to include in the list. |
+ the returned list. |
Example output: |
@@ -86,39 +103,10 @@ def GetAttachedDevices(hardware=True, emulator=True, offline=False): |
List of devices attached |
027c10494100b4d7 device |
emulator-5554 offline |
- |
- Args: |
- hardware: Include attached actual devices that are online. |
- emulator: Include emulators (i.e. AVD's) currently on host. |
- offline: Include devices and emulators that are offline. |
- |
- Returns: List of devices. |
""" |
- adb_devices_output = cmd_helper.GetCmdOutput([constants.ADB_PATH, 'devices']) |
- |
re_device = re.compile('^([a-zA-Z0-9_:.-]+)\tdevice$', re.MULTILINE) |
- online_devices = re_device.findall(adb_devices_output) |
- |
- re_device = re.compile('^(emulator-[0-9]+)\tdevice', re.MULTILINE) |
- emulator_devices = re_device.findall(adb_devices_output) |
- |
- re_device = re.compile('^([a-zA-Z0-9_:.-]+)\toffline$', re.MULTILINE) |
- offline_devices = re_device.findall(adb_devices_output) |
- |
- devices = [] |
- # First determine list of online devices (e.g. hardware and/or emulator). |
- if hardware and emulator: |
- devices = online_devices |
- elif hardware: |
- devices = [device for device in online_devices |
- if device not in emulator_devices] |
- elif emulator: |
- devices = emulator_devices |
- |
- # Now add offline devices if offline is true |
- if offline: |
- devices = devices + offline_devices |
- |
+ devices = re_device.findall(cmd_helper.GetCmdOutput([constants.ADB_PATH, |
+ 'devices'])) |
preferred_device = os.environ.get('ANDROID_SERIAL') |
if preferred_device in devices: |
devices.remove(preferred_device) |
@@ -126,6 +114,16 @@ def GetAttachedDevices(hardware=True, emulator=True, offline=False): |
return devices |
+def GetAttachedOfflineDevices(): |
+ """Returns a list of attached, offline android devices. |
+ |
+ Returns: List of devices with status 'offline'. |
+ """ |
+ re_device = re.compile('^([a-zA-Z0-9_:.-]+)\toffline$', re.MULTILINE) |
+ return re_device.findall(cmd_helper.GetCmdOutput([constants.ADB_PATH, |
+ 'devices'])) |
+ |
+ |
def IsDeviceAttached(device): |
"""Return true if the device is attached and online.""" |
return device in GetAttachedDevices() |