標籤:
Using activity manager (am)
Within an adb shell, you can issue commands with the activity manager (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:
am <command>
You can also issue an activity manager command directly from adb without entering a remote shell. For example:
adb shell am start -a android.intent.action.VIEW
Table 2. Available activity manager commands
Command |
Description |
start [options] <INTENT> |
Start an Activity specified by <INTENT>. See the Specification for <INTENT> arguments. Options are:
- -D: Enable debugging.
- -W: Wait for launch to complete.
- --start-profiler <FILE>: Start profiler and send results to <FILE>.
- -P <FILE>: Like --start-profiler, but profiling stops when the 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.
|
startservice [options] <INTENT> |
Start the Service specified by <INTENT>. See the Specification for <INTENT> arguments. Options are:
- --user <USER_ID> | current: Specify which user to run as; if not specified, then run as the current user.
|
force-stop <PACKAGE> |
Force stop everything associated with <PACKAGE> (the app‘s package name). |
kill [options] <PACKAGE> |
Kill all processes associated with <PACKAGE> (the app‘s package name). This command kills only processes that are safe to kill and that will not impact the user experience. Options are:
- --user <USER_ID> | all | current: Specify user whose processes to kill; all users if not specified.
|
kill-all |
Kill all background processes. |
broadcast [options] <INTENT> |
Issue a broadcast intent. See the Specification for <INTENT> arguments. Options are:
- [--user <USER_ID> | all | current]: Specify which user to send to; if not specified then send to all users.
|
instrument [options] <COMPONENT> |
Start monitoring with an Instrumentation instance. Typically the 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 while running.
- --user <USER_ID> | current: Specify which user instrumentation runs in; current user if not specified.
|
profile start <PROCESS> <FILE> |
Start profiler on <PROCESS>, write results to <FILE>. |
profile stop <PROCESS> |
Stop profiler on <PROCESS>. |
dumpheap [options] <PROCESS> <FILE> |
Dump the heap of <PROCESS>, write to <FILE>. Options are:
- --user [<USER_ID>|current]: When supplying a process name, specify user of process to dump; uses current user if not specified.
- -n: Dump native heap instead of managed heap.
|
set-debug-app [options] <PACKAGE> |
Set application <PACKAGE> to debug. Options are:
- -w: Wait for debugger when application starts.
- --persistent: Retain this value.
|
clear-debug-app |
Clear the package previous set for debugging with set-debug-app. |
monitor [options] |
Start monitoring for crashes or ANRs. Options are:
- --gdb: Start gd bserv on the given port at crash/ANR.
|
screen-compat [on|off] <PACKAGE> |
Control screen compatibility mode of <PACKAGE>. |
display-size [reset|<WxH>] |
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. Example: am display-size 1280x800 |
display-density <dpi> |
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. Example: am display-density 480 |
to-uri <INTENT> |
Print the given intent specification as a URI. See the Specification for <INTENT> arguments. |
to-intent-uri <INTENT> |
Print the given intent specification as an intent: URI. See the Specification for <INTENT> arguments. |
Using package manager (pm)
Within an adb shell, you can issue commandswith the package manager (pm) tool to perform actions and queries onapplication packages installed on the device. While in a shell, the syntax is:
pm <command>
You can also issue a package managercommand directly from adb without entering a remote shell. For example:
adb shell pm uninstall com.example.MyApp
Table 3.Available package manager commands.
Command |
Description |
list packages [options] <FILTER> |
Prints all packages, optionally only those whose package name contains the text in <FILTER>. Options:
- -f: See their associated file.
- -d: Filter to only show disabled packages.
- -e: Filter to only show enabled packages.
- -s: Filter to only show system packages.
- -3: Filter to only show third party packages.
- -i: See the installer for the packages.
- -u: Also include uninstalled packages.
- --user <USER_ID>: The user space to query.
|
list permission-groups |
Prints all known permission groups. |
list permissions [options] <GROUP> |
Prints all known permissions, optionally only those in <GROUP>. Options:
- -g: Organize by group.
- -f: Print all information.
- -s: Short summary.
- -d: Only list dangerous permissions.
- -u: List only the permissions users will see.
|
list instrumentation |
List all test packages. Options:
- -f: List the APK file for the test package.
- <TARGET_PACKAGE>: List test packages for only this app.
|
list features |
Prints all features of the system. |
list libraries |
Prints all the libraries supported by the current device. |
list users |
Prints all users on the system. |
path <PACKAGE> |
Print the path to the APK of the given <PACKAGE>. |
install [options] <PATH> |
Installs a package (specified by <PATH>) to the system. Options:
- -l: Install the package with forward lock.
- -r: Reinstall an exisiting app, keeping its data.
- -t: Allow test APKs to be installed.
- -i <INSTALLER_PACKAGE_NAME>: Specify the installer package name.
- -s: Install package on the shared mass storage (such as sdcard).
- -f: Install package on the internal system memory.
- -d: Allow version code downgrade.
|
uninstall [options] <PACKAGE> |
Removes a package from the system. Options:
- -k: Keep the data and cache directories around after package removal.
|
clear <PACKAGE> |
Deletes all data associated with a package. |
enable <PACKAGE_OR_COMPONENT> |
Enable the given package or component (written as "package/class"). |
disable <PACKAGE_OR_COMPONENT> |
Disable the given package or component (written as "package/class"). |
disable-user [options] <PACKAGE_OR_COMPONENT> |
Options:
- --user <USER_ID>: The user to disable.
|
grant <PACKAGE_PERMISSION> |
Grant permissions to applications. Only optional permissions the application has declared can be granted. |
revoke <PACKAGE_PERMISSION> |
Revoke permissions to applications. Only optional permissions the application has declared can be revoked. |
set-install-location <LOCATION> |
Changes the default install location. Location values:
- 0: Auto—Let system decide the best location.
- 1: Internal—install on internal device storage.
- 2: External—install on external media.
Note: This is only intended for debugging; using this can cause applications to break and other undesireable behavior. |
get-install-location |
Returns the current install location. Return values:
- 0 [auto]: Lets system decide the best location
- 1 [internal]: Installs on internal device storage
- 2 [external]: Installs on external media
|
set-permission-enforced <PERMISSION> [true|false] |
Specifies whether the given permission should be enforced. |
trim-caches <DESIRED_FREE_SPACE> |
Trim cache files to reach the given free space. |
create-user <USER_NAME> |
Create a new user with the given <USER_NAME>, printing the new user identifier of the user. |
remove-user <USER_ID> |
Remove the user with the given <USER_IDENTIFIER>, deleting all data associated with that user |
get-max-users |
Prints the maximum number of users supported by the device. |
adb shell am pm 用法