最近项目中经常与安卓设备相连,用到adb命令。整理一下常用命令。
wifi控制命令
adb connect IP # 连接设备
若连接失败,可尝试插数据线运行以下两条命令后,方可拔掉数据线,在设备未关闭之前可以直接adb connect IP进行连接
adb tcpip 5555
adb connect IP
断开设备
adb disconnect IP
查看连接设备。
adb devices
多设备连接选择单个设备。
adb -s 设备IP + 需要执行的指令
例如:连接了两个设备,给其中一个安装文件
adb -s 192.168.1.108 install ~
多设备,-s选择一个设备操作。
安装APK包命令
1、连接单个设备安装
adb install 路径/包名.apk
2、连接多个设备,给指定设备安装
adb -s 设备名称 install 路径/包名.apk
卸载APP
adb uninstall APP包名(com.xxxx.xxxx)
获取设备的状态
adb get-state (设备的状态有 3 钟,device:
设备正常连接 , offline:
连接出现异常,设备无响应 , unknown:
没有连接设备)
查看运行在 Android设备上的 adb 后台进程:
执行 adb shell ps | grep adbd
,可以找到该后台进程,windows 请使用 findstr
替代 grep
从PC电脑移动文件到手机端。下方命令把PC文件移动到/sdcard/根目录。
adb push PC文件 /sdcard/
从手机移动文件到电脑端.下方命令把 /sdcard/a.log文件移动到电脑D盘下。
注意权限,复制系统权限的目录下的文件,需要 root ,并且一般的 Android 机 root 之后并不能使用命令去复制,而需要在手机上使用类似于 RE 的文件浏览器,先对系统的文件系统进行挂载为可读写后,才能在手机上复制移动系统文件
adb pull /sdcard/a.log D:/
实时查看安卓日志。
adb logcat
导出安卓日志到PC
adb logcat -t 20000 -v threadtime *:V > D:1.log(PC路径log名称)
-t:导出系统最近20000条日志。不加-t默认导出从设备最近开机开始到现在的日志,不会主动关闭。加-t主动退出。
-v:设置输出格式, threadtime为可查看线程信息及日志输出时间。
过滤选项:
*:V : Verbose (明细);
*:D : Debug (调试);
*:I : Info (信息);
*:W : Warn (警告);
*:E : Error (错误);
*:F: Fatal (严重错误);
(注意:只能拿本次开机后的日志。)
打开APP
adb shell am start -n APP包名(com.xxxx.xxx)/Activity名称。
清理APP缓存
adb shell pm clear 包名(com.xxx.xxx)
ADB修改安卓系统时间(root权限下,2019年7月16日10点10分10秒)
adb shell date -s "20190716.101010"
ADB设备内存查看
adb shell dumpsys meminfo
adb shell命令
1、连接U盘后,将U盘内容拷贝到设备目录下
adb shell
cp u盘路径 拷贝路径
2、
adb shell bugreport , 打印dumpsys、dumpstate、logcat的输出,也是用于分析错误
输出比较多,建议重定向到一个文件中
adb shell dumpsys > d:\bugreport.log
3、pm
Package Manager , 可以用获取到一些安装在 Android 设备上得应用信息
3.1 adb shell pm list package 列出所有的应用的包名 (-s:列出系统应用 -3:列出第三方应用 -f:列出应用包名及对应的apk名及存放位置 -i:列出应用包名及其安装来源)
3.2 adb shell pm path+包名 列出对应包名.apk 位置
3.3 adb shell pm install +apk存放路径 安装应用(目标 apk 存放于PC端,用 adb install 安装 目标 apk 存放于Android设备上,用 pm install 安装)
4 am
4.1 adb shell am start +包名/.Activity (要启动的Activity) 启动一个 Activity (-s先停止目标应用,再启动 -w 等待应用完成启动 -a 启动默认浏览器打开一个网页例:adb shell am start -a android.intent.action.VIEW -d http://testerhome.com)
4.2 adb shell am monitor 监控 crash 与 ANR
4.3 adb shell am force-stop 后跟包名,结束应用
4.4 adb shell am startservice 启动一个服务
4.5 adb shell am broadcast 发送一个广播
5 input
这个命令可以向 Android 设备发送按键事件
5.1 adb shell input text +具体内容 发送文本内容,不能发送中文
5.2 adb shell input keyevent + 按键事件 发送按键事件 例如:adb shell input keyevent KEYCODE_HOME 模拟按下Home键
5.3 adb shell input tap +触摸事件的位置 , 对屏幕发送一个触摸事件 例如:点击屏幕上坐标为 500 500 的位置(adb shell input tap 500 500)
5.4 adb shell input tap , 对屏幕发送一个触摸事件
5.4 adb shell input swipe 滑动事件 例如:从右往左滑动屏幕
adb shell input swipe 800 600 100 600
6、录屏
安卓4.4以上系统版本新增的录制命令
adb shell screenrecord /sdcard/test.mp4
停止录制:Ctrl + C会停止命令,自动停止录制。
--size WIDTHxHEIGHT 设置屏幕宽高,一般根据自己手机设置,最大支持1920x480。
adb shell screenrecord --size 1920x1080 /test.mp4
--time-limit TIME 设置录制时间,默认最大时长180秒,时间的取值范围为[0,180]
adb shell screenrecord --time-limit 60 /sdcard/test.mp4
--rotate 顺时针旋转90度输出
adb shell screenrecord --rotate /sdcard/test.mp4
--bit-rate 指定视频的比特率,如果不指定,默认为4Mbps. 增加比特率以提高视频质量或为了让文件更小而降低比特率
adb shell screenrecord --bit-rate 6000000 /sdcard/test.mp4
--verbose 查看log
7、ADB截图
adb shell screencap -p 路径图片名称(/sdcard/test.png)
8、 ime
列出设备上的输入法
adb shell ime list -s