Home | History | Annotate | Download | only in scripts
      1 #!/usr/bin/env python
      2 #
      3 # Copyright (C) 2017 The Android Open Source Project
      4 #
      5 # Licensed under the Apache License, Version 2.0 (the "License");
      6 # you may not use this file except in compliance with the License.
      7 # You may obtain a copy of the License at
      8 #
      9 #      http://www.apache.org/licenses/LICENSE-2.0
     10 #
     11 # Unless required by applicable law or agreed to in writing, software
     12 # distributed under the License is distributed on an "AS IS" BASIS,
     13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 # See the License for the specific language governing permissions and
     15 # limitations under the License.
     16 #
     17 
     18 """run_simpleperf_on_device.py:
     19     It downloads simpleperf to /data/local/tmp on device, and run it with all given arguments.
     20     It saves the time downloading simpleperf and using `adb shell` directly.
     21 """
     22 import subprocess
     23 import sys
     24 from utils import *
     25 
     26 def main():
     27     disable_debug_log()
     28     adb = AdbHelper()
     29     device_arch = adb.get_device_arch()
     30     simpleperf_binary = get_target_binary_path(device_arch, 'simpleperf')
     31     adb.check_run(['push', simpleperf_binary, '/data/local/tmp'])
     32     adb.check_run(['shell', 'chmod', 'a+x', '/data/local/tmp/simpleperf'])
     33     shell_cmd = 'cd /data/local/tmp && ./simpleperf ' + ' '.join(sys.argv[1:])
     34     sys.exit(subprocess.call([adb.adb_path, 'shell', shell_cmd]))
     35 
     36 if __name__ == '__main__':
     37     main()