Index: build/android/pylib/device/device_utils.py |
diff --git a/build/android/pylib/device/device_utils.py b/build/android/pylib/device/device_utils.py |
index 403f235eabdc6877bc79e225ecdf9a83ee08b693..553e9602ffc0a9ebfba319bea746fc460e86b605 100644 |
--- a/build/android/pylib/device/device_utils.py |
+++ b/build/android/pylib/device/device_utils.py |
@@ -19,6 +19,7 @@ import zipfile |
import pylib.android_commands |
from pylib import cmd_helper |
+from pylib import constants |
from pylib.device import adb_wrapper |
from pylib.device import decorators |
from pylib.device import device_errors |
@@ -42,7 +43,17 @@ def GetAVDs(): |
Returns: |
A list containing the configured AVDs. |
""" |
- return pylib.android_commands.GetAVDs() |
+ lines = cmd_helper.GetCmdOutput([ |
+ os.path.join(constants.ANDROID_SDK_ROOT, 'tools', 'android'), |
+ 'list', 'avd']).splitlines() |
+ avds = [] |
+ for line in lines: |
+ if 'Name:' not in line: |
+ continue |
+ key, value = (s.strip() for s in line.split(':', 1)) |
+ if key == 'Name': |
+ avds.append(value) |
+ return avds |
@decorators.WithExplicitTimeoutAndRetries( |
@@ -343,30 +354,15 @@ class DeviceUtils(object): |
DeviceUnreachableError on missing device. |
""" |
package_name = apk_helper.GetPackageName(apk_path) |
- device_path = self.old_interface.GetApplicationPath(package_name) |
+ device_path = self.GetApplicationPath(package_name) |
if device_path is not None: |
- files_changed = self.old_interface.GetFilesChanged( |
- apk_path, device_path, ignore_filenames=True) |
- if len(files_changed) > 0: |
- should_install = True |
- if not reinstall: |
- out = self.old_interface.Uninstall(package_name) |
- for line in out.splitlines(): |
- if 'Failure' in line: |
- raise device_errors.CommandFailedError(line.strip(), str(self)) |
- else: |
- should_install = False |
+ should_install = bool(self._GetChangedFilesImpl(apk_path, device_path)) |
+ if should_install and not reinstall: |
+ self.adb.Uninstall(package_name) |
else: |
should_install = True |
if should_install: |
- try: |
- out = self.old_interface.Install(apk_path, reinstall=reinstall) |
- for line in out.splitlines(): |
- if 'Failure' in line: |
- raise device_errors.CommandFailedError(line.strip(), str(self)) |
- except AssertionError as e: |
- raise device_errors.CommandFailedError( |
- str(e), str(self)), None, sys.exc_info()[2] |
+ self.adb.Install(apk_path, reinstall=reinstall) |
@decorators.WithTimeoutAndRetriesFromInstance() |
def RunShellCommand(self, cmd, check_return=False, cwd=None, env=None, |