2 # Copyright 2013 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
11 BUILD_ANDROID_DIR = os.path.join(os.path.dirname(__file__),
16 sys.path.append(BUILD_ANDROID_DIR)
17 from pylib import android_commands
18 from pylib import constants
19 from pylib import flag_changer
22 DEFAULT_BROWSER = 'chrome'
25 ACTION_PACKAGE = 'org.chromium.base'
27 'moderate' : ACTION_PACKAGE + '.ACTION_TRIM_MEMORY_MODERATE',
28 'critical' : ACTION_PACKAGE + '.ACTION_TRIM_MEMORY_RUNNING_CRITICAL',
29 'complete' : ACTION_PACKAGE + '.ACTION_TRIM_MEMORY'
31 ACTION_LOW = ACTION_PACKAGE + '.ACTION_LOW_MEMORY'
33 # Command Line Constants
34 ENABLE_TEST_INTENTS_FLAG = '--enable-test-intents'
37 option_parser = optparse.OptionParser()
38 option_parser.add_option('-l',
40 help='Simulate Activity#onLowMemory()',
42 option_parser.add_option('-t',
44 help=('Simulate Activity#onTrimMemory(...) with ' +
45 ', '.join(ACTION_TRIM.keys())),
47 option_parser.add_option('-b',
49 default=DEFAULT_BROWSER,
50 help=('Which browser to use. One of ' +
51 ', '.join(constants.PACKAGE_INFO.keys()) +
52 ' [default: %default]'),
55 (options, args) = option_parser.parse_args(argv)
58 print 'Unknown argument: ', args[1:]
59 option_parser.print_help()
62 if options.low and options.trim:
63 option_parser.error('options --low and --trim are mutually exclusive')
65 if not options.low and not options.trim:
66 option_parser.print_help()
72 elif options.trim in ACTION_TRIM.keys():
73 action = ACTION_TRIM[options.trim]
76 option_parser.print_help()
79 if not options.browser in constants.PACKAGE_INFO.keys():
80 option_parser.error('Unknown browser option ' + options.browser)
82 package_info = constants.PACKAGE_INFO[options.browser]
84 package = package_info.package
85 activity = package_info.activity
87 adb = android_commands.AndroidCommands(device=None)
90 flags = flag_changer.FlagChanger(adb, package_info.cmdline_file)
91 if ENABLE_TEST_INTENTS_FLAG not in flags.Get():
92 flags.AddFlags([ENABLE_TEST_INTENTS_FLAG])
94 adb.StartActivity(package, activity, action=action)
96 if __name__ == '__main__':
97 sys.exit(main(sys.argv))