用命令打开android应用
2014-05-22 10:15
246 查看
在开发android应用过程中,往往需要做一些压力测试,这通常需要写一些脚本来完成,这样我们就不需要时时刻刻的操作手机。因此往往需要用命令打开我们的应用。
使用的命令是
[align=left]
使用此命令可以从cmd控制台启动 activity, services;发送 broadcast 等等。
下面是其详细的参数解释:
其操作实例如下:
但是我们如何才能知道其包名跟类名呢?
可以通过下面的办法:
在本实例中我打开的camera应用,因此可以看到下面的log信息:
上面标红的即为其包名和类名:
使用的命令是
[align=left]
adb shell am[/align]
使用此命令可以从cmd控制台启动 activity, services;发送 broadcast 等等。
下面是其详细的参数解释:
vincent@vincent:~/work/imx214$ adb shell am usage: am [subcommand] [options] usage: am start [-D] [-W] [-P <FILE>] [--start-profiler <FILE>] [--R COUNT] [-S] [--opengl-trace] [--user <USER_ID> | current] <INTENT> am startservice [--user <USER_ID> | current] <INTENT> am stopservice [--user <USER_ID> | current] <INTENT> am force-stop [--user <USER_ID> | all | current] <PACKAGE> am kill [--user <USER_ID> | all | current] <PACKAGE> am kill-all am broadcast [--user <USER_ID> | all | current] <INTENT> am instrument [-r] [-e <NAME> <VALUE>] [-p <FILE>] [-w] [--user <USER_ID> | current] [--no-window-animation] <COMPONENT> am profile start [--user <USER_ID> current] <PROCESS> <FILE> am profile stop [--user <USER_ID> current] [<PROCESS>] am dumpheap [--user <USER_ID> current] [-n] <PROCESS> <FILE> am set-debug-app [-w] [--persistent] <PACKAGE> am clear-debug-app am monitor [--gdb <port>] am hang [--allow-restart] am restart am idle-maintenance am screen-compat [on|off] <PACKAGE> am to-uri [INTENT] am to-intent-uri [INTENT] am switch-user <USER_ID> am stop-user <USER_ID> am stack create <TASK_ID> <RELATIVE_STACK_BOX_ID> <POSITION> <WEIGHT> am stack movetask <TASK_ID> <STACK_ID> [true|false] am stack resize <STACK_ID> <WEIGHT> am stack boxes am stack box <STACK_BOX_ID> am start: start an Activity. Options are: -D: enable debugging -W: wait for launch to complete --start-profiler <FILE>: start profiler and send results to <FILE> -P <FILE>: like above, but profiling stops when app goes idle -R: repeat the activity launch <COUNT> times. Prior to each repeat, the top activity will be finished. -S: force stop the target app before starting the activity --opengl-trace: enable tracing of OpenGL functions --user <USER_ID> | current: Specify which user to run as; if not specified then run as the current user. am startservice: start a Service. Options are: --user <USER_ID> | current: Specify which user to run as; if not specified then run as the current user. am stopservice: stop a Service. Options are: --user <USER_ID> | current: Specify which user to run as; if not specified then run as the current user. am force-stop: force stop everything associated with <PACKAGE>. --user <USER_ID> | all | current: Specify user to force stop; all users if not specified. am kill: Kill all processes associated with <PACKAGE>. Only kills. processes that are safe to kill -- that is, will not impact the user experience. --user <USER_ID> | all | current: Specify user whose processes to kill; all users if not specified. am kill-all: Kill all background processes. am broadcast: send a broadcast Intent. Options are: --user <USER_ID> | all | current: Specify which user to send to; if not specified then send to all users. --receiver-permission <PERMISSION>: Require receiver to hold permission. am instrument: start an Instrumentation. Typically this target <COMPONENT> is the form <TEST_PACKAGE>/<RUNNER_CLASS>. Options are: -r: print raw results (otherwise decode REPORT_KEY_STREAMRESULT). Use with [-e perf true] to generate raw output for performance measurements. -e <NAME> <VALUE>: set argument <NAME> to <VALUE>. For test runners a common form is [-e <testrunner_flag> <value>[,<value>...]]. -p <FILE>: write profiling data to <FILE> -w: wait for instrumentation to finish before returning. Required for test runners. --user <USER_ID> | current: Specify user instrumentation runs in; current user if not specified. --no-window-animation: turn off window animations while running. am profile: start and stop profiler on a process. The given <PROCESS> argument may be either a process name or pid. Options are: --user <USER_ID> | current: When supplying a process name, specify user of process to profile; uses current user if not specified. am dumpheap: dump the heap of a process. The given <PROCESS> argument may be either a process name or pid. Options are: -n: dump native heap instead of managed heap --user <USER_ID> | current: When supplying a process name, specify user of process to dump; uses current user if not specified. am set-debug-app: set application <PACKAGE> to debug. Options are: -w: wait for debugger when application starts --persistent: retain this value am clear-debug-app: clear the previously set-debug-app. am bug-report: request bug report generation; will launch UI when done to select where it should be delivered. am monitor: start monitoring for crashes or ANRs. --gdb: start gdbserv on the given port at crash/ANR am hang: hang the system. --allow-restart: allow watchdog to perform normal system restart am restart: restart the user-space system. am idle-maintenance: perform idle maintenance now. am screen-compat: control screen compatibility mode of <PACKAGE>. am to-uri: print the given Intent specification as a URI. am to-intent-uri: print the given Intent specification as an intent: URI. am switch-user: switch to put USER_ID in the foreground, starting execution of that user if it is currently stopped. am stop-user: stop execution of USER_ID, not allowing it to run any code until a later explicit switch to it. am stack create: create a new stack relative to an existing one. <TASK_ID>: the task to populate the new stack with. Must exist. <RELATIVE_STACK_BOX_ID>: existing stack box's id. <POSITION>: 0: before <RELATIVE_STACK_BOX_ID>, per RTL/LTR configuration, 1: after <RELATIVE_STACK_BOX_ID>, per RTL/LTR configuration, 2: to left of <RELATIVE_STACK_BOX_ID>, 3: to right of <RELATIVE_STACK_BOX_ID>, 4: above <RELATIVE_STACK_BOX_ID>, 5: below <RELATIVE_STACK_BOX_ID> <WEIGHT>: float between 0.2 and 0.8 inclusive. am stack movetask: move <TASK_ID> from its current stack to the top (true) or bottom (false) of <STACK_ID>. am stack resize: change <STACK_ID> relative size to new <WEIGHT>. am stack boxes: list the hierarchy of stack boxes and their contents. am stack box: list the hierarchy of stack boxes rooted at <STACK_BOX_ID>. <INTENT> specifications include these flags and arguments: [-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>] [-c <CATEGORY> [-c <CATEGORY>] ...] [-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...] [--esn <EXTRA_KEY> ...] [--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...] [--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...] [--el <EXTRA_KEY> <EXTRA_LONG_VALUE> ...] [--ef <EXTRA_KEY> <EXTRA_FLOAT_VALUE> ...] [--eu <EXTRA_KEY> <EXTRA_URI_VALUE> ...] [--ecn <EXTRA_KEY> <EXTRA_COMPONENT_NAME_VALUE>] [--eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]] [--ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]] [--efa <EXTRA_KEY> <EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...]] [-n <COMPONENT>] [-f <FLAGS>] [--grant-read-uri-permission] [--grant-write-uri-permission] [--debug-log-resolution] [--exclude-stopped-packages] [--include-stopped-packages] [--activity-brought-to-front] [--activity-clear-top] [--activity-clear-when-task-reset] [--activity-exclude-from-recents] [--activity-launched-from-history] [--activity-multiple-task] [--activity-no-animation] [--activity-no-history] [--activity-no-user-action] [--activity-previous-is-top] [--activity-reorder-to-front] [--activity-reset-task-if-needed] [--activity-single-top] [--activity-clear-task] [--activity-task-on-home] [--receiver-registered-only] [--receiver-replace-pending] [--selector] [<URI> | <PACKAGE> | <COMPONENT>]
其操作实例如下:
adb shell am start -n 包名/包名+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,
但是我们如何才能知道其包名跟类名呢?
可以通过下面的办法:
adb logcat | grep ActivityManager
在本实例中我打开的camera应用,因此可以看到下面的log信息:
I/ActivityManager( 1097): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=<span style="color:#FF0000;">com.android.camera2/com.android.camera.CameraActivity</span> bnds=[212,1776][340,1904]} from pid 1395
上面标红的即为其包名和类名:
vincent@vincent:~$ adb shell am start -W -n com.android.camera2/com.android.camera.CameraActivity Starting: Intent { cmp=com.android.camera2/com.android.camera.CameraActivity } Status: ok Activity: com.android.camera2/com.android.camera.CameraActivity ThisTime: 505 TotalTime: 505 Complete
相关文章推荐
- Android使用am命令实现拨打电话、打开应用
- Android使用am命令实现拨打电话、打开应用
- Eclipse打开Android应用工程的错误提示:invalid project description
- 打开其他android应用代码
- android 打开第三方应用 跳转
- 五十二、使用Adb命令卸载android应用配置方法
- Android系统apk应用的另一种启动方法---am命令---张子芳
- Android系统中终端下打开浏览器的命令
- Android 点击链接打开应用
- Android应用启动时,焦点直接在EditText上,输入法直接打开,影响界面美观。
- Android中设置自己应用为默认打开
- Android Intent应用,打开网页,安装程序,打电话,打开地图等功能
- 【转】 Android应用启动时,焦点直接在EditText上,输入法直接打开,影响界面美观。
- 打开android命令窗口设置端口映射
- Android工程测试:命令码(在“拨号”应用中,输入命令码即可)
- Android从桌面打开图标,发现是之前未返回的应用的解决方法
- android/iPhone:如何从browser直接打开应用程序或者打开应用商店(如果没有应用程序)
- android cmd adb命令安装和删除apk应用
- android/iPhone:如何从browser直接打开应用程序或者打开应用商店(如果没有应用程序)
- Android摇一摇打开应用