ADB常用命令整理(全网最全)

调试Android程序时,我们经常需要使用adb shell命令。adb是Android Debug Bridge的缩写,它充当调试桥梁的作用,就像一条连接开发机和设备之间的桥梁。

通过adb,我们可以在Eclipse中使用DDMS来调试Android程序,简单来说就是一种调试工具。它通过监听特定端口(如TCP 5554)来实现开发机和模拟器/设备之间的通讯。当我们运行Eclipse时,默认情况下会启动adb进程。

adb是一个C/S模式的程序,由三个部分组成:客户端、服务器和守护进程。其中客户端和服务器运行在开发机上,守护进程运行在模拟器或设备上。

通常,adb可执行文件位于/platform-tools/目录下,这是Android SDK的安装目录。为了方便使用,我们可以将adb路径添加到系统环境变量path中,例如:D:\sdk\platform-tools; 这样每次打开命令行工具时都可以直接使用adb命令,而不必进入adb目录。

以下是一些常用的adb命令,可以帮助我们进行调试和测试:

  • adb devices:查看当前连接的设备列表
  • adb install [apk文件路径]:安装一个应用程序
  • adb uninstall [包名]:卸载一个应用程序
  • adb logcat:查看设备的日志信息
  • adb shell am start [包名/类名]:启动一个应用程序
  • adb shell input text [文本]:模拟输入文本到设备
  • adb shell screencap [文件路径]:截屏并保存为图片文件
  • adb pull [设备文件路径] [本地文件路径]:从设备上复制文件到本地计算机
  • adb push [本地文件路径] [设备文件路径]:将本地文件复制到设备上

更详细的如下表~

命令 描述
android list targets 显示系统中全部Android平台
android list avd 显示系统中全部AVD(模拟器)
android create avd --name 名称 --target 平台编号 创建AVD(模拟器)
emulator -avd 名称 -sdcard ~/名称.img (-skin 1280×800) 启动模拟器
android delete avd --name 名称 删除AVD(模拟器)
mksdcard 1024M ~/名称.img 创建SDCard
ddms 启动DDMS
adb devices 显示当前运行的全部模拟器
adb -s 模拟器编号 命令 对某一模拟器执行命令
adb install -r 应用程序.apk 安装应用程序
adb pull <remote> <local> 获取模拟器中的文件
adb push <local> <remote> 向模拟器中写文件
adb shell 进入模拟器的shell模式
android 启动SDK,文档,实例下载管理器
adb uninstall apk包的主包名 卸载apk包
adb help 查看adb命令帮助信息
adb logcat -s 标签名 在命令行中查看LOG信息
adb remount 删除系统应用
adb shell cd data/app rm apk包 exit 缷载apk包
adb remount 删除系统应用,重新挂载系统分区,使系统分区重新可写
adb shell cd system/app rm *.apk 删除系统应用
adb root 获取管理员权限
adb shell am start -n 包名/包名+类名 (-n 类名,-a action,-d date,-m MIME-TYPE, -c category,-e 扩展数据,等) 启动Activity
adb forward tcp:5555 tcp:8000 发布端口
adb push <source> <destination> 复制文件到设备或模拟器上
adb pull <source> <destination> 从设备或模拟器上复制文件
adb devices 搜索模拟器/设备的实例
adb bugreport 查看bug报告
adb shell logcat -b radio 记录无线通讯日志
adb get-product 获取设备的ID
adb get-serialno 获取设备的序列号
adb shell sqlite3 访问数据库SQLite3
adb shell cd system/sd/data ls 进入系统内指定文件夹并列出内容
adb shell rm -r xxx 删除名为xxx的文件夹及其内部所有文件
adb shell rm xxx 删除文件xxx
adb shell rmdir xxx 删除文件夹xxx

一、常用简单的adb命令:

命令 描述
adb devices 获取设备列表和设备的状态
adb get-state 获取设备的状态(device,offline,unknown)
adb kill-server adb start-server 结束,启动adb服务
adb install -r 覆盖安装应用(apk)
adb uninstall 卸载应用(应用包名)
adb pull 将设备上的文件复制到电脑上
adb push 将电脑上的文件复制到设备上
adb reboot 重启设备
adb connect 远程连接设备
adb disconnect 断开设备连接

二、adb shell pm基本的命令:

命令 描述
adb shell pm list package -s 列出系统应用
adb shell pm list package -3 列出第三方的应用
adb shell pm list package -i 列出来源
adb shell pm list package -f 列出包名和路径
adb shell pm path packagename 列出应用apk的位置
adb shell pm dump packagename 列出应用相关的信息
adb shell pm clear packagename 清除应用的缓存数据
adb shell pm install /data/local/tmp/test.apk 安装应用
adb shell pm install -r /data/local/tmp/test.apk 重新安装应用
adb shell pm uninstall -k packagename 卸载应用(保留缓存数据)
adb shell pm install -d apk 允许降级安装

三、adb shell am基本的命令:

命令 描述
adb shell am start -n activityname 启动一个Activity
adb shell am start -W activityname 等待页面启动完成
adb shell am start -S activityname 先停止应用再启动
am force-stop packagename 结束应用

三、adb shell dumpsys基本的命令:

命令 描述
adb shell dumpsys cpuinfo 监控CPU信息
adb shell dumpsys meminfo 监控内存信息
adb shell dumpsys power 监控电源信息
adb shell dumpsys battery 监控电池信息
adb shell dumpsys wifi 监控WiFi信息
adb shell dumpsys notification 监控通知信息
adb shell dumpsys activity 获取页面信息

四、关闭某项进程,以monkey为例:

命令 描述
`ps grep monkey`
kill pid 杀死monkey进程

五、最近12小时的资源情况:

命令 描述
adb shell dumpsys procstats --hours 12 查看最近12小时的资源情况

六、录制屏幕命令:

命令 描述
adb shell screenrecord /sdcard/demo.mp4 录制屏幕视频
--time-limit 限制录制时间
--size 指定视频分辨率大小
--bit-rate 指定视频的比特率
--verbose 在命令行显示日志

七、截图命令:

命令 描述
adb shell screencap -p /sdcard/screen.png 截取屏幕截图并保存到指定位置

八、input命令:

adb shell input:

  • text 输入文本
  • keyevent 输入事件
  • tap 点击
  • swipe 滑动

九、关于获取当前页面的信息:

命令 描述
`adb shell dumpsys activity top findstr ACTIVITY`
`adb shell dumpsys activity findstr mFocusedActivity`

十、生成当前页面的xml文本:

命令 描述
adb shell uiautomator dump [file] 获取当前页面的XML信息

示例XML信息中的属性说明:

  • text:控件中显示的文本内容
  • class:控件的类型
  • package:包名
  • content-desc:说明
  • checkable:是否允许check
  • checked:check状态
  • clickable:是否允许click
  • enabled:控件状态
  • focusable:是否允许获取焦点
  • focused:是否获取到焦点
  • scrollable:是否允许滚动
  • long-clickable:是否允许长按
  • password:是否是密码控件
  • selected:select状态
  • bounds:控件绘制的长宽及位置四个数据,分成两组,分别是左上坐标和右下坐标

十一、打印页面的log信息:

命令 描述
logcat -s ActivityManager 打印页面的log信息

十二、系统操作指令:

命令 描述
adb shell getprop ro.product.model 获取设备型号
adb shell getprop ro.build.version.release 获取设备Android系统版本
adb get-serialno 获取设备的序列号(设备号)
adb shell wm size 获取设备屏幕分辨率
`adb shell dumpsys activity find "mFocusedActivity"`
`adb shell dumpsys activity find "mResumedActivity"`

九、取日志:

命令 描述
adb logcat -v time 打印详细的日志信息
adb logcat -v time > D:\log.txt 把日志输出到电脑上的文本文件中
adb logcat -c 清除之前的日志信息

十、日志过滤:

  1. 使用管道进程来查看日志:

    • adb logcat \| grep MyApp:过滤包含"MyApp"的日志
    • adb logcat \| grep -i myapp:忽略大小写,过滤包含"myapp"的日志
  2. 只抓取某个应用的命令:

    • adb logcat \| findstr app进程号:只显示特定应用的日志(在Windows上使用findstr
  3. 日志级别过滤:

    • 默认级别为V,输出所有日志最低级别。
    • 日志级别包括:D(Debug)、I(Info)、W(Warning)、E(Error)、F(Fatal)和S(Silent,最高级别,不输出任何日志)。

示例:如果想要查看手机上级别为错误的日志,可以使用以下命令:

  • adb logcat *:E(不区分大小写)
相关推荐
qq_3089574713 小时前
adb 如何通过wifi连接手机
adb·智能手机·app自动化测试
白如意i1 天前
如何在 CentOS 6 上设置 NFS 挂载
数据库·mysql·adb
七月.末1 天前
安卓aab包的安装教程,附带adb环境的配置
android·adb
SRC_BLUE_171 天前
SQLI LABS | Less-39 GET-Stacked Query Injection-Intiger Based
android·网络安全·adb·less
jason.zeng@15022073 天前
ubuntu中安装mysql
mysql·ubuntu·adb
看山还是山,看水还是。3 天前
MySQL 安装
运维·数据库·笔记·学习·mysql·adb
开心呆哥4 天前
【如何使用 Python 脚本通过 ADB 命令来检查 Android 文件内容】
android·python·adb
秋秋秋秋秋雨4 天前
linux强制修改mysql的root账号密码
linux·mysql·adb
开心呆哥5 天前
【如何使用 ADB 脚本批量停止 Android 设备上的所有应用】
android·adb
CodingBrother5 天前
MySQL 和 PostgreSQL 的使用案例
mysql·adb·postgresql