一文掌握ADB的安装及使用

文章目录

  • 一、什么是ADB?
  • 二、 安装ADB
    • 2.1 下载ADB
    • 2.2 配置环境变量
  • 三、连接Android设备
  • 四、 常用ADB命令
  • 五、ADB高级功能
    • 5.1 屏幕截图和录制
    • 5.2 模拟按键输入
    • 5.3 文件管理
    • 5.4 系统设置管理
    • 5.5 系统操作指令
    • 5.6 日志操作指令
    • 5.7 APK操作指令
    • 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. 捕获屏幕截图
# 在设备上捕获屏幕截图并保存到 /sdcard/screenshot.png 
adb shell screencap -p /sdcard/screenshot.png

在这里插入图片描述

  • 2. 将截图拉取到电脑上
# 将截图从设备拉取到电脑上
adb pull /sdcard/screenshot.png .

在这里插入图片描述

  • 3. 捕获设备录屏
# 录制设备屏幕并保存为 /sdcard/video.mp4
adb shell screenrecord /sdcard/video.mp4 

在这里插入图片描述

  • 4. 将录屏拉取到电脑上
# 将录制的视频从设备拉取到电脑上
adb pull /sdcard/video.mp4  .

在这里插入图片描述

5.2 模拟按键输入

  • 1. 模拟按下特定的按键
# 模拟按下特定的按键,如 HOME、BACK、VOLUME_UP 等。
adb shell input keyevent <key_code>

在这里插入图片描述

  • 2. 模拟在屏幕上的特定坐标点击
# 模拟在屏幕上的特定坐标点击
adb shell input tap \<x> \<y> 

在这里插入图片描述

  • 3. 模拟在当前焦点输入文本
# 模拟在当前焦点输入文本
adb shell input text "Hello World"
# 例如当我们焦点处于某文本框时,比如QQ登录界面 

在这里插入图片描述

5.3 文件管理

  • 1. 从设备拉取文件到电脑
# 从设备拉取文件到电脑
adb pull <remote> <local>

在这里插入图片描述

  • 2. 将文件从电脑推送到设备
# 将文件从电脑推送到设备
adb push <local> <remote> 

在这里插入图片描述

  • 3. 在设备上列出目录下的文件
# 在设备上列出 /sdcard 目录下的文件
adb shell ls /sdcard 

在这里插入图片描述

5.4 系统设置管理

  • 1. 获取系统设置的值
# 获取系统设置的值 
adb shell settings get system <setting> 
# 例:
# 获取屏幕亮度的值
adb shell settings get system screen_brightness

在这里插入图片描述

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

在这里插入图片描述

5.5 系统操作指令

  • 1. 获取设备型号
# 获取设备型号
adb shell getprop ro.product.model

在这里插入图片描述

  • 2. 获取安卓系统版本
# 获取Android系统版本
adb shell getprop ro.build.version.release

在这里插入图片描述

  • 3. 获取设备的序列号(设备号)
# 获取设备的序列号(设备号)
adb get-serialno

在这里插入图片描述

  • 4. 获取设备屏幕分辨率
# 获取设备屏幕分辨率
adb shell wm size

在这里插入图片描述

  • 5. 获取前台应用包名
# 查看前台应用包名,必须先启动app,适用于Android 8.0以上
adb shell
dumpsys window | grep mCurrentFocus

在这里插入图片描述

  • 6. 获取手机内存信息
# 获取手机内存信息
adb shell cat /proc/meminfo

在这里插入图片描述

  • 7. 获取手机存储信息
# 获取手机存储信息
adb shell df

在这里插入图片描述

5.6 日志操作指令

  • 1. 清理现有日志
# 清理现有日志
adb shell logcat -c

在这里插入图片描述

  • 2. 输出日志,信息输出在控制台
# 输出日志,信息输出在控制台
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. 列出当前设备/手机,所有的包名
# 列出当前设备/手机,所有的包名
adb shell pm list packages

在这里插入图片描述

  • 2. 显示包和包相关联的文件(安装路径)
# 显示包和包相关联的文件(安装路径)
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. 下载包
# 将本地的apk软件安装到设备(手机)上。如手机外部安装需要密码,记得手机输入密码。
adb install <文件路径\apk>
# 覆盖安装
adb install -r <文件路径\apk>
# 允许降级覆盖安装
adb install -d <文件路径\apk>
# 授权/获取权限,安装软件时把所有权限都打开
adb install -g <文件路径\apk>
  • 4. 卸载包
# 卸载该软件/app
# 注意:安装时安装的是apk,卸载时是包名,可以通过 adb shell pm list packages 查看需要卸载的包名
adb uninstall <包名>
# 虽然把此应用卸载,但仍保存此应用的数据和缓存
adb shell pm uninstall -k <包名>
# 强制退出该应用/app
adb shell am force-stop <包名>

5.8 设备重启和恢复

  • 1. 重启设备
# 重启设备
adb reboot 

在这里插入图片描述

  • 2. 以recovery模式重启设备
# 以 recovery 模式重启设备
adb reboot recovery 

在这里插入图片描述

  • 3. 以bootloader模式重启设备
# 以 bootloader 模式重启设备
adb reboot bootloader  

在这里插入图片描述

六、小结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/9901.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Edu邮箱申请一年免费的.me域名

所需材料&#xff1a;公立Edu教育邮箱一枚&#xff08;P.S&#xff1a;该服务不支持所有的Edu教育邮箱&#xff0c;仅支持比较知名的院校&#xff09; 说到域名&#xff0c;.me这个后缀可谓是个性十足&#xff0c;适合个人网站、博客等。.me是黑山的国家顶级域名&#xff08;c…

7.抽象工厂(Abstract Factory)

抽象工厂与工厂方法极其类似&#xff0c;都是绕开new的&#xff0c;但是有些许不同。 动机 在软件系统中&#xff0c;经常面临着“一系列相互依赖的对象”的创建工作&#xff1b;同时&#xff0c;由于需求的变化&#xff0c;往往存在更多系列对象的创建工作。 假设案例 假设…

Visual Studio使用GitHub Copilot提高.NET开发工作效率

GitHub Copilot介绍 GitHub Copilot 是一款 AI 编码助手&#xff0c;可帮助你更快、更省力地编写代码&#xff0c;从而将更多精力集中在问题解决和协作上。 GitHub Copilot Free包含哪些功能&#xff1f; 每月 2000 代码补全&#xff0c;帮助开发者快速完成代码编写。 每月 …

[JavaWeb]搜索表单区域

一.注意事项 设置外边距:margin:(参数可省去部分)上 下 左 右 二.源代码 <!DOCTYPE html> <html lang"zh-CN"> <head> <meta charset"UTF-8"> <title>Tlias智能学习辅助系统</title> <style> /* 导航栏样…

NLP自然语言处理通识

目录 ELMO 一、ELMo的核心设计理念 1. 静态词向量的局限性 2. 动态上下文嵌入的核心思想 3. 层次化特征提取 二、ELMo的模型结构与技术逻辑 1. 双向语言模型&#xff08;BiLM&#xff09; 2. 多层LSTM的层次化表示 三、ELMo的运行过程 1. 预训练阶段 2. 下游任务微调 四、ELMo的…

Eureka 服务注册和服务发现的使用

1. 父子工程的搭建 首先创建一个 Maven 项目&#xff0c;删除 src &#xff0c;只保留 pom.xml 然后来进行 pom.xml 的相关配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xs…

OpenCV:二值化与自适应阈值

目录 简述 1. 什么是二值化 2. 二值化接口 2.1 参数说明​​​​​ 2.2 示例代码 2.3 运行结果 3. 自适应阈值 3.1 参数说明 3.2 示例代码 3.3 运行结果 4. 总结 4.1 二值化 4.2 自适应阈值 相关阅读 OpenCV&#xff1a;图像的腐蚀与膨胀-CSDN博客 简述 图像二值…

Java面试题2025-设计模式

1.说一下开发中需要遵守的设计原则&#xff1f; 设计模式中主要有六大设计原则&#xff0c;简称为SOLID &#xff0c;是由于各个原则的首字母简称合并的来(两个L算一个,solid 稳定的)&#xff0c;六大设计原则分别如下&#xff1a; 1、单一职责原则 单一职责原则的定义描述非…

Win11下帝国时代2无法启动解决方法

鼠标右键点图标&#xff0c;选择属性 点开始&#xff0c;输入启用和关闭

JAVA实战开源项目:在线文档管理系统(Vue+SpringBoot) 附源码

本文项目编号 T 038 &#xff0c;文末自助获取源码 \color{red}{T038&#xff0c;文末自助获取源码} T038&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

Python设计模式 - 组合模式

定义 组合模式&#xff08;Composite Pattern&#xff09; 是一种结构型设计模式&#xff0c;主要意图是将对象组织成树形结构以表示"部分-整体"的层次结构。这种模式能够使客户端统一对待单个对象和组合对象&#xff0c;从而简化了客户端代码。 组合模式有透明组合…

算法每日双题精讲 —— 前缀和(【模板】一维前缀和,【模板】二维前缀和)

在算法竞赛与日常编程中&#xff0c;前缀和是一种极为实用的预处理技巧&#xff0c;能显著提升处理区间和问题的效率。今天&#xff0c;我们就来深入剖析一维前缀和与二维前缀和这两个经典模板。 一、【模板】一维前缀和 题目描述 给定一个长度为 n n n 的整数数组 a a a&…

VLLM性能调优

1. 抢占 显存不够的时候&#xff0c;某些request会被抢占。其KV cache被清除&#xff0c;腾退给其他request&#xff0c;下次调度到它&#xff0c;重新计算KV cache。 报这条消息&#xff0c;说明已被抢占&#xff1a; WARNING 05-09 00:49:33 scheduler.py:1057 Sequence gr…

知识管理系统塑造企业文化与学习型组织的变革之路

内容概要 知识管理系统&#xff08;Knowledge Management System, KMS&#xff09;是指组织内部为有效获取、存储、共享和应用知识而建立的结构和技术体系。这一系统不仅是信息技术的运用&#xff0c;更是推动企业文化和学习型组织发展的重要工具。在当今快速变化的商业环境中…

智能汽车网络安全威胁报告

近年来随着智能汽车技术的快速发展&#xff0c;针对智能汽车的攻击也逐渐从传统的针对单一车辆控制器的攻击转变为针对整车智能化服务的攻击&#xff0c;包括但不限于对远程控制应用程序的操控、云服务的渗透、智能座舱系统的破解以及对第三方应用和智能服务的攻击。随着WP.29 …

Python练习(2)

今日题单 吃鱼还是吃肉 PTA | 程序设计类实验辅助教学平台 降价提醒机器人PTA | 程序设计类实验辅助教学平台 幸运彩票 PTA | 程序设计类实验辅助教学平台 猜帽子游戏 PTA | 程序设计类实验辅助教学平台 谁管谁叫爹 PTA | 程序设计类实验辅助教学平台 就不告诉你 PTA | 程…

Ubuntu-手动安装 SBT

文章目录 前言Ubuntu-手动安装 SBT1. SBT是什么?1.1. SBT 的特点1.2. SBT 的基本功能1.3. SBT 的常用命令 2. 安装2.1. 下载2.2. 解压 sbt 二进制包2.3. 确认 sbt 可执行文件的位置2.4. 设置执行权限2.5. 创建符号链接2.6. 更新 PATH 环境变量2.7. 验证 sbt 安装 前言 如果您觉…

240. 搜索二维矩阵||

参考题解&#xff1a;https://leetcode.cn/problems/search-a-2d-matrix-ii/solutions/2361487/240-sou-suo-er-wei-ju-zhen-iitan-xin-qin-7mtf 将矩阵旋转45度&#xff0c;可以看作一个二叉搜索树。 假设以左下角元素为根结点&#xff0c; 当target比root大的时候&#xff…

Golang笔记——常用库context和runtime

大家好&#xff0c;这里是Good Note&#xff0c;关注 公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍Golang的常用库context和runtime&#xff0c;包括库的基本概念和基本函数的使用等。 文章目录 contextcontext 包的基本概念主要类型和函数1. **…

Leetcode:350

1&#xff0c;题目 2&#xff0c;思路 首先判断那个短为什么呢因为我们用短的数组去挨个点名长的数组主要用map装长的数组max判断map里面有几个min数组的元素&#xff0c;list保存交集最后用数组返回list的内容 3&#xff0c;代码 import java.util.*;public class Leetcode…