ADB,即 Android Debug Bridge
Android 调试桥 (adb) 是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。该工具作为一个客户端-服务器程序,包括三个组件:
可以在 android_sdk/platform-tools/ 中找到 adb 工具。
终端下输入adb命令可以查看ADB工具的命令参数。
Android Debug Bridge version 1.0.40
Version 4986621
Installed as E:\Android\Sdk\platform-tools\adb.exe
global options:
-a listen on all network interfaces, not just localhost
-d use USB device (error if multiple devices connected)
-e use TCP/IP device (error if multiple TCP/IP devices available)
-s SERIAL use device with given serial (overrides $ANDROID_SERIAL)
-t ID use device with given transport id
-H name of adb server host [default=localhost]
-P port of adb server [default=5037]
-L SOCKET listen on given socket for adb server [default=tcp:localhost:5037]
general commands:
devices [-l] list connected devices (-l for long output)
help show this help message
version show version num
networking:
connect HOST[:PORT] connect to a device via TCP/IP [default port=5555]
disconnect [HOST[:PORT]]
disconnect from given TCP/IP device [default port=5555], or all
forward --list list all forward socket connections
forward [--no-rebind] LOCAL REMOTE
forward socket connection using:
tcp:<port> (<local> may be "tcp:0" to pick any open port)
localabstract:<unix domain socket name>
localreserved:<unix domain socket name>
localfilesystem:<unix domain socket name>
dev:<character device name>
jdwp:<process pid> (remote only)
forward --remove LOCAL remove specific forward socket connection
forward --remove-all remove all forward socket connections
ppp TTY [PARAMETER...] run PPP over USB
reverse --list list all reverse socket connections from device
reverse [--no-rebind] REMOTE LOCAL
reverse socket connection using:
tcp:<port> (<remote> may be "tcp:0" to pick any open port)
localabstract:<unix domain socket name>
localreserved:<unix domain socket name>
localfilesystem:<unix domain socket name>
reverse --remove REMOTE remove specific reverse socket connection
reverse --remove-all remove all reverse socket connections from device
file transfer:
push [--sync] LOCAL... REMOTE
copy local files/directories to device
--sync: only push files that are newer on the host than the device
pull [-a] REMOTE... LOCAL
copy files/dirs from device
-a: preserve file timestamp and mode
sync [all|data|odm|oem|product|system|vendor]
sync a local build from $ANDROID_PRODUCT_OUT to the device (default all)
-l: list but don't copy
shell:
shell [-e ESCAPE] [-n] [-Tt] [-x] [COMMAND...]
run remote shell command (interactive shell if no command given)
-e: choose escape character, or "none"; default '~'
-n: don't read from stdin
-T: disable PTY allocation
-t: force PTY allocation
-x: disable remote exit codes and stdout/stderr separation
emu COMMAND run emulator console command
app installation:
install [-lrtsdg] [--instant] PACKAGE
install-multiple [-lrtsdpg] [--instant] PACKAGE...
push package(s) to the device and install them
-l: forward lock application
-r: replace existing application
-t: allow test packages
-s: install application on sdcard
-d: allow version code downgrade (debuggable packages only)
-p: partial application install (install-multiple only)
-g: grant all runtime permissions
--instant: cause the app to be installed as an ephemeral install app
uninstall [-k] PACKAGE
remove this app package from the device
'-k': keep the data and cache directories
backup/restore:
to show usage run "adb shell bu help"
debugging:
bugreport [PATH]
write bugreport to given PATH [default=bugreport.zip];
if PATH is a directory, the bug report is saved in that directory.
devices that don't support zipped bug reports output to stdout.
jdwp list pids of processes hosting a JDWP transport
logcat show device log (logcat --help for more)
security:
disable-verity disable dm-verity checking on userdebug builds
enable-verity re-enable dm-verity checking on userdebug builds
keygen FILE
generate adb public/private key; private key stored in FILE,
public key stored in FILE.pub (existing files overwritten)
scripting:
wait-for[-TRANSPORT]-STATE
wait for device to be in the given state
State: device, recovery, sideload, or bootloader
Transport: usb, local, or any [default=any]
get-state print offline | bootloader | device
get-serialno print <serial-number>
get-devpath print <device-path>
remount remount partitions read-write
reboot [bootloader|recovery|sideload|sideload-auto-reboot]
reboot the device; defaults to booting system image but
supports bootloader and recovery too. sideload reboots
into recovery and automatically starts sideload mode,
sideload-auto-reboot is the same but reboots after sideloading.
sideload OTAPACKAGE sideload the given full OTA package
root restart adbd with root permissions
unroot restart adbd without root permissions
usb restart adb server listening on USB
tcpip PORT restart adb server listening on TCP on PORT
internal debugging:
start-server ensure that there is a server running
kill-server kill the server if it is running
reconnect kick connection from host side to force reconnect
reconnect device kick connection from device side to force reconnect
reconnect offline reset offline/unauthorized devices to force reconnect
environment variables:
$ADB_TRACE
comma-separated list of debug info to log:
all,adb,sockets,packets,rwx,usb,sync,sysdeps,transport,jdwp
$ADB_VENDOR_KEYS colon-separated list of keys (files or directories)
$ANDROID_SERIAL serial number to connect to (see -s)
$ANDROID_LOG_TAGS tags to be used by logcat (see logcat --help)
adb devices
输出格式如下
List of devices attached
serial_number state
选择指定设备
adb -s serial_numbe
选择唯一连接的 USB 设备
adb -d
选择唯一运行的模拟器实例
adb -e
adb install apk_path
支持参数
参数 | 说明 |
---|---|
-l | 标识本应用属于受限应用,应用将会被安装到保护目录 |
-r | 替换已存在应用 |
-t | 测试package标志,debug版本 |
-s | 将应用安装到sdcard |
-d | 忽略版本号安装apk |
-p | 部分安装apk标志 |
-g | 授予所有运行时权限 |
–instant | 使应用程序作为临时安装应用程序安装 |
命令格式
install [-lrtsdg] [--instant] PACKAGE
install-multiple [-lrtsdpg] [--instant] PACKAGE...
push package(s) to the device and install them
-l: forward lock application
-r: replace existing application
-t: allow test packages
-s: install application on sdcard
-d: allow version code downgrade (debuggable packages only)
-p: partial application install (install-multiple only)
-g: grant all runtime permissions
--instant: cause the app to be installed as an ephemeral install app
常见的安装错误
INSTALL_FAILED_ALREADY_EXISTS | 程序已经存在 |
INSTALL_FAILED_INVALID_APK | 无效的APK |
INSTALL_FAILED_INVALID_URI | 无效的链接 |
INSTALL_FAILED_INSUFFICIENT_STORAGE | 没有足够的存储空间 |
INSTALL_FAILED_DUPLICATE_PACKAGE | 已存在同名程序 |
INSTALL_FAILED_NO_SHARED_USER | 要求的共享用户不存在 |
INSTALL_FAILED_UPDATE_INCOMPATIBLE | 版本不能共存 |
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE | 需求的共享用户签名错误 |
INSTALL_FAILED_MISSING_SHARED_LIBRARY | 需求的共享库已丢失 |
INSTALL_FAILED_REPLACE_COULDNT_DELETE | 需求的共享库无效 |
INSTALL_FAILED_DEXOPT | dex优化验证失败 |
INSTALL_FAILED_OLDER_SDK | 系统版本过旧 |
INSTALL_FAILED_CONFLICTING_PROVIDER | 存在同名的内容提供者 |
INSTALL_FAILED_NEWER_SDK | 系统版本过新 |
INSTALL_FAILED_TEST_ONLY | 调用者不被允许测试的测试程序 |
INSTALL_FAILED_CPU_ABI_INCOMPATIBLE | 包含的本机代码不兼容 |
CPU_ABIINSTALL_FAILED_MISSING_FEATURE | 使用了一个无效的特性 |
INSTALL_FAILED_CONTAINER_ERROR | SD卡访问失败 |
INSTALL_FAILED_INVALID_INSTALL_LOCATION | 无效的安装路径 |
INSTALL_FAILED_MEDIA_UNAVAILABLE | SD卡不存在 |
INSTALL_FAILED_INTERNAL_ERROR | 系统问题导致安装失败 |
DEFAULT | 未知错误 |
adb uninstall packagename
支持参数
参数 | 说明 |
---|---|
-k | 保留数据和缓存目录 |
卸载应用需要使用应用的包名
uninstall [-k] PACKAGE
remove this app package from the device
‘-k’: keep the data and cache directories
adb forward tcp:6100 local:logd
可以使用 forward 命令设置任意端口转发 — 将对特定主机端口的请求转发到模拟器/设备实例上的其他端口。
设置主机端口 6100 到模拟器/设备端口 7100 的转发:adb forward tcp:6100 tcp:710
adb push local remote
将文件文件或目录(及其子目录)复制到模拟器或设备
adb pull remote local
从模拟器或设备复制文件或目录(及其子目录)
adb start-server 启动adb服务
adb kill-server 关闭adb服务
adb [-d|-e|-s serial_number] shell shell_command
可以向设备发送shell命令进行调试
adb root
adb remount
截取当前屏幕画面
screencap [-hp] [-d display-id] [FILENAME]
-h: this message
-p: save the file as a png.
-d: specify the display id to capture, default 0.
If FILENAME ends with .png it will be saved as a png.
If FILENAME is not given, the results will be printed to stdout.
参数说明
命令 | 说明 | 使用 |
---|---|---|
-h | 帮助信息 | |
-p | 将文件保存为png | screencap -p /mnt/card/test.png |
-d | 显示捕获的信息? |
如果文件名以png结尾,将会作为png保存,如果没有给出文件名,将结果打印到标准输出。
示例
screencap filename
录制屏幕内容
usage: screenshot [-s soundfile] filename.png
-s: play a sound effect to signal success
-i: autoincrement to avoid overwriting filename.png
参数说明
参数 | 说明 |
---|---|
-s | 播放声音效果,如果成功 |
-i | 自动增量避免filename.png被重写 |
示例
screenshot -s /sdcard/screen.png
录制屏幕内容
Usage: screenrecord [options] <filename>
Records the device's display to a .mp4 file.
Options:
--size WIDTHxHEIGHT
Set the video size, e.g. "1280x720". Default is the device's main
display resolution (if supported), 1280x720 if not. For best results,
use a size supported by the AVC encoder.
--bit-rate RATE
Set the video bit rate, in megabits per second. Default 4Mbps.
--time-limit TIME
Set the maximum recording time, in seconds. Default / maximum is 180.
--rotate
Rotate the output 90 degrees.
--verbose
Display interesting information on stdout.
--help
Show this message.
Recording continues until Ctrl-C is hit or the time limit is reached.
参数说明
命令 | 说明 |
---|---|
–size WIDTHxHEIGHT | 设置视频大小如"1280x720"。默认是设备的主显示分辨率如果支持的话,使用AVC编码支持为了更好的结果 |
–bit-rate RATE | 设置视频的比特率,没每秒兆比特。默认4mbps |
–time-limit TIME | 设置最大记录时间,秒。默认值/最大值为180秒 |
–rotate | 旋转输出90度 |
–verbose | 显示在标准输出上有趣的信息 |
–help | 帮助信息 |
Usage: logcat [options] [filterspecs]
options include:
-s Set default filter to silent.
Like specifying filterspec '*:S'
-f <filename> Log to file. Default is stdout
-r <kbytes> Rotate log every kbytes. Requires -f
-n <count> Sets max number of rotated logs to <count>, default 4
-v <format> Sets the log print format, where <format> is:
brief color long printable process raw tag thread
threadtime time usec
-D print dividers between each log buffer
-c clear (flush) the entire log and exit
-d dump the log and then exit (don't block)
-t print only the most recent lines (implies -d)
-t ' <time>' print most recent lines since specified time (implies -d)
-T print only the most recent lines (does not imply -d)
-T ' <time>' print most recent lines since specified time (not imply -d)
count is pure numerical, time is 'MM-DD hh:mm:ss.mmm'
-g get the size of the log's ring buffer and exit
-L dump logs from prior to last reboot
-b <buffer> Request alternate ring buffer, 'main', 'system', 'radio',
'events', 'crash' or 'all'. Multiple -b parameters are
allowed and results are interleaved. The default is
-b main -b system -b crash.
-B output the log in binary.
-S output statistics.
-G <size> set size of log ring buffer, may suffix with K or M.
-p print prune white and ~black list. Service is specified as
UID, UID/PID or /PID. Weighed for quicker pruning if prefix
with ~, otherwise weighed for longevity if unadorned. All
other pruning activity is oldest first. Special case ~!
represents an automatic quicker pruning for the noisiest
UID as determined by the current statistics.
-P ' ...'
set prune white and ~black list, using same format as
printed above. Must be quoted.
filterspecs are a series of
<tag>[:priority]
where <tag> is a log component tag (or * for all) and priority is:
V Verbose (default for <tag>)
D Debug (default for '*')
I Info
W Warn
E Error
F Fatal
S Silent (suppress all output)
'*' by itself means '*:D' and <tag> by itself means <tag>:V.
If no '*' filterspec or -s on command line, all filter defaults to '*:V'.
eg: '*:S ' prints only <tag>, ':S' suppresses all <tag> log messages.
If not specified on the command line, filterspec is set from ANDROID_LOG_TAGS.
If not specified with -v on command line, format is set from ANDROID_PRINTF_LOG
or defaults to "threadtime"
使用参数
参数 | 描述 |
---|---|
-b | 加载一个可使用的日志缓冲区供查看,比如event和radio。默认值是main |
-c | 清除缓冲区中的全部日志并退出(清除完后可以使用-g查看缓冲区) |
-d | 将缓冲区的log转存到屏幕中然后退出 |
-f | 将log输出到指定的文件中<文件名>.默认为标准输出(stdout) |
-g | 打印日志缓冲区的大小并退出 |
-n | 设置日志的最大数目,默认值是4,需要和-r选项一起使用 |
-r | 当日志文件达到指定kbytes时,使用新文件记录。默认值是16,需要和-f选项一起使用 |
-s | 设置过滤器 |
-v | 设置输出格式的日志消息。默认是短暂的格式。支持的格式列表 |
-s
可以设置过滤的log级别
adb logcat -s *:W
adb logcat -s Settings:V
注:log的级别有以下
V verbose
D debug
I info
W warning
E error
F fatal
S silent
-f
指定log输出到文件
在设备内可以,不能通过adb logcat -f filename
运行
logcat -f /sdcard/log.txt
是可以的
-v
设置日志打印格式,其中<格式>是
-c
清除(刷新)整个日志
-d
将缓冲区的log打印到屏幕并退出(不会阻塞)
-t
只打印最新的几条log
-g
获取日志的环形缓冲区和出口规模adb logcat -g
命令
main: ring buffer is 256Kb (233Kb consumed), max entry is 5120b, max payload is 4076b
system: ring buffer is 256Kb (255Kb consumed), max entry is 5120b, max payload is 4076b
crash: ring buffer is 256Kb (26Kb consumed), max entry is 5120b, max payload is 4076b
-b
加载一个可使用的日志缓冲区提供查看,默认值是main
adb logcat -b main -b system -b radio -b events
adb logcat -b all
在Android中不同的log写到不同的设备中,共有/dev/log/system, /dev/log/main, /dev/log/radion, /dev/log/events四中类型。
其中默认Log.v等写入/dev/log/main中。Slog写入/dev/log/system中。
adb logcat 输出的只有system log
-B
以二进制方式输出日志
-S
输出统计
-G
设置日志环缓冲区的大小,可以用K或M后缀
adb logcat -G 20M
-p(不清楚)
打印白和黑名单。服务指定为UID,UID / PID或者PID。如果用前缀的话,要修剪更快的重量,否则,如果不加修饰的话,会延长寿命。其他所有修剪活动都是最早的。特殊情况!
是一个自动快速修剪最吵闹的UID由目前的统计确定。
-P ‘ …’
set prune white and ~black list, using same format as printed above. Must be quoted
main: ring buffer is 256Kb (233Kb consumed), max entry is 5120b, max payload is 4076b
system: ring buffer is 256Kb (255Kb consumed), max entry is 5120b, max payload is 4076b
crash: ring buffer is 256Kb (26Kb consumed), max entry is 5120b, max payload is 4076b
ADB logcat用法
方法1:(电脑端和手机端)
1.让电脑和手机处于同一个wifi下。
2.将手机进行root,如果没有root下载一个360的一键root,很方便。
3.手机端下载Wifi_ADB(本人测试成功)或者adb_wireless(本人测试不成功),打开运行。
4.电脑端打开cmd窗口,进入adb.exe所在目录(在sdk/platform-tools目录下),输入adb connect a.b.c.d 其中a.b.c.d是手机端ip,在Wifi_ADB中会显示。
5.eclipse中正常运行程序就可以通过wifi来调试了。
三、方法2:(电脑端和手机端)
1.同方法1.1
2.同方法1.2
3.下载一个shell软件,网上有很多。(从手机端设置,不用再下载Wifi_ADB或adb_wireless)
su//获取root权限
setprop service.adb.tcp.port 5555//设置监听的端口,端口可以自定义,如5554,5555是默认的
stop adbd//关闭adbd
start adbd//重新启动adbd
4.同方法1.4,但是有一点需要注意,就是如果在第三步中将端口设置为5555之外的端口的话,则需要adb connect a.b.c.d:e,其中e是新设定的端口号。
5.同方法1.5
6.如果要关闭的话,则将第三步中的5555改成-1重新执行一遍即可。
抓取dumpsys
adb shell dumpsys
获取应用内存信息
adb shell dumpsys meminfo <package_name>
名词说明
dalvik | dalvik使用的内存 |
native | native堆上的内存,指C\C++堆的内存(android 3.0以后bitmap就是放在这儿) |
other | 除了dalvik和native的内存,包含C\C++非堆内存 |
Pss | 该内存指将共享内存按比例分配到使用了共享内存的进程 |
allocated | 已使用的内存 |
free | 空闲的内存 |
private dirty | 非共享,又不能被换页出去的内存(比如linux系统中为了提高分配内存速度而缓冲的小对象,即使你的进程已经退出,该内存也不会被释放) |
share dirty | 共享,但有不能被换页出去的内存 |
抓取dumpstate
adb shell dumpstate
抓取内核信息,kernel log
adb shell dmesg
设置settings数据库
adb shell settings
控制系统属性
adb shell setprop
adb shell getprop
输入事件
adb shell input
输入按键事件
adb sehll input keyevent event_value
在屏幕上做划屏操作
前四个数为坐标点,后面是滑动的时间(单位毫秒)
adb shell input swipe x1 y1 x2 y2 time
在屏幕上做点击操作
屏幕上点击坐标点x, y的位置。androi系统中坐标(0,0)在左上角。
adb shell input tap x y
输入字符
str表示输入的文本
adb shell input text str
窗口管理
adb shell wm
进程信息
adb shell ps
cup占用情况
adb shell top
常用参数说明
参数 | 说明 |
---|---|
-m | 显示数量 |
-s | 按指定行排序 |
查看cpu占用
top -m 10 -s cpu
busybox
adb shell busybox
控制Activity Manager 常用命令
命令 | 说明 |
---|---|
start [options] intent | 启动 intent 指定的 Activity。请参阅 intent 参数的规范。选项包括:· -D:启用调试。· -W:等待启动完成。· --start-profiler file:启动分析器并将结果发送到 file。· -P file:类似于 --start-profiler,但当应用进入空闲状态时分析停止。· -R count:重复 Activity 启动 count 次数。在每次重复前,将完成顶部 Activity。· -S:启动 Activity 前强行停止目标应用。· --opengl-trace:启用 OpenGL 函数的跟踪。· --user user_id | current:指定要作为哪个用户运行;如果未指定,则作为当前用户运行。 |
startservice [options] intent | 启动 intent 指定的 Service。请参阅 intent 参数的规范。选项包括:· --user user_id | current:指定要作为哪个用户运行;如果未指定,则作为当前用户运行。 |
force-stop package | 强行停止与 package(应用的包名称)关联的所有应用。 |
kill [options] package | 终止与 package(应用的包名称)关联的所有进程。此命令仅终止可安全终止且不会影响用户体验的进程。选项包括:· --user user_id | all | current:指定将终止其进程的用户;如果未指定,则终止所有用户的进程。 |
kill-all | 终止所有后台进程。 |
broadcast [options] intent | 发出广播 intent。请参阅 intent 参数的规范。选项包括:· [–user user_id | all | current]:指定要发送到的用户;如果未指定,则发送到所有用户。 |
instrument [options] component | 使用 Instrumentation 实例启动监控。通常,目标 component 是表单 test_package/runner_class。选项包括:· -r:输出原始结果(否则对 report_key_streamresult 进行解码)。与 [-e perf true] 结合使用以生成性能测量的原始输出。· -e name value:将参数 name 设为 value。对于测试运行器,通用表单为 -etestrunner_flag value[,value…]。· -p file:将分析数据写入 file。· -w:先等待仪器完成,然后再返回。测试运行器需要使用此选项。· --no-window-animation:运行时关闭窗口动画。· --user user_id | current:指定仪器在哪个用户中运行;如果未指定,则在当前用户中运行。 |
profile start process file | 启动 process 的分析器,将结果写入 file。 |
profile stop process | 停止 process 的分析器。 |
dumpheap [options] process file | 转储 process 的堆,写入 file。选项包括:· --user [user_id|current]:提供进程名称时,指定要转储的进程用户;如果未指定,则使用当前用户。· -n:转储原生堆,而非托管堆。 |
set-debug-app [options] package | 将应用 package 设为调试。选项包括:· -w:应用启动时等待调试程序。· --persistent:保留此值。 |
clear-debug-app | 使用 set-debug-app 清除以前针对调试用途设置的软件包。 |
monitor [options] | 启动对崩溃或 ANR 的监控。选项包括:· --gdb:在崩溃/ANR 时在给定端口上启动 gdbserv。 |
screen-compat {on|off} package | 控制 package 的屏幕兼容性模式。 |
display-size [reset|widthxheight] | 替换模拟器/设备显示尺寸。此命令对于在不同尺寸的屏幕上测试您的应用非常有用,它支持使用大屏设备模仿小屏幕分辨率(反之亦然)。示例: am display-size 1280x800 |
display-density dpi | 替换模拟器/设备显示密度。此命令对于在不同密度的屏幕上测试您的应用非常有用,它支持使用低密度屏幕在高密度环境环境上进行测试(反之亦然)。示例: am display-density 480 |
to-uri intent | 将给定的 intent 规范以 URI 的形式输出。请参阅 intent 参数的规范。 |
to-intent-uri intent | 将给定的 intent 规范以 intent:URI 的形式输出。请参阅 intent 参数的规范。 |
intent 参数的规范
对于采用 intent 参数的 Activity Manager 命令,您可以使用以下选项指定 intent:
-a action
指定 intent 操作,如“android.intent.action.VIEW”。此指定只能声明一次。
-d data_uri
指定 intent 数据 URI,如“content://contacts/people/1”。此指定只能声明一次。
-t mime_type
指定 intent MIME 类型,如“image/png”。此指定只能声明一次。
-c category
指定 intent 类别,如“android.intent.category.APP_CONTACTS”。
-n component
指定带有软件包名称前缀的组件名称以创建显式 intent,如“com.example.app/.ExampleActivity”。
-f flags
将标志添加到 setFlags() 支持的 intent。
–esn extra_key
添加一个 null extra。URI intent 不支持此选项。
-e|–es extra_key extra_string_value
添加字符串数据作为键值对。
–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
添加 URI 数据作为键值对。
–ecn extra_key extra_component_name_value
添加组件名称,将其作为 ComponentName 对象进行转换和传递。
–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…]
添加浮点型数组。
–grant-read-uri-permission
包含标志 FLAG_GRANT_READ_URI_PERMISSION。
–grant-write-uri-permission
包含标志 FLAG_GRANT_WRITE_URI_PERMISSION。
–debug-log-resolution
包含标志 FLAG_DEBUG_LOG_RESOLUTION。
–exclude-stopped-packages
包含标志 FLAG_EXCLUDE_STOPPED_PACKAGES。
–include-stopped-packages
包含标志 FLAG_INCLUDE_STOPPED_PACKAGES。
–activity-brought-to-front
包含标志 FLAG_ACTIVITY_BROUGHT_TO_FRONT。
–activity-clear-top
包含标志 FLAG_ACTIVITY_CLEAR_TOP。
–activity-clear-when-task-reset
包含标志 FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET。
–activity-exclude-from-recents
包含标志 FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS。
–activity-launched-from-history
包含标志 FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY。
–activity-multiple-task
包含标志 FLAG_ACTIVITY_MULTIPLE_TASK。
–activity-no-animation
包含标志 FLAG_ACTIVITY_NO_ANIMATION。
–activity-no-history
包含标志 FLAG_ACTIVITY_NO_HISTORY。
–activity-no-user-action
包含标志 FLAG_ACTIVITY_NO_USER_ACTION。
–activity-previous-is-top
包含标志 FLAG_ACTIVITY_PREVIOUS_IS_TOP。
–activity-reorder-to-front
包含标志 FLAG_ACTIVITY_REORDER_TO_FRONT。
–activity-reset-task-if-needed
包含标志 FLAG_ACTIVITY_RESET_TASK_IF_NEEDED。
–activity-single-top
包含标志 FLAG_ACTIVITY_SINGLE_TOP。
–activity-clear-task
包含标志 FLAG_ACTIVITY_CLEAR_TASK。
–activity-task-on-home
包含标志 FLAG_ACTIVITY_TASK_ON_HOME。
–receiver-registered-only
包含标志 FLAG_RECEIVER_REGISTERED_ONLY。
–receiver-replace-pending
包含标志 FLAG_RECEIVER_REPLACE_PENDING。
–selector
需要使用 -d 和 -t 选项以设置 intent 数据和类型。
URI component package
如果不受上述某一选项的限制,您可以直接指定 URI、软件包名称和组件名称。当参数不受限制时,如果参数包含一个“:”(冒号),则此工具假定参数是一个 URI;如果参数包含一个“/”(正斜杠),则此工具假定参数是一个组件名称;否则,此工具假定参数是一个软件包名称。
am broadcast 命令可以发送系统广播
参数说明
[-a <ACTION>]
[-d <DATA_URI>]
[-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> …]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
[-n <COMPONENT>]
[-f <FLAGS>]
[<URI>]
示例:adb shell am startservice -n "jun.gpsprovidertest/.GPSTestService" --ez gps true
启动一个activity
adb shell am start -n packagename/packagename.activityname
示例:adb shell am start -n com.android.settings/.Settings
启动一个系统服务
adb shell am startservice -n packagename/packagename.servicename
包管理,对应PackageManagerService服务。
usage: pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]
pm list permission-groups
pm list permissions [-g] [-f] [-d] [-u] [GROUP]
pm list instrumentation [-f] [TARGET-PACKAGE]
pm list features
pm list libraries
pm list users
pm path PACKAGE
pm dump PACKAGE
pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f]
[--algo <algorithm name> --key <key-in-hex> --iv <IV-in-hex>]
[--originating-uri <URI>] [--referrer <URI>] PATH
pm uninstall [-k] PACKAGE
pm clear [--user USER_ID] PACKAGE
pm enable [--user USER_ID] PACKAGE_OR_COMPONENT
pm disable [--user USER_ID] PACKAGE_OR_COMPONENT
pm disable-user [--user USER_ID] PACKAGE_OR_COMPONENT
pm disable-until-used [--user USER_ID] PACKAGE_OR_COMPONENT
pm block [--user USER_ID] PACKAGE_OR_COMPONENT
pm unblock [--user USER_ID] PACKAGE_OR_COMPONENT
pm grant PACKAGE PERMISSION
pm revoke PACKAGE PERMISSION
pm set-install-location [0/auto] [1/internal] [2/external]
pm get-install-location
pm set-permission-enforced PERMISSION [true|false]
pm trim-caches DESIRED_FREE_SPACE
pm create-user USER_NAME
pm remove-user USER_ID
pm get-max-users
pm list packages: 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 disbled 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.
pm list permission-groups: prints all known permission groups.
pm list permissions: 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.
pm list instrumentation: use to list all test packages; optionally
supply <TARGET-PACKAGE> to list the test packages for a particular
application. Options:
-f: list the .apk file for the test package.
pm list features: prints all features of the system.
pm list users: prints all users on the system.
pm path: print the path to the .apk of the given PACKAGE.
pm dump: print system state associated w ith the given PACKAGE.
pm install: installs a package 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: specify the installer package name.
-s: install package on sdcard.
-f: install package on internal flash.
-d: allow version code downgrade.
pm uninstall: removes a package from the system. Options:
-k: keep the data and cache directories around after package removal.
pm clear: deletes all data associated with a package.
pm enable, disable, disable-user, disable-until-used: these commands
change the enabled state of a given package or component (written
as "package/class").
pm grant, revoke: these commands either grant or revoke permissions
to applications. Only optional permissions the application has
declared can be granted or revoked.
pm get-install-location: returns the current install location.
0 [auto]: Let system decide the best location
1 [internal]: Install on internal device storage
2 [external]: Install on external media
pm set-install-location: changes the default install location.
NOTE: this is only intended for debugging; using this can cause
applications to break and other undersireable behavior.
0 [auto]: Let system decide the best location
1 [internal]: Install on internal device storage
2 [external]: Install on external media
pm trim-caches: trim cache files to reach the given free space.
pm create-user: create a new user with the given USER_NAME,
printing the new user identifier of the user.
pm remove-user: remove the user with the given USER_IDENTIFIER,
deleting all data associated with that user
命令 | 说明 |
---|---|
list packages [options] filter | 输出所有软件包,或者,仅输出包名称包含 filter 中的文本的软件包。选项:· -f:查看它们的关联文件。· -d:进行过滤以仅显示已停用的软件包。· -e:进行过滤以仅显示已启用的软件包。· -s:进行过滤以仅显示系统软件包。· -3:进行过滤以仅显示第三方软件包。· -i:查看软件包的安装程序。· -u:也包括卸载的软件包。· --user user_id:要查询的用户空间。 |
list permission-groups | 输出所有已知的权限组。 |
list permissions [options] group | 输出所有已知权限,或者,仅输出 group 中的权限。选项:· -g:按组加以组织。· -f:输出所有信息。· -s:简短摘要。· -d:仅列出危险权限。· -u:仅列出用户将看到的权限。 |
list instrumentation [options] | 列出所有测试软件包。选项:· -f:列出用于测试软件包的 APK 文件。· target_package:列出仅用于此应用的测试软件包。 |
list features | 输出系统的所有功能。 |
list libraries | 输出当前设备支持的所有库。 |
list users | 输出系统上的所有用户。 |
path package | 输出给定 package 的 APK 的路径。 |
install [options] path | 将软件包(通过 path 指定)安装到系统。选项:· -l:安装具有转发锁定功能的软件包。· -r:重新安装现有应用,保留其数据。· -t:允许安装测试 APK。· -i installer_package_name:指定安装程序软件包名称。· -s:在共享的大容量存储(如 sdcard)上安装软件包。· -f:在内部系统内存上安装软件包。· -d:允许版本代码降级。· -g:授予应用清单中列出的所有权限。 |
uninstall [options] package | 从系统中移除软件包。选项:· -k:移除软件包后保留数据和缓存目录。 |
clear package | 删除与软件包关联的所有数据。 |
enable package_or_component | 启用给定软件包或组件(作为“package/class”写入)。 |
disable package_or_component | 停用给定软件包或组件(作为“package/class”写入)。 |
disable-user [options] package_or_component | 选项:· --user user_id:要停用的用户。 |
grant package_name permission | 向应用授予权限。在运行 Android 6.0(API 级别 23)及更高版本的设备上,可以是应用清单中声明的任何权限。在运行 Android 5.1(API 级别 22)和更低版本的设备上,必须是应用定义的可选权限。 |
revoke package_name permission | 从应用中撤销权限。在运行 Android 6.0(API 级别 23)及更高版本的设备上,可以是应用清单中声明的任何权限。在运行 Android 5.1(API 级别 22)和更低版本的设备上,必须是应用定义的可选权限。 |
set-install-location location | 更改默认安装位置。位置值:· 0:自动—让系统决定最佳位置。· 1:内部—安装在内部设备存储上。· 2:外部—安装在外部介质上。注:此命令仅用于调试目的;使用此命令会导致应用中断和其他意外行为。 |
get-install-location | 返回当前安装位置。返回值:· 0 [auto]:让系统决定最佳位置。· 1 [internal]:安装在内部设备存储上· 2 [external]:安装在外部介质上 |
set-permission-enforced permission [true|false] | 指定是否应强制执行给定的权限。 |
trim-caches desired_free_space | 减少缓存文件以达到给定的可用空间。 |
create-user user_name | 使用给定的 user_name 创建新用户,输出新用户的标识符。 |
remove-user user_id | 移除具有给定的 user_id 的用户,删除与该用户关联的所有数据。 |
get-max-users | 输出设备支持的最大用户数。 |
操作Settings数据库
adb shell settings as
usage: settings [--user NUM] get namespace key
settings [--user NUM] put namespace key value
Android4.2的源码Android-17\com\android\commands目录下较之前的版本多了一个settings命令,查看其中的SettingsCmd.Java文
输入事件
Usage: input [<source>] <command> [<arg>...]
The sources are:
trackball
joystick
touchnavigation
mouse
keyboard
gamepad
touchpad
dpad
stylus
touchscreen
The commands and default sources are:
text <string> (Default: touchscreen)
keyevent [--longpress] <key code number or name> ... (Default: keyboard)
tap <x> <y> (Default: touchscreen)
swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
press (Default: trackball)
roll <dx> <dy> (Default: trackball)
参数说明
命令 | 说明 |
---|---|
text | 该命令主要是用于向获得焦点的EditText控件输入内容默认来源:touchscreen |
keyevent [–longpress] | 该命令主要是向系统发送一个按键指令,实现模拟用户在键盘上的按键动作默认来源:keyboard |
tap | 该命令是用于向设备[屏幕、触摸板、导航键]发送一个点击操作的指令。参数是X Y。一般设备都是屏幕坐标默认来源:touchscreen |
swipe [duration(ms)] | 向设备发送一个滑动的指令,并且可以选择设置滑动的时长默认来源:touchscreen |
press (Default: trackball) | 这个命令是模拟轨迹球发送点击命令,因为现在手机设备上没有轨迹球,然并卵.默认来源:trackball |
roll (Default: trackball) | 这个命令是模拟轨迹球发送滚动命令同样,然并卵默认来源:trackball |
输入事件源
描述 | 说明 |
---|---|
trackball | 轨迹球 |
joystick | 操纵杆 |
touchnavigation | |
mouse | 鼠标 |
keyboard | 键盘 |
gamepad | 游戏手柄 |
touchpad | 触摸板 |
dpad | DPAD |
stylus | 手写笔 |
touchscreen | 触摸屏 |
按键值
每个数字与keycode对应表如下:
0 --> "KEYCODE_UNKNOWN"
1 --> "KEYCODE_MENU"
2 --> "KEYCODE_SOFT_RIGHT"
3 --> "KEYCODE_HOME"
4 --> "KEYCODE_BACK"
5 --> "KEYCODE_CALL"
6 --> "KEYCODE_ENDCALL"
7 --> "KEYCODE_0"
8 --> "KEYCODE_1"
9 --> "KEYCODE_2"
10 --> "KEYCODE_3"
11 --> "KEYCODE_4"
12 --> "KEYCODE_5"
13 --> "KEYCODE_6"
14 --> "KEYCODE_7"
15 --> "KEYCODE_8"
16 --> "KEYCODE_9"
17 --> "KEYCODE_STAR"
18 --> "KEYCODE_POUND"
19 --> "KEYCODE_DPAD_UP"
20 --> "KEYCODE_DPAD_DOWN"
21 --> "KEYCODE_DPAD_LEFT"
22 --> "KEYCODE_DPAD_RIGHT"
23 --> "KEYCODE_DPAD_CENTER"
24 --> "KEYCODE_VOLUME_UP"
25 --> "KEYCODE_VOLUME_DOWN"
26 --> "KEYCODE_POWER"
27 --> "KEYCODE_CAMERA"
28 --> "KEYCODE_CLEAR"
29 --> "KEYCODE_A"
30 --> "KEYCODE_B"
31 --> "KEYCODE_C"
32 --> "KEYCODE_D"
33 --> "KEYCODE_E"
34 --> "KEYCODE_F"
35 --> "KEYCODE_G"
36 --> "KEYCODE_H"
37 --> "KEYCODE_I"
38 --> "KEYCODE_J"
39 --> "KEYCODE_K"
40 --> "KEYCODE_L"
41 --> "KEYCODE_M"
42 --> "KEYCODE_N"
43 --> "KEYCODE_O"
44 --> "KEYCODE_P"
45 --> "KEYCODE_Q"
46 --> "KEYCODE_R"
47 --> "KEYCODE_S"
48 --> "KEYCODE_T"
49 --> "KEYCODE_U"
50 --> "KEYCODE_V"
51 --> "KEYCODE_W"
52 --> "KEYCODE_X"
53 --> "KEYCODE_Y"
54 --> "KEYCODE_Z"
55 --> "KEYCODE_COMMA"
56 --> "KEYCODE_PERIOD"
57 --> "KEYCODE_ALT_LEFT"
58 --> "KEYCODE_ALT_RIGHT"
59 --> "KEYCODE_SHIFT_LEFT"
60 --> "KEYCODE_SHIFT_RIGHT"
61 --> "KEYCODE_TAB"
62 --> "KEYCODE_SPACE"
63 --> "KEYCODE_SYM"
64 --> "KEYCODE_EXPLORER"
65 --> "KEYCODE_ENVELOPE"
66 --> "KEYCODE_ENTER"
67 --> "KEYCODE_DEL"
68 --> "KEYCODE_GRAVE"
69 --> "KEYCODE_MINUS"
70 --> "KEYCODE_EQUALS"
71 --> "KEYCODE_LEFT_BRACKET"
72 --> "KEYCODE_RIGHT_BRACKET"
73 --> "KEYCODE_BACKSLASH"
74 --> "KEYCODE_SEMICOLON"
75 --> "KEYCODE_APOSTROPHE"
76 --> "KEYCODE_SLASH"
77 --> "KEYCODE_AT"
78 --> "KEYCODE_NUM"
79 --> "KEYCODE_HEADSETHOOK"
80 --> "KEYCODE_FOCUS"
81 --> "KEYCODE_PLUS"
82 --> "KEYCODE_MENU"
83 --> "KEYCODE_NOTIFICATION"
84 --> "KEYCODE_SEARCH"
85 --> "TAG_LAST_KEYCODE"
KEYCODE列表
电话键
KEYCODE_CALL 拨号键 5
KEYCODE_ENDCALL 挂机键 6
KEYCODE_HOME 按键Home 3
KEYCODE_MENU 菜单键 82
KEYCODE_BACK 返回键 4
KEYCODE_SEARCH 搜索键 84
KEYCODE_CAMERA 拍照键 27
KEYCODE_FOCUS 拍照对焦键 80
KEYCODE_POWER 电源键 26
KEYCODE_NOTIFICATION 通知键 83
KEYCODE_MUTE 话筒静音键 91
KEYCODE_VOLUME_MUTE 扬声器静音键 164
KEYCODE_VOLUME_UP 音量增加键 24
KEYCODE_VOLUME_DOWN 音量减小键 25
控制键
KEYCODE_ENTER 回车键 66
KEYCODE_ESCAPE ESC键 111
KEYCODE_DPAD_CENTER 导航键 确定键 23
KEYCODE_DPAD_UP 导航键 向上 19
KEYCODE_DPAD_DOWN 导航键 向下 20
KEYCODE_DPAD_LEFT 导航键 向左 21
KEYCODE_DPAD_RIGHT 导航键 向右 22
KEYCODE_MOVE_HOME 光标移动到开始键 122
KEYCODE_MOVE_END 光标移动到末尾键 123
KEYCODE_PAGE_UP 向上翻页键 92
KEYCODE_PAGE_DOWN 向下翻页键 93
KEYCODE_DEL 退格键 67
KEYCODE_FORWARD_DEL 删除键 112
KEYCODE_INSERT 插入键 124
KEYCODE_TAB Tab键 61
KEYCODE_NUM_LOCK 小键盘锁 143
KEYCODE_CAPS_LOCK 大写锁定键 115
KEYCODE_BREAK Break/Pause键 121
KEYCODE_SCROLL_LOCK 滚动锁定键 116
KEYCODE_ZOOM_IN 放大键 168
KEYCODE_ZOOM_OUT 缩小键 169
组合键
KEYCODE_ALT_LEFT Alt+Left
KEYCODE_ALT_RIGHT Alt+Right
KEYCODE_CTRL_LEFT Control+Left
KEYCODE_CTRL_RIGHT Control+Right
KEYCODE_SHIFT_LEFT Shift+Left
KEYCODE_SHIFT_RIGHT Shift+Right
基本
KEYCODE_0 按键'0' 7
KEYCODE_1 按键'1' 8
KEYCODE_2 按键'2' 9
KEYCODE_3 按键'3' 10
KEYCODE_4 按键'4' 11
KEYCODE_5 按键'5' 12
KEYCODE_6 按键'6' 13
KEYCODE_7 按键'7' 14
KEYCODE_8 按键'8' 15
KEYCODE_9 按键'9' 16
KEYCODE_A 按键'A' 29
KEYCODE_B 按键'B' 30
KEYCODE_C 按键'C' 31
KEYCODE_D 按键'D' 32
KEYCODE_E 按键'E' 33
KEYCODE_F 按键'F' 34
KEYCODE_G 按键'G' 35
KEYCODE_H 按键'H' 36
KEYCODE_I 按键'I' 37
KEYCODE_J 按键'J' 38
KEYCODE_K 按键'K' 39
KEYCODE_L 按键'L' 40
KEYCODE_M 按键'M' 41
KEYCODE_N 按键'N' 42
KEYCODE_O 按键'O' 43
KEYCODE_P 按键'P' 44
KEYCODE_Q 按键'Q' 45
KEYCODE_R 按键'R' 46
KEYCODE_S 按键'S' 47
KEYCODE_T 按键'T' 48
KEYCODE_U 按键'U' 49
KEYCODE_V 按键'V' 50
KEYCODE_W 按键'W' 51
KEYCODE_X 按键'X' 52
KEYCODE_Y 按键'Y' 53
KEYCODE_Z 按键'Z' 54
符号
KEYCODE_PLUS 按键'+'
KEYCODE_MINUS 按键'-'
KEYCODE_STAR 按键'*'
KEYCODE_SLASH 按键'/'
KEYCODE_EQUALS 按键'='
KEYCODE_AT 按键'@'
KEYCODE_POUND 按键'#'
KEYCODE_APOSTROPHE 按键''' (单引号)
KEYCODE_BACKSLASH 按键'\'
KEYCODE_COMMA 按键','
KEYCODE_PERIOD 按键'.'
KEYCODE_LEFT_BRACKET 按键'['
KEYCODE_RIGHT_BRACKET 按键']'
KEYCODE_SEMICOLON 按键';'
KEYCODE_GRAVE 按键'`'
KEYCODE_SPACE 空格键
小键盘
KEYCODE_NUMPAD_0 小键盘按键'0'
KEYCODE_NUMPAD_1 小键盘按键'1'
KEYCODE_NUMPAD_2 小键盘按键'2'
KEYCODE_NUMPAD_3 小键盘按键'3'
KEYCODE_NUMPAD_4 小键盘按键'4'
KEYCODE_NUMPAD_5 小键盘按键'5'
KEYCODE_NUMPAD_6 小键盘按键'6'
KEYCODE_NUMPAD_7 小键盘按键'7'
KEYCODE_NUMPAD_8 小键盘按键'8'
KEYCODE_NUMPAD_9 小键盘按键'9'
KEYCODE_NUMPAD_ADD 小键盘按键'+'
KEYCODE_NUMPAD_SUBTRACT 小键盘按键'-'
KEYCODE_NUMPAD_MULTIPLY 小键盘按键'*'
KEYCODE_NUMPAD_DIVIDE 小键盘按键'/'
KEYCODE_NUMPAD_EQUALS 小键盘按键'='
KEYCODE_NUMPAD_COMMA 小键盘按键','
KEYCODE_NUMPAD_DOT 小键盘按键'.'
KEYCODE_NUMPAD_LEFT_PAREN 小键盘按键'('
KEYCODE_NUMPAD_RIGHT_PAREN 小键盘按键')'
KEYCODE_NUMPAD_ENTER 小键盘按键回车
功能键
KEYCODE_F1 按键F1
KEYCODE_F2 按键F2
KEYCODE_F3 按键F3
KEYCODE_F4 按键F4
KEYCODE_F5 按键F5
KEYCODE_F6 按键F6
KEYCODE_F7 按键F7
KEYCODE_F8 按键F8
KEYCODE_F9 按键F9
KEYCODE_F10 按键F10
KEYCODE_F11 按键F11
KEYCODE_F12 按键F12
多媒体键
KEYCODE_MEDIA_PLAY 多媒体键 播放
KEYCODE_MEDIA_STOP 多媒体键 停止
KEYCODE_MEDIA_PAUSE 多媒体键 暂停
KEYCODE_MEDIA_PLAY_PAUSE 多媒体键 播放/暂停
KEYCODE_MEDIA_FAST_FORWARD 多媒体键 快进
KEYCODE_MEDIA_REWIND 多媒体键 快退
KEYCODE_MEDIA_NEXT 多媒体键 下一首
KEYCODE_MEDIA_PREVIOUS 多媒体键 上一首
KEYCODE_MEDIA_CLOSE 多媒体键 关闭
KEYCODE_MEDIA_EJECT 多媒体键 弹出
KEYCODE_MEDIA_RECORD 多媒体键 录音
手柄按键
KEYCODE_BUTTON_1 通用游戏手柄按钮#1
KEYCODE_BUTTON_2 通用游戏手柄按钮 #2
KEYCODE_BUTTON_3 通用游戏手柄按钮 #3
KEYCODE_BUTTON_4 通用游戏手柄按钮 #4
KEYCODE_BUTTON_5 通用游戏手柄按钮 #5
KEYCODE_BUTTON_6 通用游戏手柄按钮 #6
KEYCODE_BUTTON_7 通用游戏手柄按钮 #7
KEYCODE_BUTTON_8 通用游戏手柄按钮 #8
KEYCODE_BUTTON_9 通用游戏手柄按钮 #9
KEYCODE_BUTTON_10 通用游戏手柄按钮 #10
KEYCODE_BUTTON_11 通用游戏手柄按钮 #11
KEYCODE_BUTTON_12 通用游戏手柄按钮 #12
KEYCODE_BUTTON_13 通用游戏手柄按钮 #13
KEYCODE_BUTTON_14 通用游戏手柄按钮 #14
KEYCODE_BUTTON_15 通用游戏手柄按钮 #15
KEYCODE_BUTTON_16 通用游戏手柄按钮 #16
KEYCODE_BUTTON_A 游戏手柄按钮 A
KEYCODE_BUTTON_B 游戏手柄按钮 B
KEYCODE_BUTTON_C 游戏手柄按钮 C
KEYCODE_BUTTON_X 游戏手柄按钮 X
KEYCODE_BUTTON_Y 游戏手柄按钮 Y
KEYCODE_BUTTON_Z 游戏手柄按钮 Z
KEYCODE_BUTTON_L1 游戏手柄按钮 L1
KEYCODE_BUTTON_L2 游戏手柄按钮 L2
KEYCODE_BUTTON_R1 游戏手柄按钮 R1
KEYCODE_BUTTON_R2 游戏手柄按钮 R2
KEYCODE_BUTTON_MODE 游戏手柄按钮 Mode
KEYCODE_BUTTON_SELECT 游戏手柄按钮 Select
KEYCODE_BUTTON_START 游戏手柄按钮 Start
KEYCODE_BUTTON_THUMBL Left Thumb Button
KEYCODE_BUTTON_THUMBR Right Thumb Button
KEYCODE_NUM 按键Number modifier
KEYCODE_INFO 按键Info
KEYCODE_APP_SWITCH 按键App switch
KEYCODE_BOOKMARK 按键Bookmark
KEYCODE_AVR_INPUT 按键A/V Receiver input
KEYCODE_AVR_POWER 按键A/V Receiver power
KEYCODE_CAPTIONS 按键Toggle captions
KEYCODE_CHANNEL_DOWN 按键Channel down
KEYCODE_CHANNEL_UP 按键Channel up
KEYCODE_CLEAR 按键Clear
KEYCODE_DVR 按键DVR
KEYCODE_ENVELOPE 按键Envelope special function
KEYCODE_EXPLORER 按键Explorer special function
KEYCODE_FORWARD 按键Forward
KEYCODE_FORWARD_DEL 按键Forward Delete
KEYCODE_FUNCTION 按键Function modifier
KEYCODE_GUIDE 按键Guide
KEYCODE_HEADSETHOOK 按键Headset Hook
KEYCODE_META_LEFT 按键Left Meta modifier
KEYCODE_META_RIGHT 按键Right Meta modifier
KEYCODE_PICTSYMBOLS 按键Picture Symbols modifier
KEYCODE_PROG_BLUE 按键Blue “programmable”
KEYCODE_PROG_GREEN 按键Green “programmable”
KEYCODE_PROG_RED 按键Red “programmable”
KEYCODE_PROG_YELLOW 按键Yellow “programmable”
KEYCODE_SETTINGS 按键Settings
KEYCODE_SOFT_LEFT 按键Soft Left
KEYCODE_SOFT_RIGHT 按键Soft Right
KEYCODE_STB_INPUT 按键Set-top-box input
KEYCODE_STB_POWER 按键Set-top-box power
KEYCODE_SWITCH_CHARSET 按键Switch Charset modifier
KEYCODE_SYM 按键Symbol modifier
KEYCODE_SYSRQ 按键System Request / Print Screen
KEYCODE_TV 按键TV
KEYCODE_TV_INPUT 按键TV input
KEYCODE_TV_POWER 按键TV power
KEYCODE_WINDOW 按键Window
KEYCODE_UNKNOWN 未知按键
wm
窗口控制
usage: wm [subcommand] [options]
wm size [reset|WxH]
wm density [reset|DENSITY]
wm overscan [reset|LEFT,TOP,RIGHT,BOTTOM]
wm size: return or override display size.
wm density: override display density.
wm overscan: set overscan area for display.
参数说明
参数 | 说明 |
---|---|
wm size [reset|WxH] | 得到lcd本身设置的显示分辨率WxH 按width x hight 设置分辨率reset 将分辨率设置为LCD原始分辨率 |
wm density [reset|DENSITY] | 该命令的用法类似于wm size 命令,作用是读取、设置或者重置LCD的density值。density值即LCD的ppi |
wm overscan [reset|LEFT,TOP,RIGHT,BOTTOM] | 该命令用来设置、重置LCD的显示区域。四个参数分别是显示边缘距离LCD左、上、右、下的像素数。 |
wm似乎是高通平台才有的命令,对手机分辨率、像素密度、显示区域进行设置的命令。
wm命令使用方法及LCD显示图标大小不正常时解决办法 http://blog.csdn.net/longxiaowu/article/details/25329677
系统信息。
dumpsys -l 查看dumpsys支持的服务
SurfaceFlinger
accessibility
account
activity
alarm
android.security.keystore
appops
appwidget
assetatlas
audio
backup
battery
batterypropreg
batterystats
bluetooth_manager
clipboard
cneservice
commontime_management
connectivity
consumer_ir
content
country_detector
cpuinfo
dbinfo
device_policy
devicestoragemonitor
diskstats
display
display.qservice
dreams
drm.drmManager
dropbox
entropy
fm_receiver
gfxinfo
hardware
input
input_method
iphonesubinfo
isms
listen.service
location
lock_settings
media.audio_flinger
media.audio_policy
media.camera
media.cameraextension
media.player
media_router
meminfo
mount
netpolicy
netstats
network_management
nfc
notification
package
permission
phone
power
print
procstats
samplingprofiler
scheduling_policy
search
sensorservice
serial
servicediscovery
simphonebook
statusbar
telephony.registry
textservices
uimode
updatelock
usagestats
usb
user
vibrator
wallpaper
wifi
wifip2p
window
xperia_power_service
xperiaappdepinfo
参数说明
参数 | 说明 |
---|---|
SurfaceFlinger | 分析系统图层 |
accessibility | |
account | 账号管理 |
activity | 跟Activity相关的组件的状态这个命令支持子命令,通过-h可以看到子参数的列表。 |
alarm | Alarm的唤醒队列信息查看放到定时队列中的事件 |
android.security.keystore | |
appops | |
appwidget | |
assetatlas | |
audio | |
backup | |
battery | 电池状态 |
batterypropreg | |
batterystats | 各应用耗电量信息支持子命令的,执行dumpsys batterystats -h查看参数列表 |
bluetooth_manager | |
clipboard | |
cneservice | |
commontime_management | |
connectivity | |
consumer_ir | |
content | |
country_detector | |
cpuinfo | 各进程使用CPU信息查看一段时间段内各个进程使用CPU的信息,包括user、kernel区分 |
dbinfo | 各进程使用SQLite数据的信息查看各个进程使用数据库的状况,sql的执行时间等 |
device_policy | |
devicestoragemonitor | 磁盘的使用情况 |
diskstats | 磁盘相关信息 |
display | |
display.qservice | |
dreams | |
drm.drmManager | |
dropbox | 各进程的dropbox的日志信息dumpsys dropbox [–print|–file] [YYYY-mm-dd] [HH:MM:SS] [tag] |
fm_receiver | |
gfxinfo | |
hardware | |
input | |
input_method | |
iphonesubinfo | |
isms | |
listen.service | |
location | |
lock_settings | |
media.audio_flinger | |
media.audio_policy | |
media.camera | |
media.cameraextension | |
media.player | |
media_router | |
meminfo | 各进程的内存使用状况执行dumpsys meminfo查看的每个进程占用PSS的列表如果后面接pid或者包名就可以查看具体某个进程的内存详细状况执行dumpsys meminfo com.eg.android.AlipayGphone |
mount | |
netpolicy | |
netstats | |
network_management | |
nfc | |
notification | |
package | 查看安装的信息主要就是获取AndroidManifest.xml里边的信息 |
permission | |
phone | |
power | |
procstats | |
samplingprofiler | |
scheduling_policy | |
search | |
sensorservice | |
serial | |
servicediscovery | |
simphonebook | |
statusbar | 状态栏相关的信息 |
telephony.registry | |
textservices | |
uimode | |
updatelock | |
usagestats | 每个界面启动的时间 |
usb | |
user | |
vibrator | |
wallpaper | |
wifi | WIFI的信息 |
wifip2p | |
window | 键盘,窗口和它们的关系 |
xperia_power_service | |
xperiaappdepinfo |
Android 性能优化 五 性能分析工具dumpsys的使用
http://blog.csdn.net/androiddevelop/article/details/37689339
http://blog.csdn.net/aaa111/article/details/53068197?locationNum=4&fps=1
使用dumpsys查看android系统服务信息
http://www.360doc.com/content/16/0112/23/426085_527478833.shtml
Android性能分析工具dumpsys的使用(自己增加一部分在后面)
http://www.jianshu.com/p/6bd4813b3c60
Android的dumpsys命令
打印系统快照,相当一个时间点的系统信息
usage: dumpstate [-b soundfile] [-e soundfile] [-o file [-d] [-p] [-z]] [-s] [-q]
-o: write to file (instead of stdout)
-d: append date to filename (requires -o)
-z: gzip output (requires -o)
-p: capture screenshot to filename.png (requires -o)
-s: write output to control socket (for init)
-b: play sound file instead of vibrate, at beginning of job
-e: play sound file instead of vibrate, at end of job
-q: disable vibrate
-B: send broadcast when finished (requires -o and -p)
dumpstate主要获取信息:
1,基本信息,如版本信息,内存基本信息,cpu基本信息,硬件信息等
2,系统log
3,网络信息,路由信息,网络撇之信息
4,panic信息
5,锁的使用信息
6,进程信息
7,binder信息
8,应用程序安装信息
9,磁盘使用情况
10,所有activity,services 信息
11,properties信息 等
http://blog.csdn.net/zhongnanjun_3/article/details/20461143
Android dumpstate 工具解析