adb常用指令以及安卓端的实用操作


持续更新中


1. adb概述

  • adb全称为Android debug bridge
  • 通俗来讲,adb是PC与安卓系统实现交互的桥梁,借助adb,我们可以实现PC电脑对安卓设备进行操作控制。比如实现各种点击事件、滑动事件、按键事件和拷贝log信息等功能。

2. adb环境配置


3. 连接设备

连接方式注意事项
有线连接需要打开USB调试,需要装驱动
无线连接PC与设备处于同一局域网,需要打开USB调试
串口连接使用串口指令
  • 连接注意点

4. adb常用命令

4.1 基本命令

  • 显示adb版本信息
adb version
  • 查看命令帮助信息
adb help

# 注:帮助文档写得很详细,英文好的可以直接看help
  • 显示当前已连接的设备列表
adb devices
  • 全局参数
-a         监听所有网络接口,而非仅本地
-d         使用USB连接的设备 (若有多个则会报错)
-e         使用TCP/IP设备 (若有读个则会报错)
-s SERIAL  使用指定序列号的设备 (覆盖$ANDROID_SERIAL)
-t ID      使用指定transport id的设备
-H         指定adb server的host [默认localhost]
-P         指定adb server的端口 [默认5037]
-L SOCKET  指定adb server的监听socket[默认tcp:localhost:5037]

4.2 通信命令

  • 连接设备
adb connect HOST[:PORT]

# PORT默认是5555

adb forward --list           列出设备所有正向套接字连接


  • 断开设备
adb disconnect HOST[:PORT]

# PORT默认是5555
  • 重连设备
adb reconnect offline

4.3 状态命令

  • 获取当前连接状态
adb get-state

# device:连接正常
# Offline:连接退出
# Unauthorized:未授权
  • 查看序列号
adb get-serialno
  • 获取设备路径
adb get-devpath
  • 获取Android管理员(root用户)的权限
adb root

# 注意:一般测试机可使用root权限。
# Android版本9以上,不支持商用机使用root权限,但可以修改底层一些配置

4.4 内部服务调试命令

  • 杀死服务
adb kill-server
  • 启用服务
adb start-server

# 确保至少有一个server在运行

4.5 shell命令

  • 进入adb的shell界面
 shell [-e ESCAPE] [-n] [-Tt] [-x] [...]
     -e: 使用转义字符, 或者使用 "none"; 默认是 '~'
     -n: 忽略文件输入流
     -T: 禁用pty分配
     -t: allocate a pty if on a tty (-tt: force pty allocation)
     -x: disable remote exit codes and stdout/stderr separation
 emu COMMAND              run emulator console command

5. 实现部分安卓端的控制操作


  • 获取安卓端的包名
adb shell pm list packages {grepName} -{param}

:param param:
-a 列出所有包名
-s 系统应用
-3 三方应用
-f 包和包相关联的文件
-i 包相关的信息
更多参数参考:adb shell pm list packages 的一些用法

:param grepName:
你要查找的字符串,就是一个过滤器,可不填

  • 获取当前活动页指令

在安卓端打开任意应用, 通过以下指令即可获取当前活动应用的包名详细信息

adb shell "dumpsys window | grep mCurrentFocus"
  • 打开安卓下的应用

打开文件管理器实例:
com.skg.filemanager/com.skg.filemanager.FileBrowserActivity需要通过获取当前活动页的指令获取

adb shell am start com.skg.filemanager/com.skg.filemanager.FileBrowserActivity
  • 获取安卓端的分辨率
adb shell wm size
  • 控制安卓端重启
adb shell reboot
或
adb reboot

二者本质上有区别,adb shell 是调用安卓内核重启

  • 开关wifi
adb shell svc wifi enable/disenable

只能关闭不能打开,因为关闭之后adb会丢失连接,但可通过串口发送打开wifi指令,解决方法博主正在探索中

  • 点击事件
adb shell input tap {x} {y}

坐标的获取建议打开安卓原生设置菜单的开发者模式,打开触控位置

  • 模拟文字输入
adb shell input text {text}

模拟文字输入事件,text输入字符串, 只支持unicode编码字符,不支持ASCII码,所以不支持中文, 解决方案:解决 adb shell input text 无法中文的问题

  • 滑动事件
adb shell input swipe {x1} {y1} {x2} {y2} {t}

模拟滑动事件,x1,y1为起始坐标,x2,y2为终点坐标,t为滑动的时间

  • 拖动事件
adb shell input draganddrop {x1} {y1} {x2} {y2} {t}

模拟拖动事件,x1,y1为起始坐标,x2,y2为终点坐标,t为拖动的时间

  • 截图保存到电脑
adb exec-out screencap -p >C:\Users\***\Pictures\{picture_name}.png

截图保存到电脑,同名默认覆盖, 路径需要修改

  • 内置按键事件
adb shell input keyevent {x}

x=3表是主页,x=4表示返回,可支持自定义, 更多内置按键

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值