diff options
author | Yabin Cui <yabinc@google.com> | 2017-06-06 01:32:55 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-06-06 01:32:55 +0000 |
commit | 5ea663c3ab2ffaa304ff75918bdd8a183f55643d (patch) | |
tree | 6eca8eb1acb4ea4d70caa5fa553d7e4b9f19e54c | |
parent | f13c66de8846091e1865ebac142e7d4c80b2c9b6 (diff) | |
parent | d98c857902524791f7a050b5a4fc7cd9d969476f (diff) | |
download | extras-5ea663c3ab2ffaa304ff75918bdd8a183f55643d.tar.gz |
Merge "simpleperf: fix app_profiler.py."
am: d98c857902
Change-Id: I24b7656d7670c89ea2ff8de434d3ac69f92e70e2
-rw-r--r-- | simpleperf/scripts/app_profiler.py | 10 | ||||
-rw-r--r-- | simpleperf/scripts/utils.py | 12 |
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 |