当前位置: 首页 > news >正文

【Android】ADB 使用指南

ADB 使用指南

Android Debug Bridge (ADB) 是一个功能强大的命令行工具,可以让你直接与连接的 Android 设备进行通信。它可以用于多种用途,包括安装和调试应用程序、传输文件、执行命令等。本指南将介绍 ADB 的基本使用方法和常用命令。

安装 ADB

在 Windows 上安装

  1. 下载 ADB 工具

    • 下载 SDK Platform Tools 并解压。
  2. 设置环境变量

    • 将解压后的文件夹路径添加到系统的 PATH 环境变量中。

在 macOS 上安装

  1. 使用 Homebrew 安装
    brew install android-platform-tools
    

在 Linux 上安装

  1. 使用包管理器安装
    sudo apt-get install android-tools-adb
    

连接设备

通过 USB 连接

  1. 启用开发者模式

    • 在设备上,进入“设置” -> “关于手机” -> 连续点击“版本号”7次,直到看到“您现在是开发者”提示。
  2. 启用 USB 调试

    • 在“设置” -> “开发者选项”中启用“USB 调试”。
  3. 连接设备

    • 通过 USB 连接设备到计算机。
  4. 验证连接

    • 在终端中输入以下命令:
      adb devices
      
    • 如果设备成功连接,你会看到设备的序列号。

通过 Wi-Fi 连接

  1. 连接设备到 Wi-Fi

    • 确保设备和计算机连接到同一个 Wi-Fi 网络。
  2. 连接设备到计算机(初次连接需要通过 USB)

    adb tcpip 5555
    adb connect <设备IP>:5555
    
  3. 验证连接

    • 在终端中输入以下命令:
      adb devices
      
    • 如果设备成功连接,你会看到设备的序列号。

常用命令

查看连接的设备

adb devices

安装 APK

adb install <apk文件路径>

卸载应用

adb uninstall <包名>

推送文件到设备

adb push <本地文件路径> <设备目标路径>

从设备拉取文件

adb pull <设备文件路径> <本地目标路径>

进入设备的 shell

adb shell

重启设备

adb reboot

截屏

adb shell screencap -p /sdcard/screenshot.png
adb pull /sdcard/screenshot.png <本地路径>

录屏

adb shell screenrecord /sdcard/screenrecord.mp4
adb pull /sdcard/screenrecord.mp4 <本地路径>

查看设备日志

adb logcat

清除应用数据

adb shell pm clear <包名>

获取设备信息

adb shell getprop

进阶使用

通过 adb 端口转发

本地端口转发到设备
adb forward tcp:<本地端口> tcp:<设备端口>
反向端口转发(设备端口转发到本地)
adb reverse tcp:<本地端口> tcp:<设备端口>

在设备上启动 Activity

adb shell am start -n <包名>/<Activity名>

调试 Android 应用

  • 通过 ADB,你可以将 Android Studio 连接到设备进行应用调试。

监控设备电池状态

adb shell dumpsys battery

总结

ADB 是 Android 开发和调试中不可或缺的工具。通过本指南,你可以掌握 ADB 的基本操作,并在日常开发中提高效率。充分利用 ADB 的各种命令,可以让你更好地管理和调试 Android 设备。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 第一节 网络安全概述
  • Linux搭建Socks5网络代理服务器,Centos 8 系统
  • Python实战,桌面小游戏,剪刀石头布
  • 【SVN的使用-源代码管理工具-命令行的使用 Objective-C语言】
  • 数据结构排序算法(图示突然传不上来,后面再更新)
  • IT之家最新科技热点 | 小米 AI 研究院开创多模态通用模型
  • 数字化精益生产系统--QMS质量管理系统
  • Python爬虫获取视频
  • git 禁止dev合并到任何其他分支
  • Linux|信号
  • python函数和c的区别有哪些
  • C++下Protobuf学习
  • 基于Maximin的异常检测方法(MATLAB)
  • AI编程探索- iOS 实现类似苹果地图 App 中的半屏拉起效果
  • hive表小练习
  • ES6指北【2】—— 箭头函数
  • Angular 2 DI - IoC DI - 1
  • crontab执行失败的多种原因
  • CSS3 变换
  • CSS中外联样式表代表的含义
  • Java IO学习笔记一
  • Leetcode 27 Remove Element
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • 安卓应用性能调试和优化经验分享
  • 大主子表关联的性能优化方法
  • 普通函数和构造函数的区别
  • 如何优雅地使用 Sublime Text
  • 少走弯路,给Java 1~5 年程序员的建议
  • 算法-插入排序
  • 温故知新之javascript面向对象
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 一个项目push到多个远程Git仓库
  • 函数计算新功能-----支持C#函数
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • #QT(一种朴素的计算器实现方法)
  • (1)bark-ml
  • (11)MSP430F5529 定时器B
  • (4)事件处理——(7)简单事件(Simple events)
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (规划)24届春招和25届暑假实习路线准备规划
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (七)Knockout 创建自定义绑定
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (转)c++ std::pair 与 std::make
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .Net Core 笔试1
  • .net 获取url的方法
  • .net反混淆脱壳工具de4dot的使用
  • .Net小白的大学四年,内含面经
  • // an array of int
  • [ linux ] linux 命令英文全称及解释
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [1127]图形打印 sdutOJ