最近项目中经常与安卓设备相连,用到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 ~

android studio adb断开设备 adb命令断开连接_包名

多设备,-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)

android studio adb断开设备 adb命令断开连接_包名_02

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