ADB,全称是 Android Debug Bridge,是 Android 开发/测试人员不可缺少神器,也是 Android 机主的神器玩具。releases

在 macOS 安装 ADB

  1. 下载 platform-tools 相关文件:https://dl.google.com/android/repository/platform-tools-latest-darwin.zip
  2. 存放到易找的位置,比如“下载”文件夹
  3. 解压 platform-tools-latest-darwin.zip ,解压后会得到一个 platform-tools 文件夹
  4. 在 platform-tools 文件夹单击右键 > 服务 > 新建位于文件夹位置的终端窗口
  5. 在终端中输入所需的命令,这种方式比较便捷,但是输入命令时需要用./adb(需要注意不是 adb

在 Windows 安装 ADB

  1. 下载 platform-tools 相关文件: https://dl.google.com/android/repository/platform-tools_r34.0.5-windows.zip?hl=zh-cn
  2. 存放到易找的位置,比如“下载”文件夹
  3. 解压 platform-tools-latest-darwin.zip ,解压后会得到一个 platform-tools 文件夹
  4. 在 platform-tools 文件夹单击右键 > 服务 > 新建位于文件夹位置的终端窗口
  5. 在终端中输入所需的命令,这种方式比较便捷,但是输入命令时需要用./adb(需要注意不是 adb

连接手机并检查是否安装成功可以使用

  1. 用数据线将手机和电脑链接
  2. 手机打开“开发者选项”并开启USB调试
  3. 将手机的连接模式改为“文件传输(MTP)”
  4. 执行命令 ./adb devices,如果有返回设备ID就表示操作成功,可以去执行其他命令

在 Windows 安装 ADB(步骤待完善)

  1. 下载 platform-tools 相关文件:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
  2. 存放到易找的位置,比如“下载”文件夹
  3. 解压 platform-tools-latest-darwin.zip ,解压后会得到一个 platform-tools 文件夹
  4. 打开 platform-tools 文件夹,按住 Shift 键并点击右键选择 建立命令窗口(具体名字忘记了)
  5. 使用相关命令执行想要的操作

常用 ADB 命令

应用相关操作

com.app.packages.1px 修改为具体的包名(请替换你自己的包名)

安装应用

便于执行可以放到好找的目录,并将 app.apk 修改为具体的路径和文件名

adb install app.apk

卸载应用

adb uninstall com.app.packages.1px

卸载应用但是保留数据和缓存文件

adb uninstall -k com.app.packages.1px

保留数据和缓存文件,重新安装、升级

adb install -r com.app.packages.1px

清除应用数据与缓存

adb shell pm clear com.app.packages.1px

示例:清除 Google Play 的应用数据和缓存

adb shell pm clear com.android.vending

强制停止app

adb shell am force-stop com.app.packages.1px

查看正在运行的 Services

adb shell dumpsys activity services com.app.packages.1px

查看app的详细信息

  • App版本、App版本号
adb shell dumpsys package services com.app.packages.1px

adb shell dumpsys package com.app.packages.1px

打开指定app、关闭指定app

以下示范打开系统设置,可以修改包名打开对应app

adb shell am start com.android.settings

以下示范关闭系统设置,可以修改包名打开对应app

adb shell am force-stop com.android.settings

查看全部已安装应用的包名

查看当前连接设备或者虚拟机的所有包

adb shell pm list packages

只输出禁用的包

adb shell pm list packages -d

只输出启用的包

adb shell pm list packages -e

只输出系统的包

adb shell pm list packages -s

只输出包和安装信息(安装来源)

adb shell pm list packages -i

只输出包和未安装包信息(安装来源)

adb shell pm list packages -u

只输出包和安装信息(安装来源)

adb shell pm list packages -i

输出包和包相关联的文件

adb shell pm list packages -f

输出所有第三方包。

adb shell pm list packages -3

获取当前打开app的名称、包名、Activity

adb shell dumpsys window | grep mCurrentFocus

通过 wifi 网络连接设备使用 adb 命令

该方式支持新、老系统。(新系统还有一种使用确认码的连接方式,大同小异,不用手动开端口直接连接再输入确认码即可。)

1、 启用设备 5555 端口监听

adb tcpip 5555

2、 通过IP连接设备(将 device_ip_address 替换成你设备的ip,可以在手机设备查看,也可以使用adb命令获取 adb shell ifconfig wlan0 该命令有些设备可能不支持)

adb connect device_ip_address:5555

示例:adb connect 192.168.1.99:5555(IP必须换成你自己设备的IP,手机切换IP、流量IP都会变,暂时未测试过流量是否能操作(理论上应该不行)。

3、确认手机是否已连接(带上 -l 可以查看连接设备详情)

adb devices -l
  • 注意事项
    • 网络连接方式也可以同时连接多台设备,连接多台设备操作某台设备和通过线连接操作方式一样,只是把序列表换成了ip+端口,例如: adb -s 192.168.2.1:5555

禁用 adb

adb kill-server

系统相关

系统相关信息

adb shell getprop

查看系统的某一个信息

adb shell getprop ro.build.version.release
# 查看屏幕分辨率 [720x1600]
adb shell wm size

# 查看屏幕密度 [420](Override density 指的是修改后的屏幕密度)
adb shell wm density

# 电池状态 电量相关属性
adb shell dumpsys battery

# Android 系统版本 | [12,13]
adb shell getprop ro.build.version.release

# 系统 SDK API 版本
adb shell getprop ro.build.version.sdk

# 默认地区?SIM 卡地区
adb shell getprop persist.sys.localedefault

# 时区 [America/Manaus]
adb shell getprop persist.sys.timezone

# SIM 卡运营商 [China Mobile HK,]
adb shell getprop ril.wfc.default_spn


# ! 手机型号 [返回空]
adb shell getprop ro.boot.em.model

# 手机序列号(以下方式二选一) | RFCR90VFKBY
adb shell getprop ro.serialno
adb get-serialno

# Android ID [51b9be38bac2c569]
adb shell settings get secure android_id

# 手机制造商 | samsung
adb shell getprop ro.product.manufacturer

# 产品品牌? | [samsung]
adb shell getprop ro.product.brand

# 手机型号 内部代号 | [SM-N9600]
adb shell getprop ro.product.model

# 产品代码? | [SM-N9600ZPDTGY]
adb shell getprop vendor.ril.product_code

# 设备名称 | a32xsq
adb shell getprop ro.product.name

# 查询芯片位数 | arm64-v8a
adb shell getprop ro.product.cpu.abi

# 启动器? | [N9600ZHS8FUG3]
adb shell getprop ro.bootloader

# [en-GB]
adb shell getprop ro.product.locale

# 语言地区? | [pt-BR]
adb shell getprop persist.sys.locale

# 手机内存信息
adb shell cat /proc/meminfo

# 手机内部储存
adb shell df /data

# 手机储存信息
adb shell df

# 查询 IP
adb shell ifconfig | grep Mask


# 查询连接的WiFi 查看IP
adb shell ifconfig wlan0

# 
adb shell getprop persist.sys.localenosim
# 
adb shell getprop persist.sys.locale
# 
adb shell getprop 
# 
adb shell getprop 
# 
adb shell getprop 
# 
adb shell getprop 

修改配置(需要 Root)

修改语言

adb shell setprop persist.sys.locale 'th-TH'

截图

adb 截图直接保存到电脑

截图文件会保存到 命令符&终端 当前目录

adb shell screencap -p > 1.png

截图文件的文件名用当前时间命名,避免每次都要改文件名的麻烦

先手动在命令符&终端 当前目录创建一个文件夹,文件夹名为jt,然后使用以下命令

adb shell screencap -p > jt/$(date +%Y%m%d%H%M%S).png

adb 截图直接保存到电脑(方法二)

截图文件会保存到 命令符&终端 当前目录

adb exec-out screencap -p > jietu_.png

adb 屏幕截图先保存到手机再发送到电脑

# 截屏
adb shell screencap -p /sdcard/sc.png

# 将图片导出到电脑,图片会导出到 adb 所在的目录
adb pull /sdcard/sc.png

控制 WiFi

# 开启 WiFi
adb shell svc wifi enable

# 关闭 WiFi
adb shell svc wifi disable

查看设备是否已 root

adb shell
su

当提示符为 $ 则表示没有root。 当提示符为 # 则表示已 root。

其他操作

查看所有安装包

adb shell pm list packages

查看全部设备

如果带上 -l 参数,可以查看设备详情,示例adb devices -l

adb devices
List of devices attached
3831434983574235	device
EASOPRVS79H6MFMN	device
12.1.22.44:6666   device

device 表示状态,offline 未连接或无响应、device 已链接、no device 没有设备或模拟器

device 前面一段内容为serialNumber相当于设备的名字,通过serialNumber可以指定操作对应设备,具体命令-s <serialNumber>

下面示范了,指定给EASOPRVS79H6MFMN安装app.apk

adb -s EASOPRVS79H6MFMN install app.apk

查看 adb 的版本

adb version

常见报错提示

# 链接了多个设备,命令未指定设备
adb: more than one device/emulator

# 没有配置 adb 环境(可尝试 ./adb 开头跑命令)
zsh: command not found: adb

操作设备

重启手机

adb reboot

重启到 Recovery 系统模式(卡刷模式)

adb reboot recovery

重启到 Fastboot 模式(线刷模式)

adb reboot bootloader

系统功能包名

包名功能名称note
com.android.settings系统设置

相关链接

参考文档

通过 ADB 启用调试模式 DebugView 查看原始事件数据

请将 com.qq.test 换为所需调试的APP包名

adb shell setprop debug.firebase.analytics.app com.qq.test

然后打开 Firebase 中的 DebugView (在分析里面)

‘Debug Device’ 选择自己的设备,就可以看到具体的事件数据

更多操作

adb root 使用 root 权限重新启动 adbd

复制文件

<local> :表示电脑的文件路径,终端执行命令的目录作为根目录。假设你执行命令的终端是 c:/adb,然后adb 目录中有个 1px.run.txt文件,那只要填onenote.txt,如果是在子目录txt中,那就填txt/onenote.txt

<remote>:表示手机的文件路径,从设备储存根目录写起。

两个参数之间用一个空格区分。

将电脑中 1px.run.txt 文件复制到手机 sdcard 目录中,示例如下:

adb push  1px.run.txt /sdcard/1px.run.txt

电脑复制到手机

adb push <local> <remote> 将电脑本地文件复制到手机

手机复制到电脑

adb pull <remote> <local> 将手机中的文件复制到电脑(当前执行命令的设备)


回到顶部

Copyright © 2017-2024 1px.run (像素教程) Distributed by an MIT license.

Site updated at 2024-11-15 11:26