一文掌握ADB的安装及使用

文章目录

  • 一、什么是ADB?
  • [二、 安装ADB](#二、 安装ADB)
    • [2.1 下载ADB](#2.1 下载ADB)
    • [2.2 配置环境变量](#2.2 配置环境变量)
  • 三、连接Android设备
  • [四、 常用ADB命令](#四、 常用ADB命令)
  • 五、ADB高级功能
    • [5.1 屏幕截图和录制](#5.1 屏幕截图和录制)
    • [5.2 模拟按键输入](#5.2 模拟按键输入)
    • [5.3 文件管理](#5.3 文件管理)
    • [5.4 系统设置管理](#5.4 系统设置管理)
    • [5.5 系统操作指令](#5.5 系统操作指令)
    • [5.6 日志操作指令](#5.6 日志操作指令)
    • [5.7 APK操作指令](#5.7 APK操作指令)
    • [5.8 设备重启和恢复](#5.8 设备重启和恢复)
  • 六、小结

一、什么是ADB?

ADB(Android Debug Bridge)是一款功能强大的Androd开发工具,可用于在计算机和Android设备之间进行通信和控制。下面我们来看一下ADB的主要功能:

  • 设备管理: 连接和管理Android设备,包括列出所有连接的设备、获取设备信息等。
  • 应用管理: 安装、卸载、启动应用程序,以及查看应用信息等。
  • 文件传输: 在电脑和Android设备之间传输文件,包括拉取和推送文件。
  • 输入模拟: 模拟各种输入事件,如点击、滑动、输入文本等。
  • 屏幕操作: 捕获设备屏幕截图和屏幕录像。
  • 系统调试: 查看系统日志、获取设备属性、执行shell命令等。

二、 安装ADB

2.1 下载ADB

ADB的下载路径如下:

Windows版本: https://dl.google.com/android/repository/platform-tools-latest-windows.zip
Mac版本: https://dl.google.com/android/repository/platform-tools-latest-windows.zip
Linux版本: https://dl.google.com/android/repository/platform-tools-latest-linux.zip

2.2 配置环境变量

将ADB的platform-tools目录添加到系统PATH环境变量。这样做是为了方便命令使用,将目录添加到PATH环境变量后,就可以在任何目录下直接使用adb命令,而不需要输入完整的路径。

配置环境变量:

  • 步骤1: 先将下载的安装包进行解压,解压的文件夹中就有adb.exe。

  • 步骤2: 返回桌面,右击【此电脑】->【属性】->【高级系统设置】->【环境变量】

  • 步骤3: 在系统变量中点击【新建】,输入变量名:adb (自定义);

  • 步骤4: 在变量值中添加C:\Users\passion\Downloads\platform-tools(adb的工具路径)

  • 步骤5: 在系统变量path中添加刚刚添加的adb环境。双击Path,点击【新建】输入【%adb%】

  • 步骤6: 打开cmd,输入【adb version】出现版本号则为成功。 如果adb version执行不成功的话,可以重启电脑在试一下。

三、连接Android设备

  • USB调试模式
    在Android设备上进入开发者选项,并启用USB调试。
    用USB数据将设备连接到电脑。
  • 无线连接
    在 Android 设备上进入"开发者选项",并启用"无线调试"。
    在电脑上使用 adb connect 命令连接设备。

四、 常用ADB命令

命令 功能
adb version 显示adb的版本
adb help 帮助信息,查看所有ADB支持的命令
adb devices 列出所有连接的安装设备
adb get-serialno 查看设备号
adb install apk-file 在设备上安装APK文件
adb uninstall package-name 卸载设备上的应用程序
adb pull remote local 从设备拉取文件到电脑
adb push local remote 从文件从电脑推送到设备
adb shell 进入设备的shell环境,可执行各种Android命令
adb root 获取Android管理员(root用户)的权限
adb logcat 查看设备的系统日志
exit 退出
adb kill-server 杀死当前adb服务,如果连不上设备时,杀掉重启。(没事不要用它)
adb start-server 杀掉后重启
adb reboot edl 重启后进入刷机模式
adb reboot fastboot 重启后进入fastboot模式

五、ADB高级功能

5.1 屏幕截图和录制

  • 1. 捕获屏幕截图
bash 复制代码
# 在设备上捕获屏幕截图并保存到 /sdcard/screenshot.png 
adb shell screencap -p /sdcard/screenshot.png
  • 2. 将截图拉取到电脑上
bash 复制代码
# 将截图从设备拉取到电脑上
adb pull /sdcard/screenshot.png .
  • 3. 捕获设备录屏
bash 复制代码
# 录制设备屏幕并保存为 /sdcard/video.mp4
adb shell screenrecord /sdcard/video.mp4 
  • 4. 将录屏拉取到电脑上
bash 复制代码
# 将录制的视频从设备拉取到电脑上
adb pull /sdcard/video.mp4  .

5.2 模拟按键输入

  • 1. 模拟按下特定的按键
bash 复制代码
# 模拟按下特定的按键,如 HOME、BACK、VOLUME_UP 等。
adb shell input keyevent <key_code>
  • 2. 模拟在屏幕上的特定坐标点击
bash 复制代码
# 模拟在屏幕上的特定坐标点击
adb shell input tap \<x> \<y> 
  • 3. 模拟在当前焦点输入文本
bash 复制代码
# 模拟在当前焦点输入文本
adb shell input text "Hello World"
# 例如当我们焦点处于某文本框时,比如QQ登录界面 

5.3 文件管理

  • 1. 从设备拉取文件到电脑
bash 复制代码
# 从设备拉取文件到电脑
adb pull <remote> <local>
  • 2. 将文件从电脑推送到设备
bash 复制代码
# 将文件从电脑推送到设备
adb push <local> <remote> 
  • 3. 在设备上列出目录下的文件
bash 复制代码
# 在设备上列出 /sdcard 目录下的文件
adb shell ls /sdcard 

5.4 系统设置管理

  • 1. 获取系统设置的值
bash 复制代码
# 获取系统设置的值 
adb shell settings get system <setting> 
# 例:
# 获取屏幕亮度的值
adb shell settings get system screen_brightness
  • 2. 修改系统设置的值
bash 复制代码
#修改系统设置的值 可以设置屏幕亮度、自动锁屏时间、开发者选项等
adb shell settings put system <setting> <value> 
# 例:
# 设置屏幕亮度的值为120
adb shell settings put system screen_brightness 120

5.5 系统操作指令

  • 1. 获取设备型号
bash 复制代码
# 获取设备型号
adb shell getprop ro.product.model
  • 2. 获取安卓系统版本
bash 复制代码
# 获取Android系统版本
adb shell getprop ro.build.version.release
  • 3. 获取设备的序列号(设备号)
bash 复制代码
# 获取设备的序列号(设备号)
adb get-serialno
  • 4. 获取设备屏幕分辨率
bash 复制代码
# 获取设备屏幕分辨率
adb shell wm size
  • 5. 获取前台应用包名
bash 复制代码
# 查看前台应用包名,必须先启动app,适用于Android 8.0以上
adb shell
dumpsys window | grep mCurrentFocus
  • 6. 获取手机内存信息
bash 复制代码
# 获取手机内存信息
adb shell cat /proc/meminfo
  • 7. 获取手机存储信息
bash 复制代码
# 获取手机存储信息
adb shell df

5.6 日志操作指令

  • 1. 清理现有日志
bash 复制代码
# 清理现有日志
adb shell logcat -c
  • 2. 输出日志,信息输出在控制台
bash 复制代码
# 输出日志,信息输出在控制台
adb shell logcat -v time
# 输出日志并保存在本地文件
adb shell logcat -v time > <存放路径\log.txt>
# 注:
Ctrl+C:终止日志抓取
adb shell logcat -v time *:E > <存放路径\log.txt>:打印级别为Error的信息
日志的等级:
-v:Verbse(明细)
-d:Debug(调试)
-i:Info(信息)
-w:Warn(警告)
-e:Error(错误)
-f:Fatal(严重错误)
# 抓取日志的步骤
抓取日志的步骤先输入命令启动日志,然后操作 App,复现 bug,再 ctrl+c 停止日志。
分析本地保存的文件。日志是记录手机系统在运行app时有什么异常的事件。
# EXCEPTION
拉取Anr日志
ANR的全称是Application Not Responding,即"应用无响应"。它是指在Android操作系统上,
当应用程序在特定的时间内没有响应用户的输入事件或系统请求时,系统会向用户显示的一个对话框。
这个对话框通常会提示用户该应用程序未响应,并询问用户是希望继续等待还是强制关闭该应用程序。
adb shell pull /data/anr/traces.txt <存放路径>

5.7 APK操作指令

  • 1. 列出当前设备/手机,所有的包名
bash 复制代码
# 列出当前设备/手机,所有的包名
adb shell pm list packages
  • 2. 显示包和包相关联的文件(安装路径)
bash 复制代码
# 显示包和包相关联的文件(安装路径)
adb shell pm list packages -f
# 显示禁用的包名
adb shell pm list packages -d
# 显示当前启用的包名
adb shell pm list packages -e
# 显示系统应用包名
adb shell pm list packages -s
# 显示已安装第三方的包名
adb shell pm list packages -3
# 加需要过滤的包名,如:xxx = tencent
adb shell pm list packages xxxx
  • 3. 下载包
bash 复制代码
# 将本地的apk软件安装到设备(手机)上。如手机外部安装需要密码,记得手机输入密码。
adb install <文件路径\apk>
# 覆盖安装
adb install -r <文件路径\apk>
# 允许降级覆盖安装
adb install -d <文件路径\apk>
# 授权/获取权限,安装软件时把所有权限都打开
adb install -g <文件路径\apk>
  • 4. 卸载包
bash 复制代码
# 卸载该软件/app
# 注意:安装时安装的是apk,卸载时是包名,可以通过 adb shell pm list packages 查看需要卸载的包名
adb uninstall <包名>
# 虽然把此应用卸载,但仍保存此应用的数据和缓存
adb shell pm uninstall -k <包名>
# 强制退出该应用/app
adb shell am force-stop <包名>

5.8 设备重启和恢复

  • 1. 重启设备
bash 复制代码
# 重启设备
adb reboot 
  • 2. 以recovery模式重启设备
bash 复制代码
# 以 recovery 模式重启设备
adb reboot recovery 
  • 3. 以bootloader模式重启设备
bash 复制代码
# 以 bootloader 模式重启设备
adb reboot bootloader  

六、小结

ADB是我们Android开发和调试中不可或缺的工具,希望通过以上这些adb内容分享,可以帮助大家更好的控制和管理Android设备,提升大家的开发效率,后面有新的内容会继续往里面补充。

相关推荐
垚垚 Securify 前沿站39 分钟前
Linux Samba 低版本漏洞(远程控制)复现与剖析
linux·运维·网络·安全·web安全·网络安全·系统安全
指尖动听知识库1 小时前
嵌入式经典面试题之操作系统(一)
java·linux·服务器
Zfox_1 小时前
HTTPS 协议原理
linux·网络·网络协议·tcp/ip·http·https
凌云行者2 小时前
Linux-Robust-Futex学习笔记
linux·学习笔记·robust futex
阿猿收手吧!4 小时前
【Docker】Docker入门了解
linux·运维·服务器·docker·云原生·容器·eureka
zwhSunday12 小时前
线程概念、操作
linux·线程
_zwy12 小时前
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
linux·运维·c++·深度学习·神经网络
半夏云流13 小时前
CMake常用命令指南(CMakeList.txt)
linux·makefile·cmake
鲁子狄14 小时前
[笔记] 极狐GitLab实例 : 手动备份步骤总结
linux·运维·笔记·ubuntu·centos·gitlab