在这里对ADB 常用命令进行一些总结。
adb start-server启动adb服务,如果它没启动的话
adb kill-server关闭服务
adb devices查看所连接的设备以及设备所对应的序列号,这是判断adb是否连接成功的一个最直接的方法(无论是直连还是Ethernet连接)
adb connect <device-ip-address>(Ethernet连接-网口)
连接到指定的ip,这个通常配合wifidebug
adb install -r xxxx.apk(-r replace)
安装app,需要注意的是如果连接了两台设备,则会报错,此时可以添加-s<serialNumber>来处理
adb uninstall packagename
卸载app,有时候在手机上卸载App会出现数据清理不干净,导致App再也装不上了,这个时候可以敲命令来卸载
adb uninstall -k <软件名> 如果加 -k 参数,为卸载软件但是保留配置和缓存文件.
adb shell
进入shell环境
adb shell pm clear packagename
清除应用的数据,很常用吧?
adb shell am start -n packagename/packagename.activityname
启动某个应用的某个Activity(以前调试老年机,那种Launcher上没有APP的机器,全靠它啊!!!!!!!)
adb shell dumpsys activity top
查看栈顶Activity,可以用来获取包名,可以用来查看其它app的包名
adb shell ps
查看进程信息
adb shell pm list packages -f
查看所有已安装的应用的包名
adb shell dumpsys activity
dumpsys系列命令可以帮助我们查看各种信息
am的状态 Activity Manager State
adb shell dumpsys package
包信息 Package Information
adb shell dumpsys meminfo
内存使用情况Memory Usage
adb pull <remote> <local>
从手机复制文件出来,比如把Crash日志写在SD卡上,再pull到电脑上或者 pull ANR的trace日志
adb push <local> <remote>
向手机发送文件,比如测试热修复补丁~
eg. adb push foo.txt /sdcard/foo.txt
adb shell cat /proc/cpuinfo
查看手机CPU,可以看到手机架构(eg.ARMv7)和几核处理器
可以帮助我们选择so库,排查手机cpu架构相关的问题
不太常用的命令
adb shell df
获取手机磁盘空间
adb shell getprop ro.build.version.release
获取手机系统版本
adb shell dumpsys procstats
Memory Use Over Time
adb shell dumpsys gfxinfo
Graphics State
adb version
查看adb版本
adb help
进入adb帮助界面
使用Adb shell command直接送key event給Android
adb shell input keyevent 7 # for key '0'
adb shell inputkeyevent 8 # for key '1'
adb shell inputkeyevent 29 # for key 'A'
adb shell inputkeyevent 54 # for key 'B'
adb shell inputtext "ANDROID"
支持的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"