| import os, subprocess, tempfile |
| import time |
| |
| ANDROID_TMPDIR = '/data/local/tmp/Output' |
| ADB = os.environ.get('ADB', 'adb') |
| |
| verbose = False |
| if os.environ.get('ANDROID_RUN_VERBOSE') == '1': |
| verbose = True |
| |
| def adb(args): |
| if verbose: |
| print args |
| devnull = open(os.devnull, 'w') |
| return subprocess.call([ADB] + args, stdout=devnull, stderr=subprocess.STDOUT) |
| |
| def pull_from_device(path): |
| tmp = tempfile.mktemp() |
| adb(['pull', path, tmp]) |
| text = open(tmp, 'r').read() |
| os.unlink(tmp) |
| return text |
| |
| def push_to_device(path): |
| # Workaround for https://code.google.com/p/android/issues/detail?id=65857 |
| dst_path = os.path.join(ANDROID_TMPDIR, os.path.basename(path)) |
| tmp_path = dst_path + '.push' |
| adb(['push', path, tmp_path]) |
| adb(['shell', 'cp "%s" "%s" 2>&1' % (tmp_path, dst_path)]) |