diff options
author | Luan Nguyen <luann@google.com> | 2015-06-24 15:16:57 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-06-24 15:16:57 +0000 |
commit | c1b4b0580ccdbccee25f4bc97e94530e4982e1f7 (patch) | |
tree | 3596e1f88b85c8ba83c001a894fd82caa9075fd4 /docs | |
parent | 91d2cbf44748ab40b8e4c52f28b7b5343d93e20e (diff) | |
parent | c5a480d112f6ce8645d9e294c42b2baab3b56ab9 (diff) | |
download | frameworks_base-c1b4b0580ccdbccee25f4bc97e94530e4982e1f7.zip frameworks_base-c1b4b0580ccdbccee25f4bc97e94530e4982e1f7.tar.gz frameworks_base-c1b4b0580ccdbccee25f4bc97e94530e4982e1f7.tar.bz2 |
am c5a480d1: am fdad629f: am 6859a9f0: Merge "docs: Pare down the adb guide and remove sections that are duplicated in the tools list." into lmp-docs
* commit 'c5a480d112f6ce8645d9e294c42b2baab3b56ab9':
docs: Pare down the adb guide and remove sections that are duplicated in the tools list.
Diffstat (limited to 'docs')
-rw-r--r-- | docs/html/about/versions/android-4.3.jd | 2 | ||||
-rw-r--r-- | docs/html/guide/components/intents-common.jd | 2 | ||||
-rw-r--r-- | docs/html/tools/help/adb.jd | 963 | ||||
-rw-r--r-- | docs/html/tools/help/index.jd | 9 | ||||
-rw-r--r-- | docs/html/tools/help/shell.jd | 898 | ||||
-rw-r--r-- | docs/html/tools/tools_toc.cs | 8 | ||||
-rw-r--r-- | docs/html/training/enterprise/app-compatibility.jd | 8 |
7 files changed, 922 insertions, 968 deletions
diff --git a/docs/html/about/versions/android-4.3.jd b/docs/html/about/versions/android-4.3.jd index e18c285..2496854 100644 --- a/docs/html/about/versions/android-4.3.jd +++ b/docs/html/about/versions/android-4.3.jd @@ -1029,7 +1029,7 @@ APIs allow you to inspect the screen content and inject arbitrary keyboard and t android.app.Instrumentation#getUiAutomation Instrumentation.getUiAutomation()}. In order for this to work, you must supply the {@code -w} option with the {@code instrument} command when running your {@link android.test.InstrumentationTestCase} from <a -href="{@docRoot}tools/help/adb.html#am">{@code adb shell}</a>.</p> +href="{@docRoot}tools/help/shell.html#am">{@code adb shell}</a>.</p> <p>With the {@link android.app.UiAutomation} instance, you can execute arbitrary events to test your app by calling {@link android.app.UiAutomation#executeAndWaitForEvent diff --git a/docs/html/guide/components/intents-common.jd b/docs/html/guide/components/intents-common.jd index 964f075..dbc14fa 100644 --- a/docs/html/guide/components/intents-common.jd +++ b/docs/html/guide/components/intents-common.jd @@ -2236,7 +2236,7 @@ adb shell am start -a android.intent.action.DIAL \ <p>For more information, see -<a href="{@docRoot}tools/help/adb.html#am">Using activity manager (am)</a>.</p> +<a href="{@docRoot}tools/help/shell.html#am">ADB Shell Commands</a>.</p> diff --git a/docs/html/tools/help/adb.jd b/docs/html/tools/help/adb.jd index 41c6686..641d463 100644 --- a/docs/html/tools/help/adb.jd +++ b/docs/html/tools/help/adb.jd @@ -16,18 +16,7 @@ page.tags=adb <li><a href="#move">Installing an Application</a></li> <li><a href="#forwardports">Forwarding Ports</a></li> <li><a href="#copyfiles">Copying Files to or from an Emulator/Device Instance</a></li> - <li><a href="#shellcommands">Issuing Shell Commands</a> - <ol> - <li><a href="#am">Using activity manager (am)</a></li> - <li><a href="#pm">Using package manager (pm)</a></li> - <li><a href="#sqlite">Examining sqlite3 databases from a remote shell</a></li> - <li><a href="#screenrecord">Recording a device screen</a></li> - <li><a href="#monkey">UI/Application Exerciser Monkey</a></li> - <li><a href="#othershellcommands">Other shell commands</a></li> - </ol> - </li> - <li><a href="#logcat">Enabling logcat logging</a></li> - <li><a href="#stopping">Stopping the adb server</a></li> + <li><a href="#stopping">Stopping the adb Server</a></li> <li><a href="#wireless">Wireless usage</a></li> </ol> @@ -279,7 +268,7 @@ would issue the <code>install</code> command as soon as the emulator or device i <td rowspan="2">Shell</td> <td><code>shell</code></td> <td>Starts a remote shell in the target emulator/device instance.</td> -<td rowspan="2">See <a href="#shellcommands">Issuing Shell Commands</a> for more information. </td> +<td rowspan="2">See <a href="{@docRoot}tools/help/shell.html#shellcommands">ADB Shell Commands</a> for more information. </td> </tr> <tr> @@ -412,950 +401,10 @@ emulator/device instance (remote). For example: </p> +<h2 id="stopping">Stopping the adb Server</h2> - - - - -<h2 id="shellcommands">Issuing Shell Commands</h2> - -<p>Adb provides a Unix shell that you can use to run a variety of commands on an emulator -or connected device. The command binaries are stored in the file system of the emulator or device, -at <code>/system/bin/...</code> - -<p>Two of the most common command tools are <a href="#am">activity manager</a> ({@code am}) and -<a href="#pm">package manager</a> ({@code pm}).</p> - -<p>You can use the <code>shell</code> command to issue commands, with or without entering -the adb remote shell on the emulator/device. To issue a single command without entering a -remote shell, use the <code>shell</code> command like this: </p> - - <pre class="no-pretty-print">adb [-d|-e|-s <serialNumber>] shell <shell_command></pre> - -<p>Or enter a remote shell on an emulator/device like this:</p> - - <pre class="no-pretty-print">adb [-d|-e|-s <serialNumber>] shell</pre> - -<p>When you are ready to exit the remote shell, press CTRL+D or type -<code>exit</code>. </p> - - - - - -<h3 id="am">Using activity manager (am)</h3> - -<p>Within an adb shell, you can issue commands with the activity manager ({@code am}) tool to -perform various system actions, such as start an activity, force-stop a process, -broadcast an intent, modify the device screen properties, and more. While in a shell, -the syntax is:</p> -<pre class="no-pretty-print"> -am <command> -</pre> - -<p>You can also issue an activity manager command directly from adb -without entering a remote shell. For example:</p> -<pre class="no-pretty-print"> -adb shell am start -a android.intent.action.VIEW -</pre> - - -<p class="table-caption"><strong>Table 2.</strong> Available activity manager commands</p> -<table> -<tr> - <th>Command</th> - <th>Description</th> -</tr> - -<tr> -<td><code> -start [options] <INTENT> -</code></td> -<td>Start an {@link android.app.Activity} specified by {@code <INTENT>}. <p>See the -<a href="#IntentSpec">Specification for <INTENT> arguments</a>. -<p>Options are: -<ul> - <li>{@code -D}: Enable debugging. - <li>{@code -W}: Wait for launch to complete. - <li>{@code --start-profiler <FILE>}: Start profiler and send results to {@code <FILE>}. - <li>{@code -P <FILE>}: Like <code>--start-profiler</code>, - but profiling stops when the app goes idle. - <li>{@code -R}: Repeat the activity launch {@code <COUNT>} times. Prior to each repeat, - the top activity will be finished. - <li>{@code -S}: Force stop the target app before starting the activity. - <li>{@code --opengl-trace}: Enable tracing of OpenGL functions. - <li>{@code --user <USER_ID> | current}: Specify which user to run as; if not - specified, then run as the current user. -</ul> -</td> -</tr> - -<tr> -<td><code> -startservice [options] <INTENT> -</code></td> -<td>Start the {@link android.app.Service} specified by {@code <INTENT>}. <p>See the -<a href="#IntentSpec">Specification for <INTENT> arguments</a>. -<p>Options are: -<ul> - <li>{@code --user <USER_ID> | current}: Specify which user to run as; if not - specified, then run as the current user. -</ul> -</td> -</tr> - -<tr> -<td><code> -force-stop <PACKAGE> -</code></td> -<td>Force stop everything associated with {@code <PACKAGE>} (the app's package name). -</td> -</tr> - -<tr> -<td><code> -kill [options] <PACKAGE> -</code></td> -<td> Kill all processes associated with {@code <PACKAGE>} - (the app's package name). This command kills only - processes that are safe to kill and that will not impact the user - experience. - <p>Options are: - <ul> - <li>{@code --user <USER_ID> | all | current}: Specify user whose processes to kill; - all users if not specified. - </ul> -</td> -</tr> - -<tr> -<td><code> -kill-all -</code></td> -<td>Kill all background processes. -</td> -</tr> - -<tr> -<td><code> -broadcast [options] <INTENT> -</code></td> -<td>Issue a broadcast intent. <p>See the -<a href="#IntentSpec">Specification for <INTENT> arguments</a>. -<p>Options are: -<ul> - <li>{@code [--user <USER_ID> | all | current]}: Specify which user to send to; if not - specified then send to all users. -</ul> -</td> -</tr> - -<tr> -<td><code> -instrument [options] <COMPONENT> -</code></td> -<td>Start monitoring with an {@link android.app.Instrumentation} instance. - Typically the target {@code <COMPONENT>} - is the form {@code <TEST_PACKAGE>/<RUNNER_CLASS>}. <p>Options are: -<ul> - <li>{@code -r}: Print raw results (otherwise decode - {@code <REPORT_KEY_STREAMRESULT>}). Use with - {@code [-e perf true]} to generate raw output for performance measurements. - - <li>{@code -e <NAME> <VALUE>}: Set argument {@code <NAME>} to {@code <VALUE>}. - For test runners a common form is {@code - -e <testrunner_flag> <value>[,<value>...]}. - - <li>{@code -p <FILE>}: Write profiling data to {@code <FILE>}. - - <li>{@code -w}: Wait for instrumentation to finish before returning. Required for - test runners. - - <li>{@code --no-window-animation}: Turn off window animations while running. - <li>{@code --user <USER_ID> | current}: Specify which user instrumentation runs in; - current user if not specified. -</ul> - -</td> -</tr> - -<tr> -<td><code> -profile start <PROCESS> <FILE> -</code></td> -<td>Start profiler on {@code <PROCESS>}, write results to {@code <FILE>}. -</td> -</tr> - -<tr> -<td><code> -profile stop <PROCESS> -</code></td> -<td>Stop profiler on {@code <PROCESS>}. -</td> -</tr> - -<tr> -<td style="white-space:nowrap"><code> -dumpheap [options] <PROCESS> <FILE> -</code></td> -<td>Dump the heap of {@code <PROCESS>}, write to {@code <FILE>}. <p>Options are: -<ul> - <li>{@code --user [<USER_ID>|current]}: When supplying a process name, - specify user of process to dump; uses current user if not specified. - <li>{@code -n}: Dump native heap instead of managed heap. -</ul> -</td> -</tr> - -<tr> -<td><code> -set-debug-app [options] <PACKAGE> -</code></td> -<td>Set application {@code <PACKAGE>} to debug. <p>Options are: -<ul> - <li>{@code -w}: Wait for debugger when application starts. - <li>{@code --persistent}: Retain this value. -</ul> -</td> -</tr> - -<tr> -<td><code> -clear-debug-app -</code></td> -<td>Clear the package previous set for debugging with {@code set-debug-app}. -</td> -</tr> - -<tr> -<td><code> -monitor [options] -</code></td> -<td>Start monitoring for crashes or ANRs. <p>Options are: -<ul> - <li>{@code --gdb}: Start gdbserv on the given port at crash/ANR. -</ul> -</td> -</tr> - -<tr> -<td><code> -screen-compat [on|off] <PACKAGE> -</code></td> -<td>Control <a href="{@docRoot}guide/practices/screen-compat-mode.html">screen -compatibility</a> mode of {@code <PACKAGE>}.</p> -</td> -</tr> - -<tr> -<td><code> -display-size [reset|<WxH>] -</code></td> -<td>Override emulator/device display size. -This command is helpful for testing your app across different screen sizes by mimicking a small -screen resolution using a device with a large screen, and vice versa. -<p>Example:<br><code>am display-size 1280x800</code> -</td> -</tr> - -<tr> -<td><code> -display-density <dpi> -</code></td> -<td>Override emulator/device display density. -This command is helpful for testing your app across different screen densities on high-density -screen environment using a low density screen, and vice versa. -<p>Example:<br><code>am display-density 480</code> -</td> -</tr> - -<tr> -<td><code> -to-uri <INTENT> -</code></td> -<td>Print the given intent specification as a URI. <p>See the -<a href="#IntentSpec">Specification for <INTENT> arguments</a>. -</td> -</tr> - -<tr> -<td><code> -to-intent-uri <INTENT> -</code></td> -<td>Print the given intent specification as an {@code intent:} URI. <p>See the -<a href="#IntentSpec">Specification for <INTENT> arguments</a>. -</td> -</tr> -</table> - - - - - -<h4 id="IntentSpec"> - <a href="" class="expandable" onclick="toggleExpandable(this,'.intents'); -return false">Specification for <INTENT> arguments</a></h4> - -<div class="intents" style="display:none"> - -<p>For activity manager commands that take a {@code <INTENT>} argument, you can -specify the intent with the following options:</p> - -<dl> - <dt>{@code -a <ACTION>}</dt> - <dd>Specify the intent action, such as "android.intent.action.VIEW". - You can declare this only once. - - <dt>{@code -d <DATA_URI>}</dt> - <dd>Specify the intent data URI, such as "content://contacts/people/1". - You can declare this only once. - - <dt>{@code -t <MIME_TYPE>}</dt> - <dd>Specify the intent MIME type, such as "image/png". - You can declare this only once. - - <dt>{@code -c <CATEGORY>}</dt> - <dd>Specify an intent category, such as "android.intent.category.APP_CONTACTS". - - <dt>{@code -n <COMPONENT>}</dt> - <dd>Specify the component name with package name prefix to create an explicit intent, such - as "com.example.app/.ExampleActivity". - - <dt>{@code -f <FLAGS>}</dt> - <dd>Add flags to the intent, as supported by {@link - android.content.Intent#setFlags setFlags()}. - - <dt>{@code --esn <EXTRA_KEY>}</dt> - <dd>Add a null extra. This option is not supported for URI intents. - - <dt>{@code -e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE>}</dt> - <dd>Add string data as a key-value pair. - - <dt>{@code --ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>}</dt> - <dd>Add boolean data as a key-value pair. - - <dt>{@code --ei <EXTRA_KEY> <EXTRA_INT_VALUE>}</dt> - <dd>Add integer data as a key-value pair. - - <dt>{@code --el <EXTRA_KEY> <EXTRA_LONG_VALUE>}</dt> - <dd>Add long data as a key-value pair. - - <dt>{@code --ef <EXTRA_KEY> <EXTRA_FLOAT_VALUE>}</dt> - <dd>Add float data as a key-value pair. - - <dt>{@code --eu <EXTRA_KEY> <EXTRA_URI_VALUE>}</dt> - <dd>Add URI data as a key-value pair. - - <dt>{@code --ecn <EXTRA_KEY> <EXTRA_COMPONENT_NAME_VALUE>}</dt> - <dd>Add a component name, which is converted and passed as - a {@link android.content.ComponentName} object. - - <dt>{@code --eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]}</dt> - <dd>Add an array of integers. - - <dt>{@code --ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]}</dt> - <dd>Add an array of longs. - - <dt>{@code --efa <EXTRA_KEY> <EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...]}</dt> - <dd>Add an array of floats. - - <dt>{@code --grant-read-uri-permission}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION}. - - <dt>{@code --grant-write-uri-permission}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_GRANT_WRITE_URI_PERMISSION}. - - <dt>{@code --debug-log-resolution}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_DEBUG_LOG_RESOLUTION}. - - <dt>{@code --exclude-stopped-packages}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_EXCLUDE_STOPPED_PACKAGES}. - - <dt>{@code --include-stopped-packages}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_INCLUDE_STOPPED_PACKAGES}. - - <dt>{@code --activity-brought-to-front}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_BROUGHT_TO_FRONT}. - - <dt>{@code --activity-clear-top}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_CLEAR_TOP}. - - <dt>{@code --activity-clear-when-task-reset}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET}. - - <dt>{@code --activity-exclude-from-recents}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS}. - - <dt>{@code --activity-launched-from-history}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY}. - - <dt>{@code --activity-multiple-task}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_MULTIPLE_TASK}. - - <dt>{@code --activity-no-animation}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_NO_ANIMATION}. - - <dt>{@code --activity-no-history}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_NO_HISTORY}. - - <dt>{@code --activity-no-user-action}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_NO_USER_ACTION}. - - <dt>{@code --activity-previous-is-top}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_PREVIOUS_IS_TOP}. - - <dt>{@code --activity-reorder-to-front}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_REORDER_TO_FRONT}. - - <dt>{@code --activity-reset-task-if-needed}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_RESET_TASK_IF_NEEDED}. - - <dt>{@code --activity-single-top}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_SINGLE_TOP}. - - <dt>{@code --activity-clear-task}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_CLEAR_TASK}. - - <dt>{@code --activity-task-on-home}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_TASK_ON_HOME}. - - <dt>{@code --receiver-registered-only}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_RECEIVER_REGISTERED_ONLY}. - - <dt>{@code --receiver-replace-pending}</dt> - <dd>Include the flag {@link android.content.Intent#FLAG_RECEIVER_REPLACE_PENDING}. - - <dt>{@code --selector}</dt> - <dd>Requires the use of {@code -d} and {@code -t} options to set the intent data and type. - - <dt>{@code <URI> <COMPONENT> <PACKAGE>}</dt> - <dd>You can directly specify a URI, package name, and component name when not qualified - by one of the above options. When an argument is unqualified, the tool assumes the argument - is a URI if it contains a ":" (colon); it assumes the argument is a component name if it - contains a "/" (forward-slash); otherwise it assumes the argument is a package name. - -</dl> -</div><!-- end 'intents' --> -<script> - $(window).hashchange( function(){ - if ((location.hash == "#IntentSpec") && !($("#IntentSpec a").hasClass("expanded"))) { - $("#IntentSpec a").click(); - } - }); -</script> - - - -<h3 id="pm">Using package manager (pm)</h3> - -<p>Within an adb shell, you can issue commands with the package manager ({@code pm}) tool to -perform actions and queries on application packages installed on the device. While in a shell, -the syntax is:</p> -<pre class="no-pretty-print"> -pm <command> -</pre> - -<p>You can also issue a package manager command directly from adb -without entering a remote shell. For example:</p> -<pre class="no-pretty-print"> -adb shell pm uninstall com.example.MyApp -</pre> - -<p class="table-caption"><strong>Table 3.</strong> Available package manager commands.</p> -<table> -<tr> - <th>Command</th> - <th>Description</th> -</tr> - -<tr> -<td><code> -list packages [options] <FILTER> -</code></td> -<td>Prints all packages, optionally only - those whose package name contains the text in {@code <FILTER>}. <p>Options: -<ul> - <li>{@code -f}: See their associated file. - <li>{@code -d}: Filter to only show disabled packages. - <li>{@code -e}: Filter to only show enabled packages. - <li>{@code -s}: Filter to only show system packages. - <li>{@code -3}: Filter to only show third party packages. - <li>{@code -i}: See the installer for the packages. - <li>{@code -u}: Also include uninstalled packages. - <li>{@code --user <USER_ID>}: The user space to query. -</ul> -</td> -</tr> - -<tr> -<td><code> -list permission-groups -</code></td> -<td>Prints all known permission groups. -</td> -</tr> - -<tr> -<td><code> -list permissions [options] <GROUP> -</code></td> -<td>Prints all known permissions, optionally only - those in {@code <GROUP>}. <p>Options: -<ul> - <li>{@code -g}: Organize by group. - <li>{@code -f}: Print all information. - <li>{@code -s}: Short summary. - <li>{@code -d}: Only list dangerous permissions. - <li>{@code -u}: List only the permissions users will see. -</ul> -</td> -</tr> - -<tr> -<td><code> -list instrumentation -</code></td> -<td>List all test packages. <p>Options: - <ul> - <li>{@code -f}: List the APK file for the test package. - <li>{@code <TARGET_PACKAGE>}: List test packages for only this app. - </ul> -</td> -</tr> - -<tr> -<td><code> -list features -</code></td> -<td>Prints all features of the system. -</td> -</tr> - -<tr> -<td><code> -list libraries -</code></td> -<td>Prints all the libraries supported by the current device. -</td> -</tr> - -<tr> -<td><code> -list users -</code></td> -<td>Prints all users on the system. -</td> -</tr> - -<tr> -<td><code> -path <PACKAGE> -</code></td> -<td>Print the path to the APK of the given {@code <PACKAGE>}. -</td> -</tr> - -<tr> -<td><code> -install [options] <PATH> -</code></td> -<td>Installs a package (specified by {@code <PATH>}) to the system. <p>Options: - <ul> - <li>{@code -r}: Reinstall an exisiting app, keeping its data. - <li>{@code -t}: Allow test APKs to be installed. - <li>{@code -i <INSTALLER_PACKAGE_NAME>}: Specify the installer package name. - <li>{@code -s}: Install package on the shared mass storage (such as sdcard). - <li>{@code -f}: Install package on the internal system memory. - <li>{@code -d}: Allow version code downgrade. - </ul> -</td> -</tr> - -<tr> -<td><code> -uninstall [options] <PACKAGE> -</code></td> -<td>Removes a package from the system. <p>Options: - <ul> - <li>{@code -k}: Keep the data and cache directories around after package removal. - </ul> -</td> -</tr> - -<tr> -<td><code> -clear <PACKAGE> -</code></td> -<td>Deletes all data associated with a package. -</td> -</tr> - -<tr> -<td><code> -enable <PACKAGE_OR_COMPONENT> -</code></td> -<td>Enable the given package or component (written as "package/class"). -</td> -</tr> - -<tr> -<td><code> -disable <PACKAGE_OR_COMPONENT> -</code></td> -<td>Disable the given package or component (written as "package/class"). -</td> -</tr> - -<tr> -<td style="white-space:nowrap"><code> -disable-user [options] <PACKAGE_OR_COMPONENT> -</code></td> -<td><p>Options: - <ul> - <li>{@code --user <USER_ID>}: The user to disable. - </ul> -</td> -</tr> - -<tr> -<td><code> -grant <PACKAGE_PERMISSION> -</code></td> -<td>Grant permissions - to applications. Only optional permissions the application has - declared can be granted. -</td> -</tr> - -<tr> -<td><code> -revoke <PACKAGE_PERMISSION> -</code></td> -<td>Revoke permissions - to applications. Only optional permissions the application has - declared can be revoked. -</td> -</tr> - -<tr> -<td><code> -set-install-location <LOCATION> -</code></td> -<td>Changes the default install location. Location values: -<ul> - <li>{@code 0}: Auto—Let system decide the best location. - <li>{@code 1}: Internal—install on internal device storage. - <li>{@code 2}: External—install on external media. -</ul> -<p class="note"><strong>Note:</strong> This is only intended for debugging; using this can cause - applications to break and other undesireable behavior.</p> -</td> -</tr> - -<tr> -<td><code> -get-install-location -</code></td> -<td>Returns the current install location. Return values: -<ul> - <li>{@code 0 [auto]}: Lets system decide the best location - <li>{@code 1 [internal]}: Installs on internal device storage - <li>{@code 2 [external]}: Installs on external media -</ul> -</td> -</tr> - -<tr> -<td><code> -set-permission-enforced <PERMISSION> [true|false] -</code></td> -<td>Specifies whether the given permission should be enforced. -</td> -</tr> - -<tr> -<td><code> -trim-caches <DESIRED_FREE_SPACE> -</code></td> -<td>Trim cache files to reach the given free space. -</td> -</tr> - -<tr> -<td><code> -create-user <USER_NAME> -</code></td> -<td>Create a new user with the given {@code <USER_NAME>}, - printing the new user identifier of the user. -</td> -</tr> - -<tr> -<td><code> -remove-user <USER_ID> -</code></td> -<td>Remove the user with the given {@code <USER_IDENTIFIER>}, - deleting all data associated with that user -</td> -</tr> - -<tr> -<td><code> -get-max-users -</code></td> -<td>Prints the maximum number of users supported by the device. -</td> -</tr> - -</table> - - - - - - - -<h3 id="sqlite">Examining sqlite3 databases from a remote shell</h3> - -<p>From an adb remote shell, you can use the -<a href="http://www.sqlite.org/sqlite.html">sqlite3</a> command-line program to -manage SQLite databases created by Android applications. The -<code>sqlite3</code> tool includes many useful commands, such as -<code>.dump</code> to print out the contents of a table and -<code>.schema</code> to print the SQL CREATE statement for an existing table. -The tool also gives you the ability to execute SQLite commands on the fly.</p> - -<p>To use <code>sqlite3</code>, enter a remote shell on the emulator instance, as described above, -then invoke the tool using the <code>sqlite3</code> command. Optionally, when invoking -<code>sqlite3</code> you can specify the full path to the database you want to explore. -Emulator/device instances store SQLite3 databases in the folder -<code><span chatdir="1"><span chatindex="259474B4B070F261">/data/data/<em><package_name></em>/databases</span></span>/</code>. </p> - -<p>Here's an example: </p> - -<pre class="no-pretty-print">adb -s emulator-5554 shell -# sqlite3 /data/data/com.example.google.rss.rssexample/databases/rssitems.db -SQLite version 3.3.12 -Enter ".help" for instructions -<em>.... enter commands, then quit...</em> -sqlite> .exit </pre> - -<p>Once you've invoked <code>sqlite3</code>, you can issue <code>sqlite3</code> commands in the -shell. To exit and return to the adb remote shell, use <code>exit</code> or <code>CTRL+D</code>. - - - - -<h3 id="screenrecord">Recording a device screen</h3> - -<p>The {@code screenrecord} command is a shell utility for recording the display of devices - running Android 4.4 (API level 19) and higher. The utility records screen activity to an MPEG-4 - file, which you can then download and use as part of a video presentation. This utility is useful - for developers who want to create promotional or training videos without using a separate - recording device.</p> - -<p>To use the {@code screenrecord} from the command line, type the following: - -<pre> -$ adb shell screenrecord /sdcard/demo.mp4 -</pre> - -<p>Stop the screen recording by pressing Ctrl-C, otherwise the recording stops automatically -at three minutes or the time limit set by {@code --time-limit}.</p> - -<p>Here's an example recording session, using the adb shell to record the video and the -{@code pull} command to download the file from the device:<p> - -<pre> -$ adb shell -shell@ $ screenrecord --verbose /sdcard/demo.mp4 -(press Ctrl-C to stop) -shell@ $ exit -$ adb pull /sdcard/demo.mp4 -</pre> - -<p>The {@code screenrecord} utility can record at any supported resolution and bit rate you - request, while retaining the aspect ratio of the device display. The utility records at the native - display resolution and orientation by default, with a maximum length of three minutes.</p> - -<p>There are some known limitations of the {@code screenrecord} utility that you should be aware - of when using it:</p> - -<ul> - <li>Some devices may not be able to record at their native display resolution. - If you encounter problems with screen recording, try using a lower screen resolution.</li> - <li>Rotation of the screen during recording is not supported. If the screen does rotate during - recording, some of the screen is cut off in the recording.</li> - <li>Audio is not recorded with the video file.</li> -</ul> - - -<p class="table-caption"><strong>Table 4.</strong> {@code screenrecord} options</p> - -<table> - <tr> - <th>Options</th> - <th>Description</th> - </tr> - - <tr> - <td><code>--help</code> - </td> - <td>Displays a usage summary.</td> - </tr> - - <tr> - <td style="white-space:nowrap"> - <code>--size <WIDTHxHEIGHT></code> - </td> - <td>Sets the video size, for example: {@code 1280x720}. The default value is the device's main - display resolution (if supported), 1280x720 if not. For best results, use a size supported - by your device's Advanced Video Coding (AVC) encoder.</td> - </tr> - - <tr> - <td><code>--bit-rate <RATE></code></td> - <td>Sets the video bit rate for the video, in megabits per second. The default value is 4Mbps. - You can increase the bit rate to improve video quality or lower it for smaller movie - files. The following example sets the recording bit rate to 6Mbps: - <pre>screenrecord --bit-rate 6000000 /sdcard/demo.mp4</pre> - </td> - </tr> - - <tr> - <td><code>--time-limit <TIME></code></td> - <td>Sets the maximum recording time, in seconds. The default and maximum value is 180 - (3 minutes).</td> - </tr> - - <tr> - <td><code>--rotate</code></td> - <td>Rotates the output 90 degrees. This feature is experimental.</td> - </tr> - - <tr> - <td><code>--verbose</code></td> - <td>Displays log information on command line screen. If you do not set this option, - the utility does not display any information while running.</td> - </tr> - -</table> - - - - -<h3 id="monkey">UI/Application Exerciser Monkey</h3> - -<p>The Monkey is a program that runs on your emulator or device and generates pseudo-random -streams of user events such as clicks, touches, or gestures, as well as a number of system-level -events. You can use the Monkey to stress-test applications that you are developing, -in a random yet repeatable manner.</p> - -<p>The simplest way to use the monkey is with the following command, which launches your -application and sends 500 pseudo-random events to it.</p> - -<pre class="no-pretty-print">adb shell monkey -v -p your.package.name 500</pre> - -<p>For more information about command options for Monkey, see the complete -<a href="{@docRoot}tools/help/monkey.html" title="monkey">UI/Application Exerciser Monkey</a> documentation page.</p> - - - - - -<h3 id="othershellcommands">Other shell commands</h3> - -<p>For a list of all the available shell programs, use the following command:</p> - -<pre class="no-pretty-print">adb shell ls /system/bin</pre> - -<p>Help is available for most of the commands. </p> - -<p>Table 5 lists some of the more common adb shell commands.</p> - -<p class="table-caption"><strong>Table 5.</strong> Some other adb shell commands</p> -<table> -<tr> - <th>Shell Command</th> - <th>Description</th> - <th>Comments</th> -</tr> - -<tr> -<td><code>dumpsys</code></td> -<td>Dumps system data to the screen.</td> -<td rowspan=4">The <a href="{@docRoot}tools/debugging/ddms.html">Dalvik Debug Monitor Server</a> -(DDMS) tool offers integrated debug environment that you may find easier to use.</td> -</tr> - -<tr> -<td><code>dumpstate</code></td> -<td>Dumps state to a file.</td> -</tr> - -<tr> -<td><code>logcat [option]... [filter-spec]...</code></td> -<td>Enables system and app logging and prints output to the screen. </td> -</tr> - -<tr> -<td><code>dmesg</code></td> -<td>Prints kernel debugging messages to the screen. </td> -</tr> - -<tr> -<td><code>start</code></td> -<td>Starts (restarts) an emulator/device instance.</td> -<td> </td> -</tr> - -<tr> -<td><code>stop</code></td> -<td>Stops execution of an emulator/device instance.</td> -<td> </td> -</tr> - -</table> - - - - - - - -<a name="stdout"></a> -<a name="usinglogcat"></a> -<a name="outputformat"></a> -<a name="filteringoutput"></a> -<a name="stdout"></a> -<a name="logcatoptions"></a> - -<h2 id="logcat">Enabling logcat logging</h2> - -<p>The Android logging system provides a mechanism for collecting and viewing system debug output. Logs from various applications and portions of the system are collected in a series of circular buffers, which then can be viewed and filtered by the <code>logcat</code> command.</p> - -<p>You can use the <code>logcat</code> command to view and follow the contents of the system's log buffers. The general usage is:</p> - -<pre class="no-pretty-print">[adb] logcat [option] ... [filter-spec] ...</pre> - -<p>You can use the <code>logcat</code> command from your development computer or from a remote adb shell in an emulator/device instance. To view log output in your development computer, you use</p> - -<pre class="no-pretty-print">adb logcat</pre> - -<p>and from a remote adb shell you use</p> - -<pre class="no-pretty-print">logcat</pre> - -<p>See <a href="{@docRoot}tools/debugging/debugging-log.html">Reading and Writing Logs</a> for complete information about logcat commend options and filter specifications.</p> - - - - - -<h2 id="stopping">Stopping the adb server</h2> - -<p>In some cases, you might need to terminate the adb server process and then restart it. For example, if adb does not respond to a command, you can terminate the server and restart it and that may resolve the problem. </p> +<p>In some cases, you might need to terminate the adb server process and then restart it +to resolve the problem (e.g., if adb does not respond to a command).</p> <p>To stop the adb server, use the <code>kill-server</code> command. You can then restart the server by issuing any other adb command. </p> @@ -1457,4 +506,4 @@ adb kill-server and then start over from the beginning. </li> -</ol> +</ol>
\ No newline at end of file diff --git a/docs/html/tools/help/index.jd b/docs/html/tools/help/index.jd index 4c97d0c..f90d029 100644 --- a/docs/html/tools/help/index.jd +++ b/docs/html/tools/help/index.jd @@ -68,7 +68,10 @@ avd</code>) the emulator (<code>emulator</code>), and the Dalvik Debug Monitor S <dt><a href="{@docRoot}tools/help/adb.html">adb</a></dt> <dd>Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with an emulator instance or connected Android-powered device. It also provides access to the - device shell for advanced command-line operations.</dd> + device shell.</dd> + + <dt><a href="{@docRoot}tools/help/shell.html">ADB Shell Commands</a></dt> + <dd>Learn the commands available for advanced command-line operations.</dd> <dt><a href="{@docRoot}tools/debugging/ddms.html">Dalvik Debug Monitor Server (ddms)</a></dt> @@ -109,11 +112,9 @@ you can view the file in a profiling tool of your choice.</dd> <dt><a href="{@docRoot}tools/help/jobb.html">JOBB</a></dt> <dd>Allows you to build encrypted and unencrypted - <a href="{@docRoot}{@docRoot}google/play/expansion-files.html">APK expansion files</a> in Opaque + <a href="{@docRoot}google/play/expansion-files.html">APK expansion files</a> in Opaque Binary Blob (OBB) format.</dd> -<a href="{@docRoot}{@docRoot}google/play/expansion-files.html">APK expansion files</a> - <dt><a href="{@docRoot}tools/help/proguard.html">ProGuard</a></dt> <dd>Shrinks, optimizes, and obfuscates your code by removing unused code and renaming classes, fields, and methods with semantically obscure names.</dd> diff --git a/docs/html/tools/help/shell.jd b/docs/html/tools/help/shell.jd new file mode 100644 index 0000000..417c871 --- /dev/null +++ b/docs/html/tools/help/shell.jd @@ -0,0 +1,898 @@ +page.title=ADB Shell Commands +parent.title=Tools +parent.link=index.html +page.tags=shell,adb,am,pm,screenrecord,screencap +@jd:body + +<div id="qv-wrapper"> +<div id="qv"> + <h2>In this document</h2> +<ol> + <li><a href="#shellcommands">Issuing Shell Commands</a> + <li><a href="#am">Using activity manager (am)</a></li> + <li><a href="#pm">Using package manager (pm)</a></li> + <li><a href="#screencap">Taking a device screenshot</a></li> + <li><a href="#screenrecord">Recording a device screen</a></li> + <li><a href="#othershellcommands">Other shell commands</a></li> + </li> +</ol> + +</div> +</div> + +<p>The <a href="{@docRoot}tools/help/adb.html">Android Debug Bridge</a> (adb) provides a Unix shell +that you can use to run a variety of commands on an emulator or connected device. The command +binaries are stored in the file system of the emulator or device, at <code>/system/bin/...</code> +</p> + +<h2 id="shellcommands">Issuing Shell Commands</h2> + +<p>You can use the <code>shell</code> command to issue commands, with or without entering +the adb remote shell on the emulator/device. To issue a single command without entering a +remote shell, use the <code>shell</code> command like this: </p> + + <pre class="no-pretty-print">adb [-d|-e|-s <serialNumber>] shell <shell_command></pre> + +<p>Or enter a remote shell on an emulator/device like this:</p> + + <pre class="no-pretty-print">adb [-d|-e|-s <serialNumber>] shell</pre> + +<p>When you are ready to exit the remote shell, press CTRL+D or type +<code>exit</code>. </p> + + + + + +<h2 id="am">Using activity manager (am)</h2> + +<p>Within an adb shell, you can issue commands with the activity manager ({@code am}) tool to +perform various system actions, such as start an activity, force-stop a process, +broadcast an intent, modify the device screen properties, and more. While in a shell, +the syntax is:</p> +<pre class="no-pretty-print"> +am <command> +</pre> + +<p>You can also issue an activity manager command directly from adb +without entering a remote shell. For example:</p> +<pre class="no-pretty-print"> +adb shell am start -a android.intent.action.VIEW +</pre> + + +<p class="table-caption"><strong>Table 2.</strong> Available activity manager commands</p> +<table> +<tr> + <th>Command</th> + <th>Description</th> +</tr> + +<tr> +<td><code> +start [options] <INTENT> +</code></td> +<td>Start an {@link android.app.Activity} specified by {@code <INTENT>}. <p>See the +<a href="#IntentSpec">Specification for <INTENT> arguments</a>. +<p>Options are: +<ul> + <li>{@code -D}: Enable debugging. + <li>{@code -W}: Wait for launch to complete. + <li>{@code --start-profiler <FILE>}: Start profiler and send results to {@code <FILE>}. + <li>{@code -P <FILE>}: Like <code>--start-profiler</code>, + but profiling stops when the app goes idle. + <li>{@code -R}: Repeat the activity launch {@code <COUNT>} times. Prior to each repeat, + the top activity will be finished. + <li>{@code -S}: Force stop the target app before starting the activity. + <li>{@code --opengl-trace}: Enable tracing of OpenGL functions. + <li>{@code --user <USER_ID> | current}: Specify which user to run as; if not + specified, then run as the current user. +</ul> +</td> +</tr> + +<tr> +<td><code> +startservice [options] <INTENT> +</code></td> +<td>Start the {@link android.app.Service} specified by {@code <INTENT>}. <p>See the +<a href="#IntentSpec">Specification for <INTENT> arguments</a>. +<p>Options are: +<ul> + <li>{@code --user <USER_ID> | current}: Specify which user to run as; if not + specified, then run as the current user. +</ul> +</td> +</tr> + +<tr> +<td><code> +force-stop <PACKAGE> +</code></td> +<td>Force stop everything associated with {@code <PACKAGE>} (the app's package name). +</td> +</tr> + +<tr> +<td><code> +kill [options] <PACKAGE> +</code></td> +<td> Kill all processes associated with {@code <PACKAGE>} + (the app's package name). This command kills only + processes that are safe to kill and that will not impact the user + experience. + <p>Options are: + <ul> + <li>{@code --user <USER_ID> | all | current}: Specify user whose processes to kill; + all users if not specified. + </ul> +</td> +</tr> + +<tr> +<td><code> +kill-all +</code></td> +<td>Kill all background processes. +</td> +</tr> + +<tr> +<td><code> +broadcast [options] <INTENT> +</code></td> +<td>Issue a broadcast intent. <p>See the +<a href="#IntentSpec">Specification for <INTENT> arguments</a>. +<p>Options are: +<ul> + <li>{@code [--user <USER_ID> | all | current]}: Specify which user to send to; if not + specified then send to all users. +</ul> +</td> +</tr> + +<tr> +<td><code> +instrument [options] <COMPONENT> +</code></td> +<td>Start monitoring with an {@link android.app.Instrumentation} instance. + Typically the target {@code <COMPONENT>} + is the form {@code <TEST_PACKAGE>/<RUNNER_CLASS>}. <p>Options are: +<ul> + <li>{@code -r}: Print raw results (otherwise decode + {@code <REPORT_KEY_STREAMRESULT>}). Use with + {@code [-e perf true]} to generate raw output for performance measurements. + + <li>{@code -e <NAME> <VALUE>}: Set argument {@code <NAME>} to {@code <VALUE>}. + For test runners a common form is {@code + -e <testrunner_flag> <value>[,<value>...]}. + + <li>{@code -p <FILE>}: Write profiling data to {@code <FILE>}. + + <li>{@code -w}: Wait for instrumentation to finish before returning. Required for + test runners. + + <li>{@code --no-window-animation}: Turn off window animations while running. + <li>{@code --user <USER_ID> | current}: Specify which user instrumentation runs in; + current user if not specified. +</ul> + +</td> +</tr> + +<tr> +<td><code> +profile start <PROCESS> <FILE> +</code></td> +<td>Start profiler on {@code <PROCESS>}, write results to {@code <FILE>}. +</td> +</tr> + +<tr> +<td><code> +profile stop <PROCESS> +</code></td> +<td>Stop profiler on {@code <PROCESS>}. +</td> +</tr> + +<tr> +<td style="white-space:nowrap"><code> +dumpheap [options] <PROCESS> <FILE> +</code></td> +<td>Dump the heap of {@code <PROCESS>}, write to {@code <FILE>}. <p>Options are: +<ul> + <li>{@code --user [<USER_ID>|current]}: When supplying a process name, + specify user of process to dump; uses current user if not specified. + <li>{@code -n}: Dump native heap instead of managed heap. +</ul> +</td> +</tr> + +<tr> +<td><code> +set-debug-app [options] <PACKAGE> +</code></td> +<td>Set application {@code <PACKAGE>} to debug. <p>Options are: +<ul> + <li>{@code -w}: Wait for debugger when application starts. + <li>{@code --persistent}: Retain this value. +</ul> +</td> +</tr> + +<tr> +<td><code> +clear-debug-app +</code></td> +<td>Clear the package previous set for debugging with {@code set-debug-app}. +</td> +</tr> + +<tr> +<td><code> +monitor [options] +</code></td> +<td>Start monitoring for crashes or ANRs. <p>Options are: +<ul> + <li>{@code --gdb}: Start gdbserv on the given port at crash/ANR. +</ul> +</td> +</tr> + +<tr> +<td><code> +screen-compat [on|off] <PACKAGE> +</code></td> +<td>Control <a href="{@docRoot}guide/practices/screen-compat-mode.html">screen +compatibility</a> mode of {@code <PACKAGE>}.</p> +</td> +</tr> + +<tr> +<td><code> +display-size [reset|<WxH>] +</code></td> +<td>Override emulator/device display size. +This command is helpful for testing your app across different screen sizes by mimicking a small +screen resolution using a device with a large screen, and vice versa. +<p>Example:<br><code>am display-size 1280x800</code> +</td> +</tr> + +<tr> +<td><code> +display-density <dpi> +</code></td> +<td>Override emulator/device display density. +This command is helpful for testing your app across different screen densities on high-density +screen environment using a low density screen, and vice versa. +<p>Example:<br><code>am display-density 480</code> +</td> +</tr> + +<tr> +<td><code> +to-uri <INTENT> +</code></td> +<td>Print the given intent specification as a URI. <p>See the +<a href="#IntentSpec">Specification for <INTENT> arguments</a>. +</td> +</tr> + +<tr> +<td><code> +to-intent-uri <INTENT> +</code></td> +<td>Print the given intent specification as an {@code intent:} URI. <p>See the +<a href="#IntentSpec">Specification for <INTENT> arguments</a>. +</td> +</tr> +</table> + + + + + +<h3 id="IntentSpec"> + <a href="" class="expandable" onclick="toggleExpandable(this,'.intents'); +return false">Specification for <INTENT> arguments</a></h3> + +<div class="intents" style="display:none"> + +<p>For activity manager commands that take a {@code <INTENT>} argument, you can +specify the intent with the following options:</p> + +<dl> + <dt>{@code -a <ACTION>}</dt> + <dd>Specify the intent action, such as "android.intent.action.VIEW". + You can declare this only once. + + <dt>{@code -d <DATA_URI>}</dt> + <dd>Specify the intent data URI, such as "content://contacts/people/1". + You can declare this only once. + + <dt>{@code -t <MIME_TYPE>}</dt> + <dd>Specify the intent MIME type, such as "image/png". + You can declare this only once. + + <dt>{@code -c <CATEGORY>}</dt> + <dd>Specify an intent category, such as "android.intent.category.APP_CONTACTS". + + <dt>{@code -n <COMPONENT>}</dt> + <dd>Specify the component name with package name prefix to create an explicit intent, such + as "com.example.app/.ExampleActivity". + + <dt>{@code -f <FLAGS>}</dt> + <dd>Add flags to the intent, as supported by {@link + android.content.Intent#setFlags setFlags()}. + + <dt>{@code --esn <EXTRA_KEY>}</dt> + <dd>Add a null extra. This option is not supported for URI intents. + + <dt>{@code -e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE>}</dt> + <dd>Add string data as a key-value pair. + + <dt>{@code --ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>}</dt> + <dd>Add boolean data as a key-value pair. + + <dt>{@code --ei <EXTRA_KEY> <EXTRA_INT_VALUE>}</dt> + <dd>Add integer data as a key-value pair. + + <dt>{@code --el <EXTRA_KEY> <EXTRA_LONG_VALUE>}</dt> + <dd>Add long data as a key-value pair. + + <dt>{@code --ef <EXTRA_KEY> <EXTRA_FLOAT_VALUE>}</dt> + <dd>Add float data as a key-value pair. + + <dt>{@code --eu <EXTRA_KEY> <EXTRA_URI_VALUE>}</dt> + <dd>Add URI data as a key-value pair. + + <dt>{@code --ecn <EXTRA_KEY> <EXTRA_COMPONENT_NAME_VALUE>}</dt> + <dd>Add a component name, which is converted and passed as + a {@link android.content.ComponentName} object. + + <dt>{@code --eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]}</dt> + <dd>Add an array of integers. + + <dt>{@code --ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]}</dt> + <dd>Add an array of longs. + + <dt>{@code --efa <EXTRA_KEY> <EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...]}</dt> + <dd>Add an array of floats. + + <dt>{@code --grant-read-uri-permission}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION}. + + <dt>{@code --grant-write-uri-permission}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_GRANT_WRITE_URI_PERMISSION}. + + <dt>{@code --debug-log-resolution}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_DEBUG_LOG_RESOLUTION}. + + <dt>{@code --exclude-stopped-packages}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_EXCLUDE_STOPPED_PACKAGES}. + + <dt>{@code --include-stopped-packages}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_INCLUDE_STOPPED_PACKAGES}. + + <dt>{@code --activity-brought-to-front}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_BROUGHT_TO_FRONT}. + + <dt>{@code --activity-clear-top}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_CLEAR_TOP}. + + <dt>{@code --activity-clear-when-task-reset}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET}. + + <dt>{@code --activity-exclude-from-recents}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS}. + + <dt>{@code --activity-launched-from-history}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY}. + + <dt>{@code --activity-multiple-task}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_MULTIPLE_TASK}. + + <dt>{@code --activity-no-animation}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_NO_ANIMATION}. + + <dt>{@code --activity-no-history}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_NO_HISTORY}. + + <dt>{@code --activity-no-user-action}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_NO_USER_ACTION}. + + <dt>{@code --activity-previous-is-top}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_PREVIOUS_IS_TOP}. + + <dt>{@code --activity-reorder-to-front}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_REORDER_TO_FRONT}. + + <dt>{@code --activity-reset-task-if-needed}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_RESET_TASK_IF_NEEDED}. + + <dt>{@code --activity-single-top}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_SINGLE_TOP}. + + <dt>{@code --activity-clear-task}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_CLEAR_TASK}. + + <dt>{@code --activity-task-on-home}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_TASK_ON_HOME}. + + <dt>{@code --receiver-registered-only}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_RECEIVER_REGISTERED_ONLY}. + + <dt>{@code --receiver-replace-pending}</dt> + <dd>Include the flag {@link android.content.Intent#FLAG_RECEIVER_REPLACE_PENDING}. + + <dt>{@code --selector}</dt> + <dd>Requires the use of {@code -d} and {@code -t} options to set the intent data and type. + + <dt>{@code <URI> <COMPONENT> <PACKAGE>}</dt> + <dd>You can directly specify a URI, package name, and component name when not qualified + by one of the above options. When an argument is unqualified, the tool assumes the argument + is a URI if it contains a ":" (colon); it assumes the argument is a component name if it + contains a "/" (forward-slash); otherwise it assumes the argument is a package name. + +</dl> +</div><!-- end 'intents' --> +<script> + $(window).hashchange( function(){ + if ((location.hash == "#IntentSpec") && !($("#IntentSpec a").hasClass("expanded"))) { + $("#IntentSpec a").click(); + } + }); +</script> + + + +<h2 id="pm">Using package manager (pm)</h2> + +<p>Within an adb shell, you can issue commands with the package manager ({@code pm}) tool to +perform actions and queries on application packages installed on the device. While in a shell, +the syntax is:</p> +<pre class="no-pretty-print"> +pm <command> +</pre> + +<p>You can also issue a package manager command directly from adb +without entering a remote shell. For example:</p> +<pre class="no-pretty-print"> +adb shell pm uninstall com.example.MyApp +</pre> + +<p class="table-caption"><strong>Table 3.</strong> Available package manager commands.</p> +<table> +<tr> + <th>Command</th> + <th>Description</th> +</tr> + +<tr> +<td><code> +list packages [options] <FILTER> +</code></td> +<td>Prints all packages, optionally only + those whose package name contains the text in {@code <FILTER>}. <p>Options: +<ul> + <li>{@code -f}: See their associated file. + <li>{@code -d}: Filter to only show disabled packages. + <li>{@code -e}: Filter to only show enabled packages. + <li>{@code -s}: Filter to only show system packages. + <li>{@code -3}: Filter to only show third party packages. + <li>{@code -i}: See the installer for the packages. + <li>{@code -u}: Also include uninstalled packages. + <li>{@code --user <USER_ID>}: The user space to query. +</ul> +</td> +</tr> + +<tr> +<td><code> +list permission-groups +</code></td> +<td>Prints all known permission groups. +</td> +</tr> + +<tr> +<td><code> +list permissions [options] <GROUP> +</code></td> +<td>Prints all known permissions, optionally only + those in {@code <GROUP>}. <p>Options: +<ul> + <li>{@code -g}: Organize by group. + <li>{@code -f}: Print all information. + <li>{@code -s}: Short summary. + <li>{@code -d}: Only list dangerous permissions. + <li>{@code -u}: List only the permissions users will see. +</ul> +</td> +</tr> + +<tr> +<td><code> +list instrumentation +</code></td> +<td>List all test packages. <p>Options: + <ul> + <li>{@code -f}: List the APK file for the test package. + <li>{@code <TARGET_PACKAGE>}: List test packages for only this app. + </ul> +</td> +</tr> + +<tr> +<td><code> +list features +</code></td> +<td>Prints all features of the system. +</td> +</tr> + +<tr> +<td><code> +list libraries +</code></td> +<td>Prints all the libraries supported by the current device. +</td> +</tr> + +<tr> +<td><code> +list users +</code></td> +<td>Prints all users on the system. +</td> +</tr> + +<tr> +<td><code> +path <PACKAGE> +</code></td> +<td>Print the path to the APK of the given {@code <PACKAGE>}. +</td> +</tr> + +<tr> +<td><code> +install [options] <PATH> +</code></td> +<td>Installs a package (specified by {@code <PATH>}) to the system. <p>Options: + <ul> + <li>{@code -l}: Install the package with forward lock. + <li>{@code -r}: Reinstall an exisiting app, keeping its data. + <li>{@code -t}: Allow test APKs to be installed. + <li>{@code -i <INSTALLER_PACKAGE_NAME>}: Specify the installer package name. + <li>{@code -s}: Install package on the shared mass storage (such as sdcard). + <li>{@code -f}: Install package on the internal system memory. + <li>{@code -d}: Allow version code downgrade. + </ul> +</td> +</tr> + +<tr> +<td><code> +uninstall [options] <PACKAGE> +</code></td> +<td>Removes a package from the system. <p>Options: + <ul> + <li>{@code -k}: Keep the data and cache directories around after package removal. + </ul> +</td> +</tr> + +<tr> +<td><code> +clear <PACKAGE> +</code></td> +<td>Deletes all data associated with a package. +</td> +</tr> + +<tr> +<td><code> +enable <PACKAGE_OR_COMPONENT> +</code></td> +<td>Enable the given package or component (written as "package/class"). +</td> +</tr> + +<tr> +<td><code> +disable <PACKAGE_OR_COMPONENT> +</code></td> +<td>Disable the given package or component (written as "package/class"). +</td> +</tr> + +<tr> +<td style="white-space:nowrap"><code> +disable-user [options] <PACKAGE_OR_COMPONENT> +</code></td> +<td><p>Options: + <ul> + <li>{@code --user <USER_ID>}: The user to disable. + </ul> +</td> +</tr> + +<tr> +<td><code> +grant <PACKAGE_PERMISSION> +</code></td> +<td>Grant permissions + to applications. Only optional permissions the application has + declared can be granted. +</td> +</tr> + +<tr> +<td><code> +revoke <PACKAGE_PERMISSION> +</code></td> +<td>Revoke permissions + to applications. Only optional permissions the application has + declared can be revoked. +</td> +</tr> + +<tr> +<td><code> +set-install-location <LOCATION> +</code></td> +<td>Changes the default install location. Location values: +<ul> + <li>{@code 0}: Auto—Let system decide the best location. + <li>{@code 1}: Internal—install on internal device storage. + <li>{@code 2}: External—install on external media. +</ul> +<p class="note"><strong>Note:</strong> This is only intended for debugging; using this can cause + applications to break and other undesireable behavior.</p> +</td> +</tr> + +<tr> +<td><code> +get-install-location +</code></td> +<td>Returns the current install location. Return values: +<ul> + <li>{@code 0 [auto]}: Lets system decide the best location + <li>{@code 1 [internal]}: Installs on internal device storage + <li>{@code 2 [external]}: Installs on external media +</ul> +</td> +</tr> + +<tr> +<td><code> +set-permission-enforced <PERMISSION> [true|false] +</code></td> +<td>Specifies whether the given permission should be enforced. +</td> +</tr> + +<tr> +<td><code> +trim-caches <DESIRED_FREE_SPACE> +</code></td> +<td>Trim cache files to reach the given free space. +</td> +</tr> + +<tr> +<td><code> +create-user <USER_NAME> +</code></td> +<td>Create a new user with the given {@code <USER_NAME>}, + printing the new user identifier of the user. +</td> +</tr> + +<tr> +<td><code> +remove-user <USER_ID> +</code></td> +<td>Remove the user with the given {@code <USER_IDENTIFIER>}, + deleting all data associated with that user +</td> +</tr> + +<tr> +<td><code> +get-max-users +</code></td> +<td>Prints the maximum number of users supported by the device. +</td> +</tr> + +</table> + + +<h2 id="screencap">Taking a device screenshot</h2> + +<p>The {@code screencap} command is a shell utility for taking a screenshot of a device display. +While in a shell, the syntax is: +</p> + +<pre class="no-pretty-print"> +screencap <filename> +</pre> + + +<p>To use the {@code screencap} from the command line, type the following: + +<pre> +$ adb shell screencap /sdcard/screen.png +</pre> + +<p>Here's an example screenshot session, using the adb shell to capture the screenshot and the +{@code pull} command to download the file from the device:<p> + +<pre> +$ adb shell +shell@ $ screencap /sdcard/screen.png +shell@ $ exit +$ adb pull /sdcard/screen.png +</pre> + + +<h2 id="screenrecord">Recording a device screen</h2> + +<p>The {@code screenrecord} command is a shell utility for recording the display of devices + running Android 4.4 (API level 19) and higher. The utility records screen activity to an MPEG-4 + file.</p> + +<p class="note"><strong>Note:</strong> Audio is not recorded with the video file.</p> + +<p>A developer can use this file to create promotional or training videos. While in a shell, the syntax is:</p> + +<pre class="no-pretty-print"> +screenrecord [options] <filename> +</pre> + +<p>To use {@code screenrecord} from the command line, type the following: + +<pre> +$ adb shell screenrecord /sdcard/demo.mp4 +</pre> + +<p>Stop the screen recording by pressing Ctrl-C, otherwise the recording stops automatically +at three minutes or the time limit set by {@code --time-limit}.</p> + +<p>To begin recording your device screen, run the {@code screenrecord} command to record +the video. Then, run the {@code pull} command to download the video from the device to the host +computer. Here's an example recording session:<p> + +<pre> +$ adb shell +shell@ $ screenrecord --verbose /sdcard/demo.mp4 +(press Ctrl-C to stop) +shell@ $ exit +$ adb pull /sdcard/demo.mp4 +</pre> + +<p>The {@code screenrecord} utility can record at any supported resolution and bit rate you + request, while retaining the aspect ratio of the device display. The utility records at the native + display resolution and orientation by default, with a maximum length of three minutes.</p> + +<p>There are some known limitations of the {@code screenrecord} utility that you should be aware + of when using it:</p> + +<ul> + <li>Some devices may not be able to record at their native display resolution. + If you encounter problems with screen recording, try using a lower screen resolution.</li> + <li>Rotation of the screen during recording is not supported. If the screen does rotate during + recording, some of the screen is cut off in the recording.</li> +</ul> + + +<p class="table-caption"><strong>Table 4.</strong> {@code screenrecord} options</p> + +<table> + <tr> + <th>Options</th> + <th>Description</th> + </tr> + + <tr> + <td><code>--help</code> + </td> + <td>Displays command syntax and options</td> + </tr> + + <tr> + <td style="white-space:nowrap"> + <code>--size <WIDTHxHEIGHT></code> + </td> + <td>Sets the video size: {@code 1280x720}. The default value is the device's native + display resolution (if supported), 1280x720 if not. For best results, use a size supported + by your device's Advanced Video Coding (AVC) encoder.</td> + </tr> + + <tr> + <td><code>--bit-rate <RATE></code></td> + <td>Sets the video bit rate for the video, in megabits per second. The default value is 4Mbps. + You can increase the bit rate to improve video quality, but doing so results in larger movie + files. The following example sets the recording bit rate to 6Mbps: + <pre>screenrecord --bit-rate 6000000 /sdcard/demo.mp4</pre> + </td> + </tr> + + <tr> + <td><code>--time-limit <TIME></code></td> + <td>Sets the maximum recording time, in seconds. The default and maximum value is 180 + (3 minutes).</td> + </tr> + + <tr> + <td><code>--rotate</code></td> + <td>Rotates the output 90 degrees. This feature is experimental.</td> + </tr> + + <tr> + <td><code>--verbose</code></td> + <td>Displays log information on the command-line screen. If you do not set this option, + the utility does not display any information while running.</td> + </tr> + +</table> + + +<h2 id="othershellcommands">Other shell commands</h2> + +<p>For a list of all the available shell programs, use the following command:</p> + +<pre class="no-pretty-print">adb shell ls /system/bin</pre> + +<p>Help is available for most of the commands. </p> + +<p>Table 5 lists some of the more common adb shell commands.</p> + +<p class="table-caption"><strong>Table 5.</strong> Some other adb shell commands</p> +<table> +<tr> + <th>Shell Command</th> + <th>Description</th> + <th>Comments</th> +</tr> + +<tr> +<td><code>dumpsys</code></td> +<td>Dumps system data to the screen.</td> +<td rowspan=4">The <a href="{@docRoot}tools/debugging/ddms.html">Dalvik Debug Monitor Server</a> +(DDMS) tool offers integrated debug environment that you may find easier to use.</td> +</tr> + +<tr> +<td><code>dumpstate</code></td> +<td>Dumps state to a file.</td> +</tr> + +<tr> +<td><code>logcat [option]... [filter-spec]...</code></td> +<td>Enables system and app logging and prints output to the screen. </td> +</tr> + +<tr> +<td><code>dmesg</code></td> +<td>Prints kernel debugging messages to the screen. </td> +</tr> + +<tr> +<td><code>start</code></td> +<td>Starts (restarts) an emulator/device instance.</td> +<td> </td> +</tr> + +<tr> +<td><code>stop</code></td> +<td>Stops execution of an emulator/device instance.</td> +<td> </td> +</tr> + +</table>
\ No newline at end of file diff --git a/docs/html/tools/tools_toc.cs b/docs/html/tools/tools_toc.cs index 82515d4..a5e617d 100644 --- a/docs/html/tools/tools_toc.cs +++ b/docs/html/tools/tools_toc.cs @@ -151,7 +151,12 @@ <div class="nav-section-header"><a href="<?cs var:toroot ?>tools/help/index.html"><span class="en">Tools Help</span></a></div> <ul> - <li><a href="<?cs var:toroot ?>tools/help/adb.html">adb</a></li> + <li class="nav-section"> + <div class="nav-section-header"><a href="<?cs var:toroot ?>tools/help/adb.html">adb</a></div> + <ul> + <li><a href="<?cs var:toroot ?>tools/help/shell.html">Shell commands</a></li> + </ul> + </li> <li><a href="<?cs var:toroot ?>tools/help/android.html">android</a></li> <li><a href="<?cs var:toroot ?>tools/help/avd-manager.html">AVD Manager</a></li> <li><a href="<?cs var:toroot ?>tools/help/bmgr.html">bmgr</a> @@ -168,6 +173,7 @@ class="en">Tools Help</span></a></div> <li><a href="<?cs var:toroot ?>tools/help/mksdcard.html">mksdcard</a></li> <li><a href="<?cs var:toroot ?>tools/help/proguard.html" zh-cn-lang="ProGuard">ProGuard</a></li> <li><a href="<?cs var:toroot ?>tools/help/sdk-manager.html">SDK Manager</a></li> + <li><a href="<?cs var:toroot ?>tools/help/sqlite3.html">sqlite3</a></li> <li><a href="<?cs var:toroot ?>tools/help/systrace.html">Systrace</a></li> <li><a href="<?cs var:toroot ?>tools/help/gltracer.html">Tracer for OpenGL ES</a></li> <li><a href="<?cs var:toroot ?>tools/help/traceview.html">Traceview</a></li> diff --git a/docs/html/training/enterprise/app-compatibility.jd b/docs/html/training/enterprise/app-compatibility.jd index 216a799..419ba89 100644 --- a/docs/html/training/enterprise/app-compatibility.jd +++ b/docs/html/training/enterprise/app-compatibility.jd @@ -250,14 +250,14 @@ href="{@docRoot}tools/help/adb.html">Android Debug Bridge</a> (adb) shell support the <code>--user</code> flag, which lets you specify which user to run as. By specifying a user, you can choose whether to run as the unmanaged or managed profile. For -more information, see <a href="{@docRoot}tools/help/adb.html#am">Android Debug -Bridge: Using activity manager (am)</a>.</li> +more information, see <a href="{@docRoot}tools/help/shell.html#am">ADB +Shell Commands</a>.</li> <li>To find the active users on a device, use the adb package manager's <code>list users</code> command. The first number in the output string is the user ID, which you can use with the <code>--user</code> flag. For more -information, see <a href="{@docRoot}tools/help/adb.html#pm">Android Debug -Bridge: Using package manager (pm)</a>.</li> +information, see <a href="{@docRoot}tools/help/shell.html#pm">ADB Shell +Commands</a>.</li> </ul> |