summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYabin Cui <yabinc@google.com>2017-06-06 01:24:10 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2017-06-06 01:24:12 +0000
commitd98c857902524791f7a050b5a4fc7cd9d969476f (patch)
tree6eca8eb1acb4ea4d70caa5fa553d7e4b9f19e54c
parentb33edada9583f91130b607c26c9ad16365c84179 (diff)
parent21db24b10e5fd3f1833569ae5f957e114172e1d2 (diff)
downloadextras-d98c857902524791f7a050b5a4fc7cd9d969476f.tar.gz
Merge "simpleperf: fix app_profiler.py."
-rw-r--r--simpleperf/scripts/app_profiler.py10
-rw-r--r--simpleperf/scripts/utils.py12
2 files changed, 10 insertions, 12 deletions
diff --git a/simpleperf/scripts/app_profiler.py b/simpleperf/scripts/app_profiler.py
index ea181f16..25098d30 100644
--- a/simpleperf/scripts/app_profiler.py
+++ b/simpleperf/scripts/app_profiler.py
@@ -121,7 +121,7 @@ class AppProfiler(object):
self.adb.set_property('security.perf_harden', '0')
if self.is_root_device:
# We can enable kernel symbols
- self.adb.run(['shell', 'echo', '0', '>/proc/sys/kernel/kptr_restrict'])
+ self.adb.run(['shell', 'echo 0 >/proc/sys/kernel/kptr_restrict'])
def _recompile_app(self):
@@ -271,7 +271,7 @@ class AppProfiler(object):
def collect_profiling_data(self):
- self.run_in_app_dir(['cat', 'perf.data', '>' + self.config['perf_data_path']])
+ self.run_in_app_dir(['cat', 'perf.data'], self.config['perf_data_path'])
config = copy.copy(self.config)
config['symfs_dirs'] = []
if self.config['native_lib_dir']:
@@ -280,13 +280,13 @@ class AppProfiler(object):
binary_cache_builder.build_binary_cache()
- def run_in_app_dir(self, args):
+ def run_in_app_dir(self, args, stdout_file=None):
if self.is_root_device:
cmd = 'cd /data/data/' + self.config['app_package_name'] + ' && ' + (' '.join(args))
- return self.adb.check_run_and_return_output(['shell', cmd])
+ return self.adb.check_run_and_return_output(['shell', cmd], stdout_file)
else:
return self.adb.check_run_and_return_output(
- ['shell', 'run-as', self.config['app_package_name']] + args)
+ ['shell', 'run-as', self.config['app_package_name']] + args, stdout_file)
if __name__ == '__main__':
diff --git a/simpleperf/scripts/utils.py b/simpleperf/scripts/utils.py
index 5474676d..a0b3b3ba 100644
--- a/simpleperf/scripts/utils.py
+++ b/simpleperf/scripts/utils.py
@@ -104,13 +104,12 @@ class AdbHelper(object):
return self.run_and_return_output(adb_args)[0]
- def run_and_return_output(self, adb_args):
+ def run_and_return_output(self, adb_args, stdout_file=None):
adb_args = [self.adb_path] + adb_args
log_debug('run adb cmd: %s' % adb_args)
- if adb_args[-1][0] == '>':
- stdout_file = adb_args[-1][1:]
+ if stdout_file:
with open(stdout_file, 'wb') as stdout_fh:
- returncode = subprocess.call(adb_args[:-1], stdout=stdout_fh)
+ returncode = subprocess.call(adb_args, stdout=stdout_fh)
stdoutdata = ''
else:
subproc = subprocess.Popen(adb_args, stdout=subprocess.PIPE)
@@ -123,13 +122,12 @@ class AdbHelper(object):
log_debug('run adb cmd: %s [result %s]' % (adb_args, result))
return (result, stdoutdata)
-
def check_run(self, adb_args):
self.check_run_and_return_output(adb_args)
- def check_run_and_return_output(self, adb_args):
- result, stdoutdata = self.run_and_return_output(adb_args)
+ def check_run_and_return_output(self, adb_args, stdout_file=None):
+ result, stdoutdata = self.run_and_return_output(adb_args, stdout_file)
if not result:
log_fatal('run "adb %s" failed' % adb_args)
return stdoutdata