ADB的基本语法及常用命令

学习网址

ADB命令的基本语法如下:

adb [-d|-e|-s <serialNumber>] <command>

如果有多个设备/模拟器连接,则需要为命令指定目标设备。

参数及含义如下:

常用命令如下:

1. 启动ADB服务

adb start-server

2. 停止ADB服务

adb kill-server

3. 指定ADB服务的网络端口

adb -P <port> start-server

默认端口为5037

4. 查询已连接设备/模拟器

adb devices

输出示例:

List of devices attached

cf264b8f    device

emulator-5554    device

10.129.164.6:5555    device

输出格式为 [serialNumber] [state]serialNumber即我们常说的SN,state有如下几种:

offline  表示设备未连接成功或无响应;

device 设备已连接。注意这个状态并不能标识Android 系统已经完全启动和可操作,在设备启动过程中设备实例就可连接到ADB,但启动完毕后系统才处于可操作状态;

no device 没有设备/模拟器连接;

常见异常输出:

1. 没有设备/模拟器连接成功;

List of devices attached

2. 设备/模拟器未连接到ADB或无响应;

List of devices   attached

cf264b8f           offline

5. 无线连接(需要借助USB 线)

除了可以通过USB 连接设备与电脑来使用ADB,也可以通过无线连接,虽然连接过程中也有需要使用USB 的步骤,但是连接成功之后你的设备就可以在一定范围内摆脱USB 连接线的限制了。

操作步骤:

1. 将Android 设备与要运行ADB的电脑连接到同一个局域网,比如连到同一个WiFi;

2. 将设备与电脑通过USB 线连接;

应确保连接成功,可运行adb devices看是否能列出该设备。

3. 让设备在5555 端口监听TCP/IP 连接;

adb tcpip 5555

4. 断开USB 连接;

5. 找到设备的IP 地址;

一般能在 wifi信息找到。

6. 通过IP 地址连接设备;

adb connect <device-ip-address>

这里的<device-ip-address>就是上一步中找到的设备IP地址。

7. 确认连接状态;

adb devices

如果能看到 <device-ip-address>:5555 device 说明连接成功。

如果连接不了,请确认Android设备与电脑是连接到了同一个WiFi,然后再次执行adb connect <device-ip-address>那一步。

如果还是不行的话,通过adb kill-server重新启动adb然后从头再来一次试试。

8. 断开无线连接;

adb disconnect <device-ip-address>

6. 无线连接(无需借助USB 线)

注:需要root 权限

上面是官方文档里介绍的方法,需要借助于USB 数据线来实现无线连接。

既然我们想要实现无线连接,那能不能所有步骤下来都是无线的呢?答案是能的。

1. 在Android 设备上安装一个终端模拟器;

已经安装过的设备可以跳过此步。我使用的终端模拟器下载地址是:[Terminal Emulator for Android Downloads]   

2. 将Android 设备与要运行ADB的电脑连接到同一个局域网,比如连到同一个WiFi;

3. 打开Android 设备上的终端模拟器,在里面依次运行命令;

su

setprop service.adb.tcp.port 5555

4. 找到Android 设备的IP 地址;

一般能在「设置」-「关于手机」-「状态信息」-「IP地址」找到,也可以使用下文里[查看设备信息- IP地址]一节里的方法用adb命令来查看。

5. 在电脑上通过adb 和IP 地址连接Android 设备;

adb connect <device-ip-address>

这里的<device-ip-address>就是上一步中找到的设备IP地址。

如果能看到connected to <device-ip-address>:5555这样的输出则表示连接成功。

有的设备,比如小米5S + MIUI 8.0 + Android 6.0.1 MXB48T,可能在第5 步之前需要重启adbd 服务,在设备的终端模拟器上运行:

restart adbd

如果restart 无效,尝试以下命令:

stop adbd

start adbd

7. 应用管理

7.1. 查看应用列表

adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]


7.2. 安装APK

adb install [-l -r -t -s -d -g] <path_to_apk>

Success代表安装成功,Failure表示安装失败。

实际是分三步完成:

1. push apk 文件到/data/local/tmp;

2. 调用pm install 安装;

3. 删除 /data/local/tmp 下的对应apk 文件;

所以,必要的时候也可以根据这个步骤,手动分步执行安装过程。


 7.3. 卸载应用

adb uninstall [-k] <packagename>

命令示例:

adb uninstall com.centent.mm

表示卸载微信


7.4. 清除应用数据与缓存

adb shell pm clear <packagename>

<packagename> 表示应用名包,这条命令的效果相当于在设置里的应用信息界面点击了「清除缓存」和「清除数据」。

命令示例:

adb shell pm clear com.qihoo360.mobilesafe

表示清除360 手机卫士的数据和缓存。

7.5. 查看前台Activity

adb shell "dumpsys activity | grep mResumedActivity"

安卓版本不同使用的命令有所差异。

输出示例:

mResumedActivity: ActivityRecord{331d51f u0 com.tencent.mm/.ui.LauncherUI t1769}

其中的 com.tencent.mm/.ui.LauncherUI 就是当前处于前台的Activity。

7.6. 查看正在运行的Services

adb shell dumpsys activity services [<packagename>]

<packagename> 参数不是必须的,指定 <packagename> 表示查看与某个包名相关的Services,不指定表示查看所有Services

<packagename>不一定要给出完整的包名,比如运行adb shell dumpsys activity services org.mazhuang,那么包名org.mazhuang.demo1、org.mazhuang.demo2等相关的Services都会列出来。

7.7. 查看应用详细信息

adb shell dumpsys package <packagename>

<packagename> 表示应用包名。

输出中包含很多信息,包括Activity Resolver Table、Registered ContentProviders、包名、userId、安装后的文件资源代码等路径、版本信息、权限信息和授予状态、签名版本信息等。


7.8. 查看应用安装路径

adb shell pm path <packagename>

输出应用安装路径

输出示例:

package:/data/app/ecarx.weather-1.apk

8. 与应用交互

adb shell am <command>

8.1. 启动应用/调起Activity

adb shell am start -n Activity

8.2. 调起Service

adb shell am startservice -n Service

8.3. 停止Service

adb shell am stopservice [options] <INTENT>

8.4. 强制停止应用

adb shell am force-stop 包名

9. 文件管理

9.1. 复制设备里的文件到电脑

adb pull <设备里的文件路径> [电脑上的目录]

9.2. 复制电脑里的文件到设备

adb push <电脑上的文件路径> <设备里的文件名>

注意:后边的是设备上的文件名

10. 模拟按键

adb shell input keyevent 键值

11. 模拟输入文本

adb shell input text 英文文本

输入文本时只能输入英文文本或是拼音,需要结合确定键或是回车键才能将想要输入的内容填进输入框里。

12. 模拟滑动

adb shell input swipe x1 y1 x2 y2 time


13. 模拟点击

adb shell input tap x y

14. 查看设备信息

14.1. 查看设备型号

adb shell getprop ro.product.model

14.2. 查看电池状况

adb shell dumpsys battery

14.3. 查看屏幕分辨率

adb shell wm size

如果使用命令修改过:

Physical size: 1080x1920

Override size: 480x1024

14.4. 查看屏幕密度

adb shell wm density

14.5. 显示屏参数

adb shell dumpsys window displays


14.6. 安卓ID

adb shell settings get secure android_id


14.7. IMEI(设备ID)

adb shell dumpsys iphonesubinfo


14.8. Android 系统版本

adb shell getprop ro.build.version.release


14.9. IP 地址

adb shell ifconfig | grep Mask


14.10. WIFI

adb shell ifconfig wlan0


14.11. Mac 地址

adb shell cat /sys/class/net/wlan0/address

14.12. CPU 信息

adb shell cat /proc/cpuinfo


14.13. 内存信息

adb shell cat /proc/meminfo

15. 修改手机配置

15.1. 修改分辨率

adb shell wm size 480x1024

表示将分辨率修改为480px * 1024px

15.2. 恢复原分辨率

adb shell wm size reset


15.3. 修改屏幕密度

adb shell wm density 160

表示将屏幕密度修改为160DPI

15.4. 恢复原屏幕密度

adb shell wm density reset


15.5. 修改显示区域

adb shell wm overscan 0,0,0,200

四个数字分别表示距离左、上、右、下边缘的留白像素,以上命令表示将屏幕底部200px 留白。

15.6. 恢复原显示区域

adb shell wm overscan reset


16. 实用功能

16.1. 屏幕截图

adb exec-out screencap -p > image.png

将屏幕截图存到ADB目录下,名称为image.png


16.2. 录制屏幕

adb shell screenrecord  /sdcard/video.mp4
  
需要停止时按Ctrl+C,默认录制时间和最长录制时间都是180秒。

如果需要将录制的视频导出到电脑:
  
adb pull /sdcard/video.mp4


16.3. 重启手机

adb reboot

16.4. 检测手机是否root

adb shell 

此时命令行提示符是$则表示没有root权限,是#则表示已root。

相关推荐

  1. Android_adb_基本命令

    2024-04-20 10:12:07       55 阅读
  2. adb 命令

    2024-04-20 10:12:07       10 阅读
  3. Android adb 命令

    2024-04-20 10:12:07       14 阅读
  4. Redis基本数据类型命令

    2024-04-20 10:12:07       36 阅读
  5. Git 基本概念、使用方式命令

    2024-04-20 10:12:07       37 阅读
  6. adb和logcat命令

    2024-04-20 10:12:07       30 阅读
  7. 命令简单shell语句

    2024-04-20 10:12:07       26 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-20 10:12:07       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-20 10:12:07       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-20 10:12:07       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-20 10:12:07       20 阅读

热门阅读

  1. Linux环境部署MySQL

    2024-04-20 10:12:07       13 阅读
  2. idea常用的快捷键

    2024-04-20 10:12:07       16 阅读
  3. 掌握ChatGPT:写作论文的利器

    2024-04-20 10:12:07       14 阅读
  4. 在IntelliJIDEA中如何将依赖包打入项目中?

    2024-04-20 10:12:07       15 阅读
  5. Mac使用Idea新手常用快捷键

    2024-04-20 10:12:07       13 阅读
  6. lombok

    2024-04-20 10:12:07       12 阅读
  7. isListEqual方法比较

    2024-04-20 10:12:07       13 阅读