ADB로 Activity 관리하기

2014. 1. 7. 10:42Programing/Android / Java

1. am monitor

- activity manager monitoring을 할 수 있다.


adb shell am monitor

Monitoring activity manager...  available commands:

(q)uit: finish monitoring

** Activity starting: com.android.mms

** Activity starting: com.android.gallery3d

** Activity resuming: com.android.mms

** Activity resuming: com.android.launcher

** Activity starting: com.android.contacts


2. adb shell am broadcast 

- broadcast intent를 날릴 수 있다.


adb shell am broadcast -a android.intent.action.DIAL

Broadcasting: Intent { act=android.intent.action.DIAL }

Broadcast completed: result=0


3. adb shell am force-stop

- 특정 패키지를 멈출 수 있다.


4. adb shell am start 

- 특정 activity를 실행


adb shell am start -n com.android.settings/com.android.settings.Settings

Starting: Intent { cmp=com.android.settings/.Settings }


adb shell am start -n com.android.phone/com.android.phone.MobileSettings

같은 특정 Root 권한이 있어야만 호출이 가능한 Activity 들은

adb root 이후 또는 루팅 후 호출이 가능하다.



5. am 사용 방법 및 정의 

usage: am [subcommand] [options]

usage: am start [-D] [-W] [-P <FILE>] [--start-profiler <FILE>]

               [--R COUNT] [-S] [--opengl-trace] <INTENT>

        am startservice <INTENT>

        am force-stop <PACKAGE>

        am kill <PACKAGE>

        am kill-all

        am broadcast <INTENT>

        am instrument [-r] [-e <NAME> <VALUE>] [-p <FILE>] [-w]

               [--no-window-animation] <COMPONENT>

        am profile start <PROCESS> <FILE>

        am profile stop [<PROCESS>]

        am dumpheap [flags] <PROCESS> <FILE>

        am set-debug-app [-w] [--persistent] <PACKAGE>

        am clear-debug-app

        am monitor [--gdb <port>]

        am screen-compat [on|off] <PACKAGE>

        am display-size [reset|MxN]

        am to-uri [INTENT]

        am to-intent-uri [INTENT]


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


am startservice: start a Service.


am force-stop: force stop everything associated with <PACKAGE>.


am kill: Kill all processes associated with <PACKAGE>.  Only kills.

  processes that are safe to kill -- that is, will not impact the user

  experience.


am kill-all: Kill all background processes.


am broadcast: send a broadcast Intent.


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.

    --no-window-animation : turn off window animations will running.


am profile: start and stop profiler on a process.


am dumpheap: dump the heap of a process.  

  Options are:

    -n : dump native heap instead of managed heap


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 monitor: start monitoring for crashes or ANRs.

    --gdb : start gdbserv on the given port at crash/ANR


am screen-compat: control screen compatibility mode of <PACKAGE>.


am display-size: override display size.


am to-uri: print the given Intent specification as a URI.


am to-intent-uri: print the given Intent specification as an intent: URI.


<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>]