赞
踩
adb [-d|-e|-s <serialNumber>] <command>
参数 | 含义 |
---|---|
-d | 指定当前唯一通过 USB 连接的 Android 设备为命令目标 |
-e | 指定当前唯一运行的模拟器为命令目标 |
-s <serialNumber> | 指定相应 serialNumber 号的设备/模拟器为命令目标 |
adb start-server
adb kill-server
adb version
adb 的运行原理是 PC 端的 adb server 与手机端的守护进程 adbd 建立连接,然后 PC 端的 adb client 通过 adb server 转发命令,adbd 接收命令后解析运行。
但有些命令需要 root 权限才能执行。
adb root
adb unroot
adb -P <port> start-server
默认端口为 5037。
adb devices
输出格式为serialNumber 即 SN,state 有如下几种:
offline —— 表示设备未连接成功或无响应。
device —— 设备已连接。注意这个状态并不能标识 Android 系统已经完全启动和可操作,在设备启动过程中设备实例就可连接到 adb,但启动完毕后系统才处于可操作状态。
no device —— 没有设备/模拟器连接。
adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]
参数 | 显示列表 |
---|---|
无 | 所有应用 |
-f | 显示应用关联的 apk 文件 |
-d | 只显示 disabled 的应用 |
-e | 只显示 enabled 的应用 |
-s | 只显示系统应用 |
-3 | 只显示第三方应用 |
-i | 显示应用的 installer |
-u | 包含已卸载应用 |
<FILTER> | 包名包含 <FILTER> 字符串 |
adb install [-lrtsdg] <path_to_apk>
参数 | 含义 |
---|---|
-l | 将应用安装到保护目录 /mnt/asec |
-r | 允许覆盖安装 |
-t | 允许安装 AndroidManifest.xml 里 application 指定 android:testOnly="true" 的应用 |
-s | 将应用安装到 sdcard |
-d | 允许降级覆盖安装 |
-g | 授予所有运行时权限 |
--abi abi-identifier | 为特定 ABI 强制安装 apk,abi-identifier 可以是 armeabi-v7a、arm64-v8a、v86、x86_64 等 |
adb uninstall [-k] <packagename>
packagename 表示应用的包名,-k 参数可选,表示卸载应用但保留数据和缓存目录。
adb shell pm clear <packagename>
adb shell dumpsys activity activities | grep mResumedActivity
adb shell dumpsys activity services [<packagename>]
adb shell dumpsys package <packagename>
adb shell pm path <PACKAGE>
command | 用途 |
---|---|
start [options] <INTENT> | 启动 <INTENT> 指定的 Activity |
startservice [options] <INTENT> | 启动 <INTENT> 指定的 Service |
broadcast [options] <INTENT> | 发送 <INTENT> 指定的广播 |
force-stop <packagename> | 停止 <packagename> 相关的进程 |
参数 | 含义 |
---|---|
-a <ACTION> | 指定 action,比如 android.intent.action.VIEW |
-c <CATEGORY> | 指定 category,比如 android.intent.category.APP_CONTACTS |
-n <COMPONENT> | 指定完整 component 名,用于明确指定启动哪个 Activity,如 com.example.app/.ExampleActivity |
adb shell am start [options] <INTENT>
adb shell am startservice [options] <INTENT>
# 显示虚拟按键
adb shell am startservice -n com.android.systemui/.SystemUIService
adb shell am force-stop <packagename>
adb pull <设备里的文件路径> [电脑上的目录]
adb push <电脑上的文件路径> <设备里的目录>
adb shell input keyevent <keycode>
keycode | 含义 |
---|---|
3 | HOME 键 |
4 | 返回键 |
5 | 打开拨号应用 |
6 | 挂断电话 |
24 | 增加音量 |
25 | 降低音量 |
26 | 电源键 |
27 | 拍照(需要在相机应用里) |
64 | 打开浏览器 |
82 | 菜单键 |
85 | 播放/暂停 |
86 | 停止播放 |
87 | 播放下一首 |
88 | 播放上一首 |
122 | 移动光标到行首或列表顶部 |
123 | 移动光标到行末或列表底部 |
126 | 恢复播放 |
127 | 暂停播放 |
164 | 静音 |
176 | 打开系统设置 |
187 | 切换应用 |
207 | 打开联系人 |
208 | 打开日历 |
209 | 打开音乐 |
210 | 打开计算器 |
220 | 降低屏幕亮度 |
221 | 提高屏幕亮度 |
223 | 系统休眠 |
224 | 点亮屏幕 |
231 | 打开语音助手 |
276 | 如果没有 wakelock 则让系统休眠 |
adb shell input swipe 300 1000 300 500
参数 300 1000 300 500 分别表示起始点x坐标 起始点y坐标 结束点x坐标 结束点y坐标。
adb shell input text hello
Android 系统的日志分为两部分,底层的 Linux 内核日志输出到 /proc/kmsg,Android 的日志输出到 /dev/log。
[adb] logcat [<option>] ... [<filter-spec>] ...
按级别过滤日志
Android 的日志分为如下几个优先级(priority):
按某级别过滤日志则会将该级别及以上的日志输出。
adb logcat *:W
会将 Warning、Error、Fatal 和 Silent 日志输出。
按 tag 和级别过滤日志
adb logcat ActivityManager:I MyApp:D *:S
表示输出 tag ActivityManager 的 Info 以上级别日志,输出 tag MyApp 的 Debug 以上级别日志,及其它 tag 的 Silent 级别日志(即屏蔽其它 tag 日志)。
adb logcat -c
adb shell dmesg
adb shell getprop ro.product.model
adb shell dumpsys battery
adb shell wm size
adb shell wm density
adb shell dumpsys window displays
adb shell settings get secure android_id
adb shell getprop ro.build.version.release
adb shell ifconfig | grep Mask
查看局域网 IP:
adb shell ifconfig wlan0
adb shell cat /sys/class/net/wlan0/address
adb shell cat /proc/cpuinfo
adb shell cat /proc/meminfo
修改设置之后,运行恢复命令有可能显示仍然不太正常,可以运行 adb reboot 重启设备,或手动重启。
adb shell wm size 480x1024
恢复原分辨率命令:
adb shell wm size reset
adb shell wm density 160
恢复原屏幕密度命令:
adb shell wm density reset
adb shell wm overscan 0,0,0,200
四个数字分别表示距离左、上、右、下边缘的留白像素,以上命令表示将屏幕底部 200px 留白。
adb shell wm overscan reset
adb shell settings put global adb_enabled 0
截图保存到电脑:
adb exec-out screencap -p > sc.png
参数 | 含义 |
---|---|
-p | 指定保存文件为 png 格式 |
-d display-id | 指定截图的显示屏编号(有多显示屏的情况下) |
录制屏幕以 mp4 格式保存到 /sdcard:
adb shell screenrecord /sdcard/filename.mp4
参数 | 含义 |
---|---|
--size WIDTHxHEIGHT | 视频的尺寸,比如 1280x720 ,默认是屏幕分辨率。 |
--bit-rate RATE | 视频的比特率,默认是 4Mbps。 |
--time-limit TIME | 录制时长,单位秒。 |
--verbose | 输出更多信息。 |
注:需要 root 权限。
adb shell
su
cat /data/misc/wifi/*.conf
或者
adb shell
su
cat /data/misc/wifi/WifiConfigStore.xml
注:需要 root 权限。
adb shell
su
date -s 20160823.131500
表示将系统日期和时间更改为 2016 年 08 月 23 日 13 点 15 分 00 秒。
adb reboot
adb shell
su
此时命令行提示符是 $ 则表示没有 root 权限,是 # 则表示已 root。
Monkey 可以生成伪随机用户事件来模拟单击、触摸、手势等操作,可以对正在开发中的程序进行随机压力测试。
adb shell monkey -p <packagename> -v 500
注:需要 root 权限。
开启 WiFi:
adb root
adb shell svc wifi enable
关闭 WiFi:
adb root
adb shell svc wifi disable
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。