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

Side by Side Diff: build/android/pylib/android_commands.py

Issue 54123005: android: Add screen recording tool (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: -f instead of -o Created 7 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | build/android/pylib/cmd_helper.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Provides an interface to communicate with the device via the adb command. 5 """Provides an interface to communicate with the device via the adb command.
6 6
7 Assumes adb binary is currently on system path. 7 Assumes adb binary is currently on system path.
8 """ 8 """
9 9
10 import collections 10 import collections
11 import datetime 11 import datetime
12 import logging 12 import logging
13 import os 13 import os
14 import re 14 import re
15 import shlex 15 import shlex
16 import signal 16 import signal
17 import subprocess 17 import subprocess
18 import sys 18 import sys
19 import tempfile 19 import tempfile
20 import time 20 import time
21 21
22 import cmd_helper 22 import cmd_helper
23 import constants 23 import constants
24 import screenshot
24 try: 25 try:
25 from pylib import pexpect 26 from pylib import pexpect
26 except: 27 except:
27 pexpect = None 28 pexpect = None
28 29
29 sys.path.append(os.path.join( 30 sys.path.append(os.path.join(
30 constants.DIR_SOURCE_ROOT, 'third_party', 'android_testrunner')) 31 constants.DIR_SOURCE_ROOT, 'third_party', 'android_testrunner'))
31 import adb_interface 32 import adb_interface
32 import am_instrument_parser 33 import am_instrument_parser
33 import errors 34 import errors
(...skipping 1537 matching lines...) Expand 10 before | Expand all | Expand 10 after
1571 except ValueError: 1572 except ValueError:
1572 if IsDeviceAttached(self._device): 1573 if IsDeviceAttached(self._device):
1573 raise errors.DeviceUnresponsiveError('Device may be offline.') 1574 raise errors.DeviceUnresponsiveError('Device may be offline.')
1574 1575
1575 return False 1576 return False
1576 1577
1577 def TakeScreenshot(self, host_file): 1578 def TakeScreenshot(self, host_file):
1578 """Saves a screenshot image to |host_file| on the host. 1579 """Saves a screenshot image to |host_file| on the host.
1579 1580
1580 Args: 1581 Args:
1581 host_file: Absolute path to the image file to store on the host. 1582 host_file: Absolute path to the image file to store on the host or None to
1583 use an autogenerated file name.
1584
1585 Returns:
1586 Resulting host file name of the screenshot.
1582 """ 1587 """
1583 host_dir = os.path.dirname(host_file) 1588 return screenshot.TakeScreenshot(self, host_file)
1584 if not os.path.exists(host_dir):
1585 os.makedirs(host_dir)
1586 device_file = '%s/screenshot.png' % self.GetExternalStorage()
1587 self.RunShellCommand('/system/bin/screencap -p %s' % device_file)
1588 self.PullFileFromDevice(device_file, host_file)
1589 1589
1590 def PullFileFromDevice(self, device_file, host_file): 1590 def PullFileFromDevice(self, device_file, host_file):
1591 """Download |device_file| on the device from to |host_file| on the host. 1591 """Download |device_file| on the device from to |host_file| on the host.
1592 1592
1593 Args: 1593 Args:
1594 device_file: Absolute path to the file to retrieve from the device. 1594 device_file: Absolute path to the file to retrieve from the device.
1595 host_file: Absolute path to the file to store on the host. 1595 host_file: Absolute path to the file to store on the host.
1596 """ 1596 """
1597 assert self._adb.Pull(device_file, host_file) 1597 assert self._adb.Pull(device_file, host_file)
1598 assert os.path.exists(host_file) 1598 assert os.path.exists(host_file)
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1662 """ 1662 """
1663 def __init__(self, output): 1663 def __init__(self, output):
1664 self._output = output 1664 self._output = output
1665 1665
1666 def write(self, data): 1666 def write(self, data):
1667 data = data.replace('\r\r\n', '\n') 1667 data = data.replace('\r\r\n', '\n')
1668 self._output.write(data) 1668 self._output.write(data)
1669 1669
1670 def flush(self): 1670 def flush(self):
1671 self._output.flush() 1671 self._output.flush()
OLDNEW
« no previous file with comments | « no previous file | build/android/pylib/cmd_helper.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698