Android cmd 命令包含了我们之前使用am pm sm 等等命令的集合功能非常强大,下面随便列举一些很实用的功能
1. adb shell cmd package
compile [-m MODE | -r REASON] [-f] [-c] [--split SPLIT_NAME]
[--reset] [--check-prof (true | false)] (-a | TARGET-PACKAGE)
Trigger compilation of TARGET-PACKAGE or all packages if "-a".
Options:
-a: compile all packages
-c: clear profile data before compiling
-f: force compilation even if not needed
-m: select compilation mode
MODE is one of the dex2oat compiler filters:
assume-verified
extract
verify
quicken
space-profile
space
speed-profile
speed
everything
-r: select compilation reason
REASON is one of:
first-boot
boot
install
bg-dexopt
ab-ota
inactive
shared
--reset: restore package to its post-install state
--check-prof (true | false): look at profiles when doing dexopt?
--secondary-dex: compile app secondary dex files
--split SPLIT: compile only the given split name
bg-dexopt-job
Execute the background optimizations immediately.
Note that the command only runs the background optimizer logic. It may
overlap with the actual job but the job scheduler will not be able to
cancel it. It will also run even if the device is not in the idle
maintenance mode.
list features
Prints all features of the system.
list instrumentation [-f] [TARGET-PACKAGE]
Prints all test packages; optionally only those targeting TARGET-PACKAGE
Options:
-f: dump the name of the .apk file containing the test package
list libraries
Prints all system libraries.
list packages [-f] [-d] [-e] [-s] [-3] [-i] [-l] [-u] [-U] [--uid UID] [--user USER_ID] [FILTER]
Prints all packages; optionally only those whose 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
-l: ignored (used for compatibility with older releases)
-U: also show the package UID
-u: also include uninstalled packages
--uid UID: filter to only show packages with the given UID
--user USER_ID: only list packages belonging to the given user
reconcile-secondary-dex-files TARGET-PACKAGE
Reconciles the package secondary dex files with the generated oat files.
list permission-groups
Prints all known permission groups.
list permissions [-g] [-f] [-d] [-u] [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
dump-profiles TARGET-PACKAGE
Dumps method/class profile files to
/data/misc/profman/TARGET-PACKAGE.txt
resolve-activity [--brief] [--components] [--user USER_ID] INTENT
Prints the activity that resolves to the given Intent.
query-activities [--brief] [--components] [--user USER_ID] INTENT
Prints all activities that can handle the given Intent.
query-services [--brief] [--components] [--user USER_ID] INTENT
Prints all services that can handle the given Intent.
query-receivers [--brief] [--components] [--user USER_ID] INTENT
Prints all broadcast receivers that can handle the given Intent.
suspend [--user USER_ID] TARGET-PACKAGE
Suspends the specified package (as user).
unsuspend [--user USER_ID] TARGET-PACKAGE
Unsuspends the specified package (as user).
set-home-activity [--user USER_ID] TARGET-COMPONENT
set the default home activity (aka launcher).
has-feature FEATURE_NAME [version]
prints true and returns exit status 0 when system has a FEATURE_NAME,
otherwise prints false and returns exit status 1
specifications include these flags and arguments:
[-a ] [-d ] [-t ]
[-c [-c ] ...]
[-e|--es ...]
[--esn ...]
[--ez ...]
[--ei ...]
[--el ...]
[--ef ...]
[--eu ...]
[--ecn ]
[--eia [, [,)
[--ela [, [,)
[--efa [, [,)
[--esa [, [,; to embed a comma into a string,
escape it using "\,")
[-f ]
[--grant-read-uri-permission] [--grant-write-uri-permission]
[--grant-persistable-uri-permission] [--grant-prefix-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]
[--receiver-foreground] [--receiver-no-abort]
[--receiver-include-background]
[--selector]
[ | | ]
2. adb shell cmd activity
start-activity [-D] [-N] [-W] [-P ] [--start-profiler ]
[--sampling INTERVAL] [--streaming] [-R COUNT] [-S]
[--track-allocation] [--user | current]
Start an Activity. Options are:
-D: enable debugging
-N: enable native debugging
-W: wait for launch to complete
--start-profiler : start profiler and send results to
--sampling INTERVAL: use sample profiling with INTERVAL microseconds
between samples (use with --start-profiler)
--streaming: stream the profiling output to the specified file
(use with --start-profiler)
-P : like above, but profiling stops when app goes idle
--attach-agent : attach the given agent before binding
-R: repeat the activity launch times. Prior to each repeat,
the top activity will be finished.
-S: force stop the target app before starting the activity
--track-allocation: enable tracking of object allocations
--user | current: Specify which user to run as; if not
specified then run as the current user.
--stack : Specify into which stack should the activity be put.
start-service [--user | current]
Start a Service. Options are:
--user | current: Specify which user to run as; if not
specified then run as the current user.
start-foreground-service [--user | current]
Start a foreground Service. Options are:
--user | current: Specify which user to run as; if not
specified then run as the current user.
stop-service [--user | current]
Stop a Service. Options are:
--user | current: Specify which user to run as; if not
specified then run as the current user.
broadcast [--user | all | current]
Send a broadcast Intent. Options are:
--user | all | current: Specify which user to send to; if not
specified then send to all users.
--receiver-permission : Require receiver to hold permission.
instrument [-r] [-e ] [-p ] [-w]
[--user | current]
[--no-window-animation] [--abi ]
Start an Instrumentation. Typically this target is in the
form / or only if there
is only one instrumentation. Options are:
-r: print raw results (otherwise decode REPORT_KEY_STREAMRESULT). Use with
[-e perf true] to generate raw output for performance measurements.
-e : set argument to . For test runners a
common form is [-e [,...]].
-p : write profiling data to
-m: Write output as protobuf (machine readable)
-w: wait for instrumentation to finish before returning. Required for
test runners.
--user | current: Specify user instrumentation runs in;
current user if not specified.
--no-window-animation: turn off window animations while running.
--abi : Launch the instrumented process with the selected ABI.
This assumes that the process supports the selected ABI.
trace-ipc [start|stop] [--dump-file ]
Trace IPC transactions.
start: start tracing IPC transactions.
stop: stop tracing IPC transactions and dump the results to file.
--dump-file : Specify the file the trace should be dumped to.
profile [start|stop] [--user current] [--sampling INTERVAL]
[--streaming]
Start and stop profiler on a process. The given argument
may be either a process name or pid. Options are:
--user | current: When supplying a process name,
specify user of process to profile; uses current user if not specified.
--sampling INTERVAL: use sample profiling with INTERVAL microseconds
between samples
--streaming: stream the profiling output to the specified file
dumpheap [--user current] [-n] [-g]
Dump the heap of a process. The given argument may
be either a process name or pid. Options are:
-n: dump native heap instead of managed heap
-g: force GC before dumping the heap
--user | current: When supplying a process name,
specify user of process to dump; uses current user if not specified.
set-debug-app [-w] [--persistent]
Set application to debug. Options are:
-w: wait for debugger when application starts
--persistent: retain this value
clear-debug-app
Clear the previously set-debug-app.
set-watch-heap
Start monitoring pss size of , if it is at or
above then a heap dump is collected for the user to report.
clear-watch-heap
Clear the previously set-watch-heap.
bug-report [--progress | --telephony]
Request bug report generation; will launch a notification
when done to select where it should be delivered. Options are:
--progress: will launch a notification right away to show its progress.
--telephony: will dump only telephony sections.
force-stop [--user | all | current]
Completely stop the given application package.
crash [--user ]
Induce a VM crash in the specified package or process
kill [--user | all | current]
Kill all processes associated with the given application.
kill-all
Kill all processes that are safe to kill (cached, etc).
make-uid-idle [--user | all | current]
If the given application's uid is in the background and waiting to
become idle (not allowing background services), do that now.
monitor [--gdb ]
Start monitoring for crashes or ANRs.
--gdb: start gdbserv on the given port at crash/ANR
watch-uids [--oom
Start watching for and reporting uid state changes.
--oom: specify a uid for which to report detailed change messages.
hang [--allow-restart]
Hang the system.
--allow-restart: allow watchdog to perform normal system restart
restart
Restart the user-space system.
idle-maintenance
Perform idle maintenance now.
screen-compat [on|off]
Control screen compatibility mode of .
package-importance
Print current importance of .
to-uri [INTENT]
Print the given Intent specification as a URI.
to-intent-uri [INTENT]
Print the given Intent specification as an intent: URI.
to-app-uri [INTENT]
Print the given Intent specification as an android-app: URI.
switch-user
Switch to put USER_ID in the foreground, starting
execution of that user if it is currently stopped.
get-current-user
Returns id of the current foreground user.
start-user
Start USER_ID in background if it is currently stopped;
use switch-user if you want to start the user in foreground
unlock-user [TOKEN_HEX]
Attempt to unlock the given user using the given authorization token.
stop-user [-w] [-f]
Stop execution of USER_ID, not allowing it to run any
code until a later explicit start or switch to it.
-w: wait for stop-user to complete.
-f: force stop even if there are related users that cannot be stopped.
is-user-stopped
Returns whether has been stopped or not.
get-started-user-state
Gets the current state of the given started user.
track-associations
Enable association tracking.
untrack-associations
Disable and clear association tracking.
get-uid-state
Gets the process state of an app given its .
attach-agent
Attach an agent to the specified , which may be either a process name or a PID.
get-config
Rtrieve the configuration and any recent configurations of the device.
supports-multiwindow
Returns true if the device supports multiwindow.
supports-split-screen-multi-window
Returns true if the device supports split screen multiwindow.
suppress-resize-config-changes
Suppresses configuration changes due to user resizing an activity/task.
set-inactive [--user ] true|false
Sets the inactive state of an app.
get-inactive [--user ]
Returns the inactive state of an app.
send-trim-memory [--user ]
[HIDDEN|RUNNING_MODERATE|BACKGROUND|RUNNING_LOW|MODERATE|RUNNING_CRITICAL|COMPLETE]
Send a memory trim event to a . May also supply a raw trim int level.
display [COMMAND] [...]: sub-commands for operating on displays.
move-stack
Move from its current display to .
stack [COMMAND] [...]: sub-commands for operating on activity stacks.
start
Start a new activity on using
move-task [true|false]
Move from its current stack to the top (true) or
bottom (false) of .
resize
Change size and position to .
resize-animated
Same as resize, but allow animation.
resize-docked-stack []
Change docked stack to
and supplying temporary different task bounds indicated by
size-docked-stack-test: [DELAY_MS]
Test command for sizing docked stack by
increments from the side eft, op, ight, or ottom
applying the optional [DELAY_MS] between each step.
move-top-activity-to-pinned-stack:
Moves the top activity from
to the pinned stack using for the
bounds of the pinned stack.
positiontask
Place in at
list
List all of the activity stacks and their sizes.
info
Display the information about activity stack .
remove
Remove stack .
task [COMMAND] [...]: sub-commands for operating on activity tasks.
lock
Bring to the front and don't allow other tasks to run.
lock stop
End the current task lock.
resizeable [0|1|2|3]
Change resizeable mode of to one of the following:
0: unresizeable
1: crop_windows
2: resizeable
3: resizeable_and_pipable
resize
Makes sure is in a stack with the specified bounds.
Forces the task to be resizeable and creates a stack if no existing stack
has the specified bounds.
drag-task-test [DELAY_MS]
Test command for dragging/moving by
increments around the screen applying the optional [DELAY_MS]
between each step.
size-task-test [DELAY_MS]
Test command for sizing by
increments within the screen applying the optional [DELAY_MS] between
each step.
update-appinfo [...]
Update the ApplicationInfo objects of the listed packages for
without restarting any processes.
write
Write all pending state to storage.
specifications include these flags and arguments:
[-a ] [-d ] [-t ]
[-c [-c ] ...]
[-e|--es ...]
[--esn ...]
[--ez ...]
[--ei ...]
[--el ...]
[--ef ...]
[--eu ...]
[--ecn ]
[--eia [, [,)
[--ela [, [,)
[--efa [, [,)
[--esa [, [,; to embed a comma into a string,
escape it using "\,")
[-f ]
[--grant-read-uri-permission] [--grant-write-uri-permission]
[--grant-persistable-uri-permission] [--grant-prefix-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]
[--receiver-foreground] [--receiver-no-abort]
[--receiver-include-background]
[--selector]
[ | | ]
3. adb shell cmd statusbar
expand-notifications
Open the notifications panel.
expand-settings
Open the notifications panel and expand quick settings if present.
collapse
Collapse the notifications and settings panel.
add-tile COMPONENT
Add a TileService of the specified component
remove-tile COMPONENT
Remove a TileService of the specified component
click-tile COMPONENT
Click on a TileService of the specified component
check-support
Check if this device supports QS + APIs
get-status-icons
Print the list of status bar icons and the order they appear in
4. adb shell cmd overlay
dump [--verbose] [--user USER_ID] [PACKAGE [PACKAGE [...]]]
Print debugging information about the overlay manager.
list [--user USER_ID] [PACKAGE [PACKAGE [...]]]
Print information about target and overlay packages.
Overlay packages are printed in priority order. With optional
parameters PACKAGEs, limit output to the specified packages
but include more information about each package.
enable [--user USER_ID] PACKAGE
Enable overlay package PACKAGE.
disable [--user USER_ID] PACKAGE
Disable overlay package PACKAGE.
set-priority [--user USER_ID] PACKAGE PARENT|lowest|highest
Change the priority of the overlay PACKAGE to be just higher than
the priority of PACKAGE_PARENT If PARENT is the special keyword
'lowest', change priority of PACKAGE to the lowest priority.
If PARENT is the special keyword 'highest', change priority of
PACKAGE to the highest priority.
5. adb shell cmd settings
get [--user | current] NAMESPACE KEY
Retrieve the current value of KEY.
put [--user | current] NAMESPACE KEY VALUE [TAG] [default]
Change the contents of KEY to VALUE.
TAG to associate with the setting.
{default} to set as the default, case-insensitive only for global/secure namespace
delete NAMESPACE KEY
Delete the entry for KEY.
reset [--user | current] NAMESPACE {PACKAGE_NAME | RESET_MODE}
Reset the global/secure table for a package with mode.
RESET_MODE is one of {untrusted_defaults, untrusted_clear, trusted_defaults}, case-insensitive
list NAMESPACE
Print all defined keys.
NAMESPACE is one of {system, secure, global}, case-insensitive
6. adb shell cmd appops
set [--user ]
Set the mode for a particular application and operation.
get [--user ] []
Return the mode for a particular application and optional operation.
query-op [--user ] []
Print all packages that currently have the given op in the given mode.
reset [--user ] []
Reset the given application or all applications to default modes.
write-settings
Immediately write pending changes to storage.
read-settings
Read the last written settings, replacing current state in RAM.
options:
an Android package name.
an AppOps operation.
one of allow, ignore, deny, or default
the user id under which the package is installed. If --user is not
specified, the current user is assumed.
7. adb shell cmd battery
set [-f] [ac|usb|wireless|status|level|temp|present|invalid]
Force a battery property value, freezing battery state.
-f: force a battery change broadcast be sent, prints new sequence.
unplug [-f]
Force battery unplugged, freezing battery state.
-f: force a battery change broadcast be sent, prints new sequence.
reset [-f]
Unfreeze battery state, returning to current hardware values.
-f: force a battery change broadcast be sent, prints new sequence.
8.