文章目录

  • ADB 简介
  • ADB的工作原理
  • adb命令
  • 开启或者关闭服务
  • 查看当前设备
  • 安装 adb install
  • 存在一台设备时
  • 存在多台设备时,使用-s 序列号 进行指定设备
  • 卸载
  • pc和手机互传文件
  • 查看日志
  • 查看手机信息
  • 查看系统系统服务状态信息
  • 获取Activity信息
  • 查询当前运行activity
  • 显示手机当前目录的所有内容
  • 查看电池电量的相关信息
  • 列出所有的包名
  • 清除应用数据及缓存
  • 获取包名所在的路径
  • 模拟手机按键
  • CPU使用情况
  • 手机相关
  • 手机挂载 (提升权限)


ADB 简介

DB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。安卓调试桥 (Android Debug Bridge, adb),是一种可以用来操作手机设备或模拟器的命令行工具。它存在于 sdk/platform-tools 目录下

ADB的工作原理

adb包含三个部分:

a. Client端:运行在开发机器中,用来发送adb命令,比如电脑

b. Daemon守护进程:运行在调试设备,比如手机、模拟器中,用来接收并执行adb命令

c. Server端:运行在开发机器中,用来管理Client端和手机端Daemon之间的通信。

当在电脑命令行窗口中输入adb 命令时,会先执行adb客户端,客户端拿到命令之后,会发送给adb服务端,server再将命令传给Daemon,最后在手机上执行。假如在手机上安装一个应用,会有一个返回信息,会将信息传递给adb服务器,adb 在给客户端,最后显示在命令行。

总结:

a.client端将命令发送给server端

b.server端会将命令发送给daemon端

c.daemon端进行执行

d.将执行结果,返回给server端

e.server端将结果再返回给client端

adb命令

开启或者关闭服务

adb start-server:开启adb服务
adb kill-server:关掉adb服务

查看当前设备

adb devices
或者
adb devices -l
或者
adb get-state

使用该指令将返回设备状态信息,该状态信息包含三种

  • devices状态:表示移动设备或者模拟器已经连接到adb服务器上
  • offline状态:表示移动设备或者模拟器没有连接到adb服务器或者没有响应
  • no devices状态:表示没有设备或者模拟器连接

安装 adb install

存在一台设备时

adb install apk路径

参数

  • -r 不用卸载在安装,而是直接覆盖安装,并保留数据
  • -d 允许降级覆盖安装
  • -t 允许测试包。如果在安装中,遇到Failure [INSTALL_FAILED_TEST_ONLY installPackageLI],则使用该命令
  • -g 为应用程序授予所有运行时的权限
  • -s 把应用程序安装到sd卡上

参数可组合使用。

adb install -r -d apk路径

存在多台设备时,使用-s 序列号 进行指定设备

adb -s 序列号 install apk路径

序列化 即通过adb devices命令显示的序列号。

卸载

adb uninstall apk路径

pc和手机互传文件

  1. adb pull : 将移动设备中的文件传送到PC上
adb pull 移动设备路径 PC路径
  1. adb push :将PC中的文件传送到移动设备端
adb push PC路径 移动设备路径
adb push PC路径 /sdcard/

查看日志

adb logcat : 打印所有日志
adb logcat >/Users/xxxx/demo.log
adb -s 序列号 logcat >/Users/xxxx/demo.log
日志等级,优先级从低到高分为以下几种:

V——Verbose(最低等级,开发调试中的一些详细信息,仅在开发中使用,不可再发布产品中)

D——Debug(调试,用于调试的信息,可以在发布产品中关闭,比较常见)

I——info(信息,一般提示性的信息)

W——Warning(警告)

E——Error(错误,已经出现可影响运行的错误,比如应用crash时输出的日志)

在 E级别中可以搜索这个关键字:fatal exception

ANR全名Application Not Responding,也就是应用无响应当操作在一段时间内系统无法处理时,系统层面会弹出ANR对话框

在日志中查询:ANR in

在查到ANR in 之后 上一行会有

查看日志常用的参数

adb logcat -v time 打印时间
adb logcat -v color 使用不同的颜色来显示每个优先级
adb logcat -f <filename> 将日志输出到文件(文件存在手机上),例如,adb logcat -f /sdcard/log.log
adb logcat > log.log 保存日志到PC上
adb logcat -c 清理已存在的日志
adb logcat *:W 打印Warning以上级别的日志

查看手机信息

查看系统系统服务状态信息

adb shell dumpsys默认打印出当前系统所有服务状态信息,在后面可加上具体的服务名。

例如:

dumpsys activity //查询AMS服务相关信息
dumpsys window //查询WMS服务相关信息
dumpsys cpuinfo //查询CPU情况
dumpsys meminfo //查询内存情况

可查询的服务有很多,可通过下面任一命令查看当前系统所支持的dump服务:

adb shell dumpsys -l
adb shell service list

获取Activity信息

adb shell dumpsys activity
包括broadcast Service Activity都在里面,如果感觉信息太多,则可以用

adb shell dumpsys activity activities 从顶部向下获取activity栈的信息。

栈的信息大致介绍如下

ios 类似 adb 命令_adb

查询当前运行activity
adb shell dumpsys activity | findstr mFocusedApp
adb shell dumpsys activity | findstr mFocusedWindow
adb shell dumpsys activity top
adb shell dumpsys window | findstr mCurrentFocus

具体参考

显示手机当前目录的所有内容

adb shell ls
或者分开使用
~~adb shell
~~ls
注意:使用exit退出提示符
如果在操作过程中出现没有权限的问题,则需要切换root用户
su root

查看电池电量的相关信息

adb shell dumpsys battery 

描述信息:
AC powered: false        //false表示没有使用AC电源供电
USB powered: true        //true表示使用USB电源供电
Wireless powered: false     //false表示没使用无线电源
status: 2             //2表示电池正在充电,1表示没充电
health: 2             //2表示电池状态优秀
present: true           //true表示已安装电池
level: 42             //电池百分比
scale: 100             //满电量时电池百分比为100%(不确定是否正确)
voltage: 3868           //电池电压
temperature: 330         //电池温度为25摄氏度
technology: Li-ion        //电池类型为锂电池

列出所有的包名

adb shell pm list packages 列出包名

- 列出所有的包名
	adb shell pm list packages
- 列出通过第三方安装的包
	adb shell pm list packages -3

pm全称为package manager ,可以使用pm命令模拟Android行为或者查询设备上的应用。

清除应用数据及缓存

adb shell pm clear <包名>

获取包名所在的路径

adb shell pm path <包名>

模拟手机按键

- 模拟点击事件
adb shell input tap x坐标 y坐标
adb shell input tap 528 1539

- 输入文本
首先需要把光标移到输入框,然后执行以下命令
adb shell input text zengzengzeng

- 模拟滑动事件
adb shell swip <起点x> <起点y> <终点x> <终点y> <滑动时长>
adb shell input swipe 528 1539 528 1300 2000
2000为滑动时间,单位是毫秒

- 返回键
adb shell input keyevent 4

- 返回home键(置应用于后台)
adb shell input keyevent 3

- 音量放大
adb shell input keyevent 24

- 音量缩小
adb shell input keyevent 25

CPU使用情况

1)查看当前系统CPU使用情况:

adb shell dumpsys cpuinfo
获取的是一段时间的均值

2)进程占用情况

adb shell top 
adb shell top | grep "包名" —— 查看某个包的一些性能
adb shell top -d 1 |grep "包名"

3)内存使用情况

adb shell dumpsys meminfo

手机相关

手机挂载 (提升权限)

adb reboot remount
adb remount’ 将 ‘/system’ 部分置于可写入的模式,默认情况下 ‘/system’ 部分是只读模式的。这个命令只适用于已被 root 的设备。

在将文件 push 到 ‘/system’ 文件夹之前,必须先输入命令 ‘adb remount’。

‘adb remount’ 的作用相当于 ‘adb shell mount -o rw,remount,rw /system’。