Android Debug Bridge(ADB)完全指南
文章目录
- 前言
- 一、什么是ADB?
- 二、ADB的工作原理
- ADB由三个部分组成:
- 三、如何安装ADB
- Windows系统:
- macOS和Linux系统:
- 四、ADB常用指令大全
- 设备相关操作
- 1. 查看连接的设备:
- 2. 重启设备:
- 3. 进入Bootloader模式:
- 4. 进入恢复模式(Recovery):
- 5. 查看设备运行状态:
- 6. 获取设备的序列号:
- 7. 查看设备的属性:
- 文件传输操作
- 1. 推送文件到设备:
- 2. 从设备拉取文件:
- 3. 查看设备文件系统:
- 应用管理操作
- 1. 安装APK文件:
- 2. 卸载应用:
- 3. 列出已安装的应用:
- 4. 清除应用数据:
- 系统操作和设置
- 1. 进入设备Shell:
- 2. 抓取设备当前屏幕截图:
- 3. 录制设备屏幕:
- 4. 查看电池状态:
- 网络操作
- 1. 通过Wi-Fi连接设备:
- 1.通过USB连接设备,并执行以下命令查看设备IP:
- 2.断开USB,开启Wi-Fi调试:
- 2. 断开Wi-Fi调试:
- 开发调试操作
- 1. 启动特定Activity:
- 2. 停止特定应用:
- 3. 查看设备内存使用情况:
- 高级开发操作(刷机、Bootloader等)
- 1. 进入Fastboot模式:
- 2. 解锁Bootloader:
- 3. 锁定Bootloader:
- 4. 刷入系统镜像:
- 5. 重启设备:
- 五、ADB的更多用途
- 六、常见问题与解决方案
- 1.设备未识别:
- 2.ADB权限不足:
- 3.ADB无法连接Wi-Fi设备:
- 七、总结
前言
ADB(Android Debug Bridge)是Android SDK中的一款非常重要的命令行工具。通过它,开发者可以与Android设备进行交互,调试应用、管理文件,甚至执行一些系统操作如刷机和设备恢复。无论是开发者还是高级用户,掌握ADB指令都是非常有帮助的。本篇文章将详细介绍ADB的安装、使用及常用命令,并提供一些实用的应用场景和示例。
一、什么是ADB?
ADB,全称为 Android Debug Bridge,是Android SDK中的一个命令行工具,主要用于开发者和高级用户与Android设备交互。它可以通过USB连接或者无线网络连接设备,帮助开发者调试应用、控制设备、传输数据、执行命令和操作系统等。开发者可以使用ADB执行诸如安装/卸载应用、重启设备、访问设备的文件系统等任务。
二、ADB的工作原理
ADB由三个部分组成:
• 客户端(Client):你输入命令的地方,通常是命令行终端。
• 守护程序(Daemon):在Android设备上运行的后台进程,负责执行ADB命令。
• 服务器(Server):协调客户端和守护程序之间的通信。
当你在电脑的终端输入ADB命令时,客户端将命令发送给服务器,服务器再与设备上的守护程序通信以执行命令。
三、如何安装ADB
Windows系统:
1. 下载ADB工具包:(https://dl.google.com/android/repository/platform-tools-latest-windows.zip)。
2. 解压工具包到某个路径。
3. 打开系统环境变量设置,将解压路径添加到系统路径变量中。
4. 在命令提示符输入 adb 进行验证,成功显示ADB命令帮助信息即安装成功。
macOS和Linux系统:
1. 下载ADB工具包:(https://dl.google.com/android/repository/platform-tools-latest-darwin.zip)(https://dl.google.com/android/repository/platform-tools-latest-linux.zip)。
2. 解压后,打开终端并进入解压路径。
3. 在终端输入:
./adb
这会输出ADB的帮助信息,表示安装成功。
4. (可选)将ADB路径添加到环境变量中,以便于在任意路径下都能使用ADB命令。
四、ADB常用指令大全
设备相关操作
1. 查看连接的设备:
adb devices
显示所有通过USB或者Wi-Fi连接的Android设备。
2. 重启设备:
adb reboot
使设备重启。
3. 进入Bootloader模式:
adb reboot bootloader
使设备进入Bootloader模式,用于解锁Bootloader或者刷机。
4. 进入恢复模式(Recovery):
adb reboot recovery
使设备进入恢复模式,常用于恢复系统或者安装自定义ROM。
5. 查看设备运行状态:
adb get-state
输出设备的当前状态(如device、recovery等)。
6. 获取设备的序列号:
adb get-serialno
显示设备的序列号。
7. 查看设备的属性:
adb shell getprop
例如,查看系统版本:
adb shell getprop ro.build.version.release
文件传输操作
1. 推送文件到设备:
adb push <本地文件路径> <设备目标路径>
例如:
adb push myfile.txt /sdcard/
2. 从设备拉取文件:
adb pull <设备文件路径> <本地保存路径>
例如:
adb pull /sdcard/myfile.txt ~/Downloads/
3. 查看设备文件系统:
adb shell ls /sdcard/
应用管理操作
1. 安装APK文件:
adb install <APK文件路径>
例如:
adb install myapp.apk
2. 卸载应用:
adb uninstall <应用包名>
例如:
adb uninstall com.example.myapp
3. 列出已安装的应用:
adb shell pm list packages
4. 清除应用数据:
adb shell pm clear <应用包名>
系统操作和设置
1. 进入设备Shell:
adb shell
可以执行Shell命令,例如ls、cd等。
2. 抓取设备当前屏幕截图:
adb shell screencap /sdcard/screenshot.png
adb pull /sdcard/screenshot.png
3. 录制设备屏幕:
adb shell screenrecord /sdcard/screen.mp4
adb pull /sdcard/screen.mp4
4. 查看电池状态:
adb shell dumpsys battery
网络操作
1. 通过Wi-Fi连接设备:
1.通过USB连接设备,并执行以下命令查看设备IP:
adb shell ip addr show wlan0
2.断开USB,开启Wi-Fi调试:
adb tcpip 5555
adb connect <设备IP>:5555
2. 断开Wi-Fi调试:
adb disconnect <设备IP>:5555
开发调试操作
1. 启动特定Activity:
adb shell am start -n <包名>/<Activity类名>
例如:
adb shell am start -n com.example/.MainActivity
2. 停止特定应用:
adb shell am force-stop <包名>
3. 查看设备内存使用情况:
adb shell dumpsys meminfo
高级开发操作(刷机、Bootloader等)
1. 进入Fastboot模式:
adb reboot bootloader
2. 解锁Bootloader:
fastboot oem unlock
3. 锁定Bootloader:
fastboot oem lock
4. 刷入系统镜像:
fastboot flash system system.img
5. 重启设备:
fastboot reboot
五、ADB的更多用途
ADB除了应用管理、文件传输等常见任务,还能用于:
• 开发人员调试和性能优化:通过adb logcat查看日志,实时调试应用。
• 刷机和设备恢复:通过Fastboot模式刷入自定义ROM或恢复原厂ROM。
• 脚本自动化:可以编写脚本通过ADB自动化执行一系列的操作。
• 多设备管理:支持同时连接多个设备,并通过设备序列号区分不同设备。
六、常见问题与解决方案
1.设备未识别:
• 检查是否启用开发者选项和USB调试。
• 更新ADB驱动程序。
2.ADB权限不足:
• 使用adb root获取设备的root权限(需要设备已Root)。
3.ADB无法连接Wi-Fi设备:
• 确保设备与电脑在同一个网络中。
• 确认设备的IP地址正确。
七、总结
ADB 是Android开发和管理过程中必不可少的工具,它不仅能帮助开发者调试应用,还可以用于设备的管理和自动化任务。无论是应用的安装、系统的调试,还是高级的设备刷机操作,ADB都提供了强大的功能。通过掌握ADB的各种指令,开发者和用户可以更高效地管理和控制Android设备。
相关文章:
Android Debug Bridge(ADB)完全指南
文章目录 前言一、什么是ADB?二、ADB的工作原理ADB由三个部分组成: 三、如何安装ADBWindows系统:macOS和Linux系统: 四、ADB常用指令大全设备相关操作1. 查看连接的设备:2. 重启设备:3. 进入Bootloader模式…...
再次重逢,愿遍地繁花
再次重逢,愿遍地繁花 我并不是一个对最终幻想7很热衷的粉丝,也并没有像那些评论区的大佬,能够轻易地说出整部世界的全貌。说到底,我只是一个看完了《最终幻想7:重制版》和《最终幻想7:重生》的爱好者罢了。…...
数据结构和算法基础(一)
文章目录 链表反转链表合并删除链表倒数第 n 个结点找链表的中间结点链表中环的检测排序算法递归 趁空闲时间刷一遍极客时间上王争的《数据结构与算法之美》课程,个人觉得写的很好,每章节由浅入深且从基础到引入设计类问题,如果写过很多代码想…...
【超长好文】网络安全从业者面试指南
文章为笔者偶然看到的github项目《网络安全面试指南》,作者FeeiCN,读完内容深感作者的用心,尽管一些观点因为时间原因与当下行情存在差异,但仍旧值得大家参考,希望能给大家在这行业寒冬带来一些启发,愿正在…...
基于大数据的高校新生数据可视化分析系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...
【cache】浅析四种常用的缓存淘汰算法 FIFO/LRU/LFU/W-TinyLFU
本文浅析淘汰策略与工作中结合使用、选取,并非针对算法本身如何实现的 文章目录 FIFOLFULRUW-TinyLFU实践与优化监控与调整 FIFO first input first output , 先进先出,即最早存入的元素最先取出, 典型数据结构代表:…...
STM32的DMA技术介绍
DMA(Direct Memory Access,直接内存访问) 是一种允许外设直接与系统内存进行数据传输,而无需经过CPU的技术。在STM32微控制器中,DMA技术极大地提高了数据传输效率,降低了CPU的负担,从而提升系统…...
C++11 多线程编程-小白零基础到手撕线程池
提示:文章 文章目录 前言一、背景二、 2.1 2.2 总结 前言 前期疑问: 本文目标: 一、背景 来源于b站视频 C11 多线程编程-小白零基础到手撕线程池 学习来源:https://www.bilibili.com/video/BV1d841117SH/?p2&spm_id_f…...
智源研究院与百度达成战略合作 共建AI产研协同生态
2024年9月24日,北京智源人工智能研究院(简称“智源研究院”)与北京百度网讯科技有限公司(简称“百度”)正式签署战略合作协议,双方将充分发挥互补优势,在大模型等领域展开深度合作,共…...
Flask-SQLAlchemy:在Flask应用中优雅地操作数据库
在Python的Web开发领域,Flask是一个备受欢迎的轻量级Web框架,它以简洁、灵活而著称。而当我们需要在Flask应用中与数据库进行交互时,Flask-SQLAlchemy就成为了一个强大而便捷的工具。它将Flask的简洁性与SQLAlchemy的强大数据库抽象能力完美结…...
智能巡检机器人 数据库
智能巡检机器人AI智能识别。无需人工。只需后台监控结果即可!...
Spring AOP异步操作实现
在Spring框架中,AOP(面向切面编程)提供了一种非常灵活的方式来增强应用程序的功能。异步操作是现代应用程序中常见的需求,尤其是在处理耗时任务时,它可以帮助我们提高应用程序的响应性和吞吐量。Spring提供了一种简单的…...
【2006.07】UMLS工具——MetaMap原理深度解析
文献:《MetaMap: Mapping Text to the UMLS Metathesaurus》2006 年 7 月 14 日 https://lhncbc.nlm.nih.gov/ii/information/Papers/metamap06.pdf MetaMap:将文本映射到 UMLS 元数据库 总结 解决的问题 自动概念映射问题:解决如何将文本…...
ros2 colcon build 构建后,install中的local_setup.bash 和setup.bash有什么区别
功能概述 在 ROS2 中,colcon build是用于构建软件包的工具。构建完成后会生成install文件夹,其中的setup.bash和local_setup.bash文件都与环境设置相关,但存在一些区别。setup.bash 作用范围 setup.bash文件用于设置整个工作空间的环境变量。…...
Thymeleaf基础语法
Thymeleaf 是一种用于 Web 和非 Web 环境的现代服务器端 Java 模板引擎。它能够处理 HTML、XML、JavaScript、CSS 甚至纯文本。以下是 Thymeleaf 的一些基础语法: 1. 变量表达式 <!-- 显示变量的值 --> <p th:text"${name}">Default Name&l…...
spring cloud alibaba学习路线
以下是一条学习Spring Cloud Alibaba的路线: 一、基础前置知识 1. Java基础 熟练掌握Java语言特性,包括面向对象编程、集合框架、多线程等知识。 2. Spring和Spring Boot基础深入理解Spring框架,如依赖注入(DI)、控…...
基于 Seq2Seq 的中英文翻译项目(pytorch)
项目简介 本项目旨在使用 PyTorch 构建一个基于 Seq2Seq(编码器-解码器架构)的中英文翻译模型。我们将使用双语句子对的数据进行训练,最终实现一个能够将英文句子翻译为中文的模型。项目的主要步骤包括: 数据预处理:从数据集中提取英文和中文句子,并进行初步清洗和保存。…...
部标主动安全(ADAS+DMS)对接说明
1.前言 上一篇介绍了部标(JT/T1078)流媒体对接说明,这里说一下如何对接主动安全附件服务器。 流媒体的对接主要牵扯到4个方面: (1)平台端:业务端系统,包含前端呈现界面。 &#x…...
C++ STL(1)迭代器
文章目录 一、迭代器详解1、迭代器的定义与功能2、迭代器类型3、示例4、迭代器失效4.1、vector 迭代器失效分析4.2、list 迭代器失效分析4.3、set 与 map 迭代器失效分析 5、总结 前言: 在C标准模板库(STL)中,迭代器是一个核心概念…...
uview表单校验不生效问题
最近几次使用发现有时候会不生效,具体还没排查出来什么原因,先记录一下解决使用方法 <u--formlabelPosition"top"labelWidth"auto":model"form":rules"rules"ref"uForm" ><view class"…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10pip3.10) 一:前言二:安装编译依赖二:安装Python3.10三:安装PIP3.10四:安装Paddlepaddle基础框架4.1…...
Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程
鸿蒙电脑版操作系统来了,很多小伙伴想体验鸿蒙电脑版操作系统,可惜,鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机,来体验大家心心念念的鸿蒙系统啦!注意:虚拟…...
