adb常用命令大全

文章目录


一、什么是adb

ADB是Android Debug Bridge的缩写,它是一个命令行工具,主要用于在开发过程中实现计算机与Android设备之间的通信。ADB工具允许开发者执行一系列调试操作,如安装应用、管理应用的生命周期、读取日志数据、执行shell命令等。

二、adb的作用

ADB通常包含在Android SDK(软件开发包)中,并且可以用于:

在开发机(通常是PC)上运行的应用程序和连接的Android设备之间建立通信
文件系统操作,如文件复制或删除
在设备上启动或停止应用程序
捕获设备屏幕输出(截图)
控制输入事件,如模拟按键或触摸输入
读取设备的日志信息

为了使用ADB,你需要将你的Android设备设置为开发者模式,并启用USB调试功能。这样,当你的设备通过USB连接到电脑时,ADB就能够与之交互了。此外,ADB还可以通过Wi-Fi网络来控制设备,这需要进行一些额外的配置

ADB是Android开发者不可或缺的一个工具,在测试和调试阶段尤其有用

三、adb常用命令

3.1 基本命令

3.1.1 查看adb版本信息

adb version

在这里插入图片描述

3.1.2 查看已连接设备

adb devices

无adb连接
在这里插入图片描述
连接adb

3.1.3 启动adb

adb start-server

3.1.4 停止adb

adb kill-server

3.1.5 以root权限运行adb

adb root

3.2 adb连接设备的两种方式

3.2.1 USB连接

  1. USB连接设备需要保证硬件方面是正常运行,usb可以正常连接电脑
  2. android设备的开发者选项和usb调试模式已经打开
  3. adb驱动正常
  4. adb devices命令查看设备可看到设备正常连接

3.2.2 WIFI连接

  1. 电脑与android设备需要在同一个网段上面
  2. 使用ADB shell命令获取IP地址:adb shell ipconfig (查找wlan0接口下的inet addr部分,这将给出设备的IP地址)
  3. 配置ADB使用TCP/IP模式 输入:adb tcpip 5555 ( 这里的数字5555是指定的端口号,您可以根据需要选择不同的端口)
  4. 使用设备的IP地址和前面指定的端口号连接:adb connect <设备IP>:5555
  5. 验证连接:adb devices

注意事项:

  • 需要root权限的 需要在连接前输入su
  • 确保设备和开发电脑连接到同一个WiFi网络
  • 如果连接失败,请检查IP地址和端口号是否正确,以及设备是否已经处于TCP/IP模式
  • 如果遇到权限问题,请确保在设备上启用了“USB调试”选项,并且设备已经授权您的电脑进行调试
  • 有时候可能需要重启ADB服务器或者设备的ADB守护进程才能成功连接

3.3 应用管理

3.3.1 查看所有已安装的应用程序包名

adb shell pm list packages

3.3.2 查看特定类型的应用

# 列出所有系统应用
adb shell pm list packages -s

# 列出所有第三方应用
adb shell pm list packages -3

3.3.3 查看应用的信息

adb shell dumpsys package <包名>

这条命令会返回有关该应用的详细信息,包括签名、权限、安装时间等

3.3.4 查看应用的安装位置

adb shell pm path <包名> 

这条命令会返回类似package:/data/app/…或package:/storage/emulated/legacy/…这样的路径信息

3.3.5 查看应用的启动Activity

adb shell dumpsys package <包名> | grep "launchActivity"

这会返回一个类似{ComponentInfo{com.example.app/com.example.app.MainActivity}}的结果,从中可以获取到启动Activity的名字

3.3.6 查看应用的详细状态

adb shell ps

这条命令会列出所有正在运行的进程,包括它们的状态(如运行、暂停、睡眠等)

3.3.8 安装应用

adb install <path_to_apk>

带参数安装应用:支持多个安装选项,例如允许替换现有的应用版本

adb install -r <path_to_apk>

其中 -r 表示替换现有应用版本

3.3.9 卸载应用

adb uninstall <包名>

3.3.10 启动应用

adb shell am start -n <包名>/<Activity全称>

3.3.11 应用调试

强制停止应用:强制停止指定的应用程序

adb shell am force-stop <包名>

3.3.12 清除应用数据

清除指定应用的数据和缓存

adb shell pm clear <包名>

3.3.13 授予应用权限

adb shell pm grant <包名> <权限>

3.3.14 撤销应用权限

adb shell pm revoke <包名> <权限>

3.4 文件管理

3.4.1 从本地复制到设备

推送文件:将本地文件或目录复制到设备上

adb push <本地路径> <远程路径>

3.4.2 从设备复制到本地

adb pull <远程路径> <本地路径>

3.4.3 删除文件

adb shell rm <远程路径>

3.4.4 删除目录

adb shell rm -r <远程路径>

3.4.5 创建目录

adb shell mkdir <远程路径>

3.4.6 列出目录内容

adb shell ls <远程路径>

3.4.7 带有详细信息的目录列表

adb shell ls -l <远程路径>

3.4.8 文件移动

adb shell mv <源路径> <目标路径>

3.4.9 文件重命名

adb shell mv <旧路径> <新路径>

3.4.10 文件和目录权限管理

adb shell chmod <权限模式> <远程路径>

3.4.11 文件内容查看

adb shell cat <远程路径>

3.4.12 文件查找

adb shell find <路径> -name <文件名>

3.5 网络管理

3.5.1 查询网络状态

adb shell ipconfig

3.5.2 更改网络设置

adb shell ifconfig wlan0 inet <IP地址> netmask <子网掩码>

3.5.3 网络诊断

ping命令:测试设备与另一台主机之间的网络连通性

adb shell ping <主机地址>

traceroute命令:追踪数据包到达目标主机所经过的路由

adb shell traceroute <主机地址>

3.5.4 网络配置

启用或禁用网络接口:可以启用或禁用特定的网络接口

adb shell ifconfig wlan0 up
adb shell ifconfig wlan0 down

3.5.5 网络流量控制

查看网络流量统计:获取网络接口的流量统计信息

adb shell cat /proc/net/dev

3.5.6 无线网络管理

查看可用的Wi-Fi网络:列出设备周围可接入的Wi-Fi网络

adb shell wpa_cli scan_results

连接到Wi-Fi网络:使用指定的SSID和密码连接到Wi-Fi网络

adb shell wpa_cli add_network
adb shell wpa_cli set_network 0 ssid '"<SSID>"'
adb shell wpa_cli set_network 0 psk '"<密码>"'
adb shell wpa_cli enable_network 0
adb shell wpa_cli save_config

3.6 日志打印

3.6.1 查看所有日志:显示设备上的所有日志信息

adb logcat

3.6.2 过滤日志

adb logcat *:I  # 只显示INFO级别及以上的日志
adb logcat *:W  # 只显示WARNING级别及以上的日志
adb logcat *:E  # 只显示ERROR级别的日志
adb logcat *:V  # 显示VERBOSE级别的日志

按标签过滤:只显示特定标签的日志

adb logcat <标签>:V *:S

示例:只显示ActivityManager标签的日志信息

adb logcat ActivityManager:V *:S

3.6.3 输出特定应用的日志

按包名过滤:只显示特定应用程序的日志

adb logcat <包名>:V *:S

示例:只显示com.example.myapp这个包的日志

adb logcat com.example.myapp:V *:S

3.6.4 日志时间戳

按时间戳排序:以时间顺序显示日志

adb logcat -v time

3.6.5 日志记录到文件

记录日志到文件:将日志输出到本地文件

adb logcat > ./logs.txt

3.6.6 清空日志缓冲区

清空日志缓冲区:清除设备上的日志缓冲区

adb logcat -c

3.6.7 实时更新

实时更新日志:在持续运行的命令窗口中,新的日志会自动刷新显示

adb logcat

3.6.8 日志标签解释

日志标签:在日志输出中,通常每条日志前会有标签和日志级别,例如:

<时间戳> <PID:TID> <标签> <日志级别>: <日志信息>
  • <时间戳>:日志的时间戳。
  • PID:TID:进程ID和线程ID。
  • <标签>:日志标签。
  • <日志级别>:日志级别,如V(VERBOSE)、D(DEBUG)、I(INFO)、W(WARNING)、E(ERROR)。
  • <日志信息>:实际的日志信息

假设你想查看名为MyApp的应用程序的日志,并且只关心ERROR级别及以上的信息,可以使用如下命令:

adb logcat MyApp:E *

3.7 查看Android设备属性

3.7.1 查看所有设备属性

adb shell getprop

3.7.2 查看设备型号

adb shell getprop ro.product.model

3.7.3 查看设备品牌

查看设备品牌

3.7.4 查看设备制造商

adb shell getprop ro.product.manufacturer

3.7.5 查看设备硬件平台

adb shell getprop ro.product.hardware

3.7.6 查看设备序列号

adb shell getprop ro.serialno

3.7.7 查看设备的Android版本

adb shell getprop ro.build.version.release

3.7.8 查看设备的API级别

adb shell getprop ro.build.version.sdk

3.7.9 查看设备的内核版本

adb shell getprop ro.kernel.qemu

3.7.10 查看设备的构建日期

adb shell getprop ro.build.date

3.7.11 查看设备的CPU信息

adb shell cat /proc/cpuinfo

3.7.12 查看设备的内存信息

adb shell cat /proc/meminfo

3.7.13 查看设备的电池状态

adb shell cat /sys/class/power_supply/battery/*

3.7.14 综合使用getprop和其他命令

adb shell cat /proc/meminfo | grep MemTotal

3.8 实用功能

3.8.1 屏幕截图

adb shell screencap -p /sdcard/screenshot.png  
adb pull /sdcard/screenshot.png

3.8.2 屏幕录制

adb shell screenrecord /sdcard/demo.mp4
adb pull /sdcard/demo.mp4
或者指定位置
adb pull /sdcard/demo.mp4 F:\mvp\demo.mp4
3.8.2.1 限制录制时间

使用–time-limit参数来设置视频录制的最大时长(以秒为单位)。例如,录制10秒的视频

adb shell screenrecord --time-limit 10 /sdcard/demo.mp4
3.8.2.2 设置视频分辨率

使用–size参数来指定视频的分辨率。例如,录制分辨率为1280x720的视频

adb shell screenrecord --size 1280x720 /sdcard/demo.mp4
3.8.2.3 设置视频比特率

使用–bit-rate参数来设置视频的比特率(以比特/秒为单位)。例如,设置比特率为6Mbps

adb shell screenrecord --bit-rate 6000000 /sdcard/demo.mp4
3.8.2.4 查看详细输出

使用–verbose参数在命令行中显示有关录制的详细信息。例如

adb shell screenrecord --time-limit 10 --verbose /sdcard/demo.mp4

3.8.3 查看连接过的WIFI密码

需要root权限

adb shell
su
cat /data/misc/wifi/*.conf

3.8.4 设置系统日期和时间

需要root权限

adb shell
su
date -s 20240922.141522

3.8.5 重启手机

adb reboot

3.8.6 重启到Recovery模式

adb reboot Recovery

3.8.7 查看进程ID

adb shell ps | grep com.example.myapp

或者使用pidof命令(如果可用)

adb shell pidof com.example.myapp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值