diff options
Diffstat (limited to 'opcontrol_remote')
-rw-r--r-- | opcontrol_remote | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/opcontrol_remote b/opcontrol_remote new file mode 100644 index 0000000..b095e77 --- /dev/null +++ b/opcontrol_remote @@ -0,0 +1,94 @@ +#!/usr/bin/env python2.6 +# +# Copyright (C) 2011 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# +# Remotely controls an OProfile session on an Android device. +# + +import os +import sys +import getopt + +class Adb: + def __init__(self, serial_number): + self._default_args = '' + if serial_number != None: + self._default_args = '-s ' + serial_number + + def shell(self, command): + result = os.system('adb%s shell %s' % (self._default_args, command) + return result + +def usage(): + print "Usage:" + sys.argv[0] + print " -h, --help : show this help text" + print " -s, --serial=number : the serial number of the device being profiled" + print " --setup : setup profiler" + print " --start : start profiling" + print " --stop : stop profiling" + print + +def main(): + try: + opts, args - getopt.getopt(sys.argv[1:], "hs:", ["help", "serial=", "setup", "start", "stop"]) + except getopt.GetoptError, e: + usage() + print str(e) + sys.exit(1) + + serial_number = None + command = None + for o, a in opts: + if o in ('-h', '--help'): + usage() + sys.exit() + elif o in ('-s', '--serial'): + serial_number = a + elif o in ('--setup'): + command = 'setup' + elif o in ('--start'): + command = 'start' + elif o in ('--stop'): + command = 'stop' + else: + assert False, 'unhandled option' + o + + adb = Adb(serial_number) + + if command == 'setup': + setup(adb) + elif command == 'start': + start(adb) + elif command == 'stop': + stop(adb) + else: + usage() + print 'A command must be specified.' + sys.exit(1) + +def setup(adb): + adb.shell + + pass + +def start(adb): + pass + +def stop(adb): + pass + +main() |