aboutsummaryrefslogtreecommitdiff
path: root/opcontrol_remote
diff options
context:
space:
mode:
Diffstat (limited to 'opcontrol_remote')
-rw-r--r--opcontrol_remote94
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()