Linux如何用ADB调试Android设备?

Linux安装ADB

  1. 通用安装方法

    sudo apt update && sudo apt install android-tools-adb android-tools-fastboot  # Ubuntu/Debian
    sudo dnf install android-tools  # Fedora
    sudo pacman -S android-tools    # Arch/Manjaro
  2. 验证安装

    adb --version  # 输出版本信息即成功(如:Android Debug Bridge version 1.0.41)

设备连接与授权

  1. 开启USB调试

    • 进入设备设置 → 关于手机 → 连点「版本号」启用开发者模式。
    • 返回设置 → 开发者选项 → 启用「USB调试」。
  2. 连接设备

    adb devices  # 查看设备列表
    • 若显示unauthorized,在设备弹窗点击「允许USB调试」。
  3. 无线调试(无需USB线)

    adb tcpip 5555       # 设备USB连接时开启无线端口
    adb connect 192.168.x.x:5555  # 通过IP连接设备

常用ADB命令详解

场景 命令 作用
应用管理 adb install ~/app.apk 安装应用
adb uninstall com.example.app 卸载应用(需包名)
文件传输 adb push local.txt /sdcard/ 电脑文件推送到设备
adb pull /sdcard/photo.jpg ~/Downloads/ 从设备提取文件到电脑
设备操作 adb reboot 重启设备
adb shell input keyevent 26 模拟电源键(26为键值码)
日志调试 adb logcat 实时查看系统日志
adb logcat -v time > log.txt 保存带时间戳的日志到文件
Shell交互 adb shell 进入设备终端
adb shell pm list packages 列出所有已安装应用包名

高级调试技巧

  1. 屏幕截图与录屏

    adb exec-out screencap -p > screen.png  # 截图保存到当前目录
    adb shell screenrecord /sdcard/demo.mp4 # 录屏(Ctrl+C停止)
  2. 应用数据备份与恢复

    adb backup -f backup.ab com.example.app  # 备份应用数据
    adb restore backup.ab                    # 恢复备份
  3. 端口转发

    adb forward tcp:8080 tcp:8080  # 将设备8080端口映射到电脑

故障排除

  • 设备未识别

    1. 检查lsusb确认设备连接,创建规则文件:
      echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666"' | sudo tee /etc/udev/rules.d/51-android.rules
      sudo udevadm control --reload-rules
    2. 重启ADB服务:adb kill-server && adb start-server
  • 命令无响应
    重新插拔USB线或切换连接模式(文件传输/充电)。


安全注意事项

  1. 仅连接可信设备,避免恶意软件通过ADB获取权限。
  2. 生产环境中关闭USB调试,减少攻击面。
  3. 敏感操作(如adb root)需设备已解锁Bootloader。

权威参考来源

  • Android开发者文档:ADB命令大全
  • Google官方Android调试指南
  • Linux设备规则配置:Android Open Source Project

通过掌握这些核心操作,开发者可高效管理Android设备,建议结合官方文档实践进阶功能,如无线调试或自动化脚本。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5801.html

(0)
酷番叔酷番叔
上一篇 2025年6月28日 03:10
下一篇 2025年6月28日 03:55

相关推荐

  • Java如何获取AIX命令结果

    方法1:使用 Runtime.exec()import java.io.BufferedReader;import java.io.InputStreamReader;public class AixCommandExecutor { public static void main(String[] args……

    2025年7月17日
    2400
  • 宏命令如何提升效率

    宏命令本质是将一系列操作封装为单一可执行对象,实现操作序列的抽象化、复用与解耦,通过对象化调用统一执行接口。

    2025年7月8日
    2800
  • 复制命令与输出内容有何区别?

    复制命令是复制指令文本本身(如命令行代码),而复制输出是复制指令执行后生成的结果内容(如屏幕显示的数据),两者本质区别在于操作对象是命令还是命令产生的信息。

    2025年6月24日
    3600
  • 外部参照为何是设计利器?

    外部参照(Xref)的核心是将其他图形文件作为参照链接到当前图形中,其优势在于:实现多文件协同设计,源文件修改后所有参照文件自动更新;节省存储空间;避免数据重复;提升大型项目协作效率。

    2025年7月19日
    2500
  • Linux如何显示中文man手册?

    安装中文手册包(如manpages-zh),配置系统语言环境为中文(如zh_CN.UTF-8),或临时使用LANG=zh_CN.UTF-8 man命令,即可使man显示中文手册页。

    2025年7月4日
    2500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信