| #!/usr/bin/python | |
| import optparse | |
| import sys | |
| import time | |
| import adbutil | |
| from devices import DEVICES | |
| def parse_options(argv): | |
| usage = 'Usage: %prog [options]' | |
| desc = 'Example: %prog' | |
| parser = optparse.OptionParser(usage=usage, description=desc) | |
| parser.add_option("-c", dest='clear', action="store_true") | |
| parser.add_option("-d", dest='device', action="store",) | |
| parser.add_option("-t", dest='trace', action="store_true") | |
| options, categories = parser.parse_args(argv[1:]) | |
| return (options, categories) | |
| def clear_data(device = None): | |
| if device != None: | |
| dev = DEVICES[device] | |
| adbutil.root(dev) | |
| adbutil.pm(dev, "clear", "com.android.benchmark") | |
| else: | |
| for name, dev in DEVICES.iteritems(): | |
| print("Clearing " + name) | |
| adbutil.root(dev) | |
| adbutil.pm(dev, "clear", "com.android.benchmark") | |
| def start_device(name, dev): | |
| print("Go " + name + "!") | |
| try: | |
| adbutil.am(dev, "force-stop", "com.android.benchmark") | |
| adbutil.wake(dev) | |
| adbutil.am(dev, "start", | |
| ["-n", "\"com.android.benchmark/.app.RunLocalBenchmarksActivity\"", | |
| "--eia", "\"com.android.benchmark.EXTRA_ENABLED_BENCHMARK_IDS\"", "\"0,1,2,3,4,5,6\"", | |
| "--ei", "\"com.android.benchmark.EXTRA_RUN_COUNT\"", "\"5\""]) | |
| except adbutil.AdbError: | |
| print "Couldn't launch " + name + "." | |
| def start_benchmark(device, trace): | |
| if device != None: | |
| start_device(device, DEVICES[device]) | |
| if trace: | |
| time.sleep(3) | |
| adbutil.trace(DEVICES[device]) | |
| else: | |
| if trace: | |
| print("Note: -t only valid with -d, can't trace") | |
| for name, dev in DEVICES.iteritems(): | |
| start_device(name, dev) | |
| def main(): | |
| options, categories = parse_options(sys.argv) | |
| if options.clear: | |
| print options.device | |
| clear_data(options.device) | |
| else: | |
| start_benchmark(options.device, options.trace) | |
| if __name__ == "__main__": | |
| main() |