adb使用指南

  • 一、介绍
  • 二、连接
    • 一、有线连接方式
    • 二、无线连接方式
        • **Android 10及以下版本**
        • **Android 11及以上版本**
  • 三、指令
    • 1、设备连接管理
    • 2、应用调试
    • 3、文件传输
    • 4、系统控制
    • 6、日志分析
    • 7、其他
  • 速查表总结
  • python脚本实例:


提示:以下是本篇文章正文内容,,参考下面博客:
程序员–青青

一、介绍

  1. ADB(Android Debug Bridge)是Android官方提供的多功能命令行工具,主要用于连接计算机与Android设备(包括模拟器和真机),实现设备调试与管理。其核心功能包括:设备连接管理(通过USB或Wi-Fi建立通信并查看设备状态);应用调试(安装/卸载APK、启动Activity、捕获崩溃日志);文件传输(通过push/pull命令在设备与电脑间传输文件);日志分析(实时查看logcat日志或过滤特定错误);系统控制(重启设备、进入Recovery模式、模拟用户输入如点击或文本输入);以及高级功能如端口转发、屏幕录制、性能监控(CPU/内存数据)等。
  2. 连接:
    可以通过模拟器连接,也可以通过数据线连接,通过数据线连接时,手机进入“开发者选项”,打开“usb调试”。
    不同品牌安卓机型,首次打开“开发者选项”方式不一样,大多是双击手机版本号3~5次,会toast提醒“开发者模式已打开”,具体打开方式可根据手机品牌进行百度查询

二、连接

一、有线连接方式

  1. 基础准备

    • 确保电脑已安装ADB工具(包含在Android SDK的platform-tools中)并配置环境变量。
    • 使用原装或可靠的数据线连接手机与电脑。
  2. 手机端设置

    • 进入手机【设置】→【关于手机】,连续点击【版本号】7次激活开发者模式。
    • 返回设置,开启【开发者选项】→【USB调试】,并在连接时选择【MTP(多媒体传输)】模式。
  3. 验证连接

    • 电脑端执行命令:
      adb devices
      
      若显示设备序列号且状态为device,则连接成功;若为unauthorized,需在手机弹出的授权窗口中点击允许。

二、无线连接方式

Android 10及以下版本
  1. 初始有线配置

    • 先用USB线连接手机和电脑,执行:
      adb tcpip 5555  # 启用TCP/IP模式并指定端口(可自定义)
      
      成功后拔掉数据线。
  2. 获取设备IP

    • 在手机【WLAN设置】中查看IP地址,或执行:
      adb shell ip addr show wlan0  # 查看wlan0接口的IP。
      
  3. 无线连接

    • 电脑端运行:
      adb connect <设备IP>:5555  # 如:adb connect 192.168.1.100:5555
      
      使用adb devices确认连接状态。
Android 11及以上版本
  1. 直接无线配对
    • 手机端开启【开发者选项】→【无线调试】,选择【使用配对码配对】或扫描二维码。
    • 电脑端执行:
      adb pair <IP:配对端口>  # 输入手机显示的6位数配对码
      adb connect <IP:调试端口>  # 连接成功后端口可能与配对端口不同。
      

三、指令

1、设备连接管理

  • 查看adb版本
adb version
  • 查看已连接设备列表
adb devices
  • 无线连接设备
adb connect <IP:端口> 
  • 断开设备连接
adb disconnect
  • 启动服务
adb start_server
  • 终止服务
adb kill-server

2、应用调试

  • 安装apk
adb install <APK路径>
  • 覆盖安装(升级)
adb install -r  <APK路径>
  • 卸载应用
adb uninstall <包名>
  • 列出所有应用
adb shell pm list packages
  • 强制退出该应用
adb shell am force-stop <包名>

3、文件传输

  • 上传到设备
adb push <电脑路径> <设备路径>
  • 下载到电脑
adb pull <设备地址> <电脑路径>
  • 查看文件
adb shell ls /sdcard/

4、系统控制

  • 模拟事件
点击命令:adb shell input tap <x> <y>
长按命令:adb shell PressAndHold  <x> <y> <Duration_time_ms>
滑动命令:adb shell input swipe <x1> <y1> <x2> <y2> <Duration_time_ms>
物理按键:adb shell input keyevent <keycode>常用keycode列表:3:HOME键4:返回键24:音量+25:音量-26:电源键82:菜单键66:回车键67:删除键
文本输入:adb shell input text "要输入的文本"## 5、高级功能
- 屏幕截图
```c
adb shell screencap -p /sdcard/myphoto.png
  • 录屏
adb shell screenrecord --time-limit 录屏时间s <存放路径/xxx.mp4>
  • 帮助
adb help
  • 管理员权限
adb root
  • shell命令(输入以下命令即可使用linux命令,退出使用exit)
adb shell 
  • 查看已连接设备列表
adb devices

6、日志分析

adb shell logcat -c:清理现有日志
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日志拉取出来:adb shell pull /data/anr/traces.txt <存放路径>

7、其他

  • 获取设备型号
adb shell getprop ro.product.model
  • 获取Android系统版本
adb shell getprop ro.build.version.release
  • 获取设备的序列号(设备号)
adb get-serialno
  • 获取设备屏幕分辨率
adb shell wm size
  • 获取手机内存信息
adb shell cat /proc/meminfo
  • 获取手机存储信息
adb shell df

速查表总结

分类命令/操作说明注意事项
设备连接管理adb devices查看已连接设备列表,状态为device表示授权成功若显示unauthorized,需在设备端点击授权弹窗
adb connect <IP:端口>无线连接设备(默认端口5555)Android 11+需先通过adb pair配对
adb kill-server / adb start-server重启ADB服务,解决连接异常可能需管理员权限
应用调试adb install -r <APK路径>覆盖安装应用(升级)若失败可尝试-d强制安装
adb shell pm list packages -3仅列出用户安装的应用需USB调试授权
adb shell am force-stop <包名>强制停止应用可能影响后台服务
文件传输adb push <本地路径> <设备路径>上传文件到设备(如/sdcard/部分系统路径需root权限
adb pull <设备路径> <本地路径>下载文件到电脑路径需存在且可读
系统控制adb shell input tap <x> <y>模拟点击屏幕坐标坐标需根据设备分辨率调整
adb shell input keyevent 3模拟物理按键(如3=HOME键)键值表需参考官方文档
高级功能adb shell screencap -p /sdcard/screen.png截图并保存到设备需设备存储权限
adb shell screenrecord --time-limit 10 /sdcard/demo.mp4录屏(默认3分钟,可设时长)部分设备不支持高比特率录制
日志分析adb logcat -v time *:E > error.log记录带时间戳的错误日志到文件可结合grep过滤关键词
设备信息查询adb shell getprop ro.product.model获取设备型号部分属性可能因厂商定制不同
adb shell dumpsys battery查看电池状态(如电量、充电方式)需设备支持

python脚本实例:

import os
import timedef click(x,y):os.system(f"adb shell input tap {x} {y}")def swipe(x1,y1,x2,y2,duration):os.system(f"adb shell input swipe {x1} {y1} {x2} {y2} {duration}")def screen_photo(name):os.system(f'adb shell screencap -p /sdcard/{name}.png')os.system(f'adb pull /sdcard/{name}.png')if __name__=='__main__':while True:swipe(138,1272,668,0,100)time.sleep(0.01)click(678,1070)screen_photo('test')

声明:
本文为本人的学习笔记,旨在记录和分享个人在学习过程中的心得体会和原创代码。由于本人刚入门,对相关知识的理解可能还存在不足之处,文章中难免会有错误或不准确的地方。在此,我诚挚地欢迎各位读者在阅读过程中,如果发现任何问题或有其他建议,随时在评论区或通过其他方式与我交流。我将虚心听取大家的意见,及时修正和改进文章内容,以便更好地学习和成长。感谢大家的关注和支持!


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

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

相关文章

C语言实战:二级指针与文件操作的完美邂逅——动态管理文件数据

资料合集下载链接: ​https://pan.quark.cn/s/472bbdfcd014​ 在上一篇文章中,我们探讨了二级指针作为函数“输出特性”的强大功能。今天,我们将更进一步,通过一个完整的实战项目,将二级指针与文件I/O操作结合起来,学习如何动态、高效地读取和管理文件内容。 这个项目…

低代码开发实战案例,如何通过表单配置实现数据输入、数据存储和数据展示?

JVS低代码轻应用快速开发采用所见即所得的配置思路&#xff0c;表单是低代码中最基础的业务配置引擎之一&#xff0c;快速的通过表单配置实现数据输入、数据存储&#xff0c;数据展示。那么在轻应用下直接点开菜单打开的表单&#xff0c;录入数据提交到数据模型&#xff0c;后续…

数字孪生系统让汽车工厂虚实联动预测维护少停机

在汽车制造行业&#xff0c;设备突发停机往往会引发连锁反应&#xff0c;导致生产中断、成本飙升。传统运维模式依赖人工巡检与事后维修&#xff0c;难以应对复杂生产场景下的设备管理需求。如今&#xff0c;数字孪生系统凭借虚实联动的核心能力&#xff0c;为汽车工厂打造预测…

iceberg1.2.0 修改表与覆盖写

版本iceberg 1.2.0修改表只支持HiveCatalog表修改表属性&#xff0c;Iceberg表属性和Hive表属性存储在HMS中是同步的修改外部表删表时是否删除数据的表属性&#xff0c;这里是修改为删除表时不删除数据alter table iceberg_test1 set TBLPROPERTIES(external.table.purgeFALSE)…

Mini-Omni: Language Models Can Hear, Talk While Thinking in Streaming

2024.8tsinghuamethodwhisper encoder: whisper smallLLM Qwen0.5b init预测方式&#xff1a;text 7*audio token&#xff0c; parallel generation的方式预测&#xff0c;delay-step1----先预测文本token&#xff0c;再预测SNAC 第一级码本&#xff0c;然后序列化的逐渐预测后…

【MATLAB例程】基于UKF的IMM例程,模型使用CA(匀加速)和CT(协调转弯)双模型,二维环境下的轨迹定位。附代码下载链接

本文介绍的MATLAB程序可以实现&#xff1a;基于交互式多模型&#xff08;IMM&#xff09;的无迹卡尔曼滤波&#xff08;UKF&#xff09;方法&#xff0c;用于二维平面中目标的运动状态估计。该算法结合了两个运动模型&#xff1a;匀速直线模型&#xff08;CV&#xff09;和匀速…

工厂智慧设备检测:多模态算法提升工业安全阈值

工厂智慧设备检测&#xff1a;从技术突破到场景化落地在工业4.0与智能制造的双重驱动下&#xff0c;工厂设备检测正经历从人工巡检到智能化监控的颠覆性变革。传统检测方式受限于人力成本、环境干扰及响应延迟&#xff0c;难以满足现代工厂对安全性、效率与可持续性的要求。而基…

复现论文《地形遮挡对GNSS干扰范围影响的高效仿真算法》

地形遮挡对GNSS干扰范围影响的高效仿真算法 1. 论文标题 论文标题为《地形遮挡对GNSS干扰范围影响的高效仿真算法》 2. 内容概括 该论文提出了一种高效计算地形遮挡对全球导航卫星系统(GNSS)干扰源干扰范围影响的新算法。传统基于视线可视域分析的方法存在大量冗余计算,本…

图论(2)算法之拓扑排序介绍

目录 一、什么是拓扑排序&#xff1f; 二、拓扑排序的算法实现 1 BFS算法实现 &#xff08;1&#xff09;算法思路 &#xff08;2&#xff09; 代码实现&#xff08;Java&#xff09; 2 DFS算法实现 &#xff08;1&#xff09;算法思路 &#xff08;2&#xff09; 代码实…

GoBy 工具联动 | GoBy AWVS 自动化漏扫工作流

GoBy 系统笔记导航 &#x1f680;&#xff1a;[网安工具] Web 漏洞扫描工具 —— GoBy 使用手册 AWVS 系统笔记导航 &#x1f680;&#xff1a;[网安工具] Web 漏洞扫描工具 —— AWVS 使用手册 0x01&#xff1a;GoBy AWVS —— 联动扫描简介 AWVS 是一款由 Acunetix 公司开…

《汇编语言:基于X86处理器》第13章 高级语言接口(1)

与C、c&#xff0c;Java等高级语言相比&#xff0c;汇编开发的效率偏低和维护成本偏高。大型的项目已经很少用汇编语言了&#xff0c;但并不是说汇编语言就完全没有用处了&#xff0c;在某些特定的领域&#xff0c;汇编语言还是很有用处的&#xff0c;比如配置硬件驱动器&#…

JVM基础【Java】

JVM基础 JVM&#xff1a;Java Virtual Machine(Java虚拟机&#xff09; 1.Java文件的执行流程 首先认识Java文件的运行规则对字节码文件进行解释成机器码&#xff0c;让计算机执行内存管理 自动为对象、方法等分配内存自动垃圾回收机制&#xff0c;回收不再使用的对象 即时编译…

ISL9V3040D3ST-F085C一款安森美 ON生产的汽车点火IGBT模块,绝缘栅双极型晶体管ISL9V3040D3ST汽车点火电路中的线圈驱动器

ISL9V3040D3ST-F085C 是一款 安森美 &#xff08;ON&#xff09;生产的汽车点火 IGBT模块&#xff08;绝缘栅双极型晶体管&#xff09;&#xff0c;主要用于汽车点火电路中的线圈驱动器&#xff0c;具有内部二极管电压箝位功能&#xff0c;可减少外部组件需求。‌ 核心用途 该…

用Python实现Excel转PDF并去除Spire.XLS水印

最近业务需要&#xff0c;成功用Python原生代码实现了原本需要付费的Spire.XLS库的Excel转PDF功能&#xff0c;并彻底去除了转换后PDF中的评估水印"Evaluation Warning: The document was created with Spire.XLS for Python"。该解决方案完全开源免费&#xff0c;不…

论文学习22:UNETR: Transformers for 3D Medical Image Segmentation

代码来源 unetr 模块作用 具有收缩和扩展路径的全卷积神经网络 (FCNN) 在大多数医学图像分割应用中表现出色&#xff0c;但卷积层的局部性限制了其学习长距离空间依赖性的能力。受 Transformer 在自然语言处理 (NLP) 领域近期在长距离序列学习方面取得的成功的启发&#xff…

Jmeter使用第一节-认识面板(Mac版)

常用的基础元件&#xff08;10个&#xff09;1、测试计划&#xff1a;总体项目容器&#xff0c;其他元件需要建立在这个目录下面2、线程组&#xff1a;可以设置线程数、循环次数等参数来模拟用户行为。一个用户可用于接口测试&#xff0c;多个用户则可用于性能压测。“线程数”…

微软披露Exchange Server漏洞:攻击者可静默获取混合部署环境云访问权限

微软近日发布安全公告&#xff0c;披露一个影响本地版Exchange Server的高危漏洞&#xff08;编号CVE-2025-53786&#xff0c;CVSS评分为8.0&#xff09;。该漏洞在特定条件下可能允许攻击者提升权限&#xff0c;Outsider Security公司的Dirk-jan Mollema因报告此漏洞获得致谢。…

大模型中的反向传播是什么

反向传播&#xff08;Backpropagation&#xff09;是大模型&#xff08;如GPT、BERT等&#xff09;训练过程中的核心算法&#xff0c;用于高效计算损失函数对神经网络中所有参数的梯度。这些梯度随后被用于优化器&#xff08;如Adam&#xff09;更新参数&#xff0c;使模型逐渐…

数集相等定义凸显解析几何几百年重大错误:将无穷多各异点集误为同一集

数集相等定义凸显解析几何几百年重大错误&#xff1a;将无穷多各异点集误为同一集 黄小宁 本文据中学生就应熟悉的数集相等概念推翻了直线公理和平面公理表明“举世公认”不能是检验真理的唯一标准。“真理往往在少数人手里”。 请看图片举世公认&#xff1a;因数学是严密精确的…

container_of函数使用

用于根据结构体成员的地址反推整个结构体地址的宏定义。其核心作用是通过成员变量地址定位到其所属的结构体实例。struct panel_tm145{struct drm_panel base;}static inline struct panel_tm145 * to_panel_tm145(struct drm_panel *panel){return container_of(panel, struct…