安卓调试桥ADB

Logcat 命令行工具 | Android Studio | Android Developers

什么是ADB

ADB 全称为 Android Debug Bridge ,是 Android SDK (安卓的开发工具)中的一个工具,起到调试桥的作用,是一个 客户端 - 服务器端程序 。其中 客户端 是用来操作的电脑, 服务端 是 Android 设备。
可以直接操作管理 Android 模拟器 或者 真实的 Android 设备(真机) 。
包括以下三个组件:
客户端 :用于发送命令。客户端在开发计算机上运行。您可以通过发出 adb 命令从命令行终端( cmd )调 用客户端。
守护程序 (adbd) :用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。 - 手机上
服务器 :用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。

安装adb

ADB,即Android Debug Bridge,是一个Android调试工具。以下是如何安装ADB的步骤:

下载ADB安装包

  • 你可以通过Android SDK安装ADB。ADB包含在Android SDK平台工具软件包中,安装完安卓SDK后,ADB会安装在"android_sdk/platform-tools/"目录下。

你也可以直接下载ADB安装包。具体的下载地址会根据你的操作系统而有所不同。例如,Windows版本的下载地址可能是https://dl.google.com/android/repository/platform-tools-latest-windows.zip,而Mac和Linux版本则会有相应的下载链接

2、解压安装包:下载完成后,你需要解压这个安装包。解压后,你会看到adb工具以及其他一些相关的文件。

3、配置环境变量:为了使ADB工具能在命令行中使用,你需要将其路径添加到系统的环境变量中。

打开电脑的设置,选择"高级系统设置",然后点击"环境变量设置"。

在系统变量中找到并选择"Path"变量,然后点击"编辑"。

在"变量值"字段中,添加ADB工具的路径。例如,如果你的ADB工具解压在"C:\adb"目录下,那么你就需要在这个字段中添加";C:\adb"

4、验证安装 :配置完环境变量后,你可以打开命令提示符(Windows)或终端(Mac/Linux),输入adb version来查看ADB的版本,以确认ADB是否已成功安装并配置。

连接模拟器

安装夜神模拟器,需要使用安装的adb.exe替换模拟器中的nox_adb.exe。

查看adb版本

ADB常用命令

开启模拟器,输入如下命令,显示连接的模拟器设备。

查看当前连接设备

adb devices

查看设备状态

device正常连接 offline 离线 unknown没有连接设备

adb root:获取Android管理员(root用户)的权限

adb shell:登录设备shell,这个命令将登录设备的shell(内核),登录shell后可以使用cd、ls、rm等

linux命令

查看应用包名

• adb shell pm list packages 显示所有包名

• adb shell pm list packages --s 显示系统应用包名

• adb shell pm list packages -3 显示第三方应用包名

• ls /data/data 显示所有包名

安装应用

• adb install <apk文件路径>:将本地apk软件安装到设备上,如果已经存在则无法安装

• adb install -r <apk电脑上的路径> :将本地apk软件安装到设备上,入如果已经存在则覆盖

卸载应用

• adb uninstall <apk包名>:卸载应用

• adb uninstall -k <apk包名>:将设备上apk卸载,但是保留配置和缓存文件

复制文件

adb push <本地路径> <远程路径>:把本地的文件或文件夹复制到设备(手机)

adb push使用中文路径名导入后找不到,

重新push一个英文路径名即可

adb pull <远程路径> <本地路径> :把设备(手机)的文件或文件夹复制到本地(最好创建

一个目录存放)

日志操作

抓取日志

adb logcat:抓取日志,ctrl+c结束

logcat可以查看手机4个缓冲区日志,包括radio,system,main,event;

• radio 存放通信的日志,比如通话短信等;

• event 表示手机按键输出等事件日志等;

• main 指的是手机的应用软件的日志,是应用层日志输出;

• system是系统组日志。

• 如果不指定,则默认输出main和system的日志,

如果需要指定,则需要使用参数

ü logcat是实时日志,在你操作软件的同时,同步会输出日志信息。

  1. adb logcat -b 指定缓冲区 如:adb logcat -b main 输出main的日志

  2. adb logcat -v time 如:adb logcat -v time 输出的日志同步打印时间

  3. adb logcat -v time -b 执行缓冲区 如:adb logcat -v time -b system

  4. adb logcat --v time -b 执行缓冲区>d:\ logcat.log 输出的日志保存在本地的文件上

清除日志缓存

adb logcat -c 清理日志

  1. adb logcat *:E 日志筛选,只输出error日志

日志操作

adb bugreport:输出日志(包括logcat日志),同时也包括功耗、CPU等日志信息。只支持

Android7.0以上的版本,生成日志后会自动保存到电脑本地。

如果你想要将adb bugreport的输出保存到特定的文件或位置,你可以使用命令行参数来指定路径。例如,你可以使用类似adb bugreport D:\ProjectResources\logs的命令将报告保存到D盘的ProjectResources\logs目录下。

重启设备

adb reboot

当你使用这个命令时,它会向设备发送一个重启请求,然后设备会开始关闭并重新启动其操作系统。

获取序列号

adb get-serialno

查看ADB命令帮助

adb help

关闭adb服务

adb kill-server

启动adb服务

adb start-server

获得root权限

adb root

获取system文件夹读写权限

adb remount

Adb shell

android是一种基于linux的自由及开放源代码的操作系统,adb shell命令是一个linux的shell,用来调试android系统内置的一些命令。

进入shell

adb shell进入shell,可执行ls cd exit等命令

启动activity

adb shell am start 包名

monkey测试

adb shell monkey 进行monkey测试

获取设备型号

adb shell getprop ro.product.model

获取设备android系统版本

adb shell getprop ro.build.version.release:

获取设备屏幕分辨率

adb shell wm size

截图

adb shell screencap -p /sdcard/mms.png:屏幕截图

adb pull /sdcard/mms.png D:\app:将截图导出到本地

查看系统信息-dumpsys

adb shell dumpsys meminfo <包名>:查看应用内存使用情况

查看当前打开的应用包名和界面

adb shell dumpsys window windows | findstr mFocusedApp:查看当前打开的应用包名和界面

adb shell dumpsys activity | find "mFocusedActivity":查看当前打开的界面

bash 复制代码
C:\Users\>adb shell dumpsys window windows | findstr mFocusedApp
  mFocusedApp=AppWindowToken{a911cd token=Token{5a7db64 ActivityRecord{15a00f7 u0 net.oschina.app/.improve.home.HomeActivity t3}}}

C:\Users\>adb shell dumpsys activity | find "mFocusedActivity"
  mFocusedActivity: ActivityRecord{15a00f7 u0 net.oschina.app/.improve.home.HomeActivity t3}

启动activity

启动activity,必须指定activity

bash 复制代码
C:\Users\>adb shell am start net.oschina.app/.improve.home.HomeActivity
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=net.oschina.app/.improve.home.HomeActivity }

关闭应用

adb shell am force-stop 包名

input指令

  1. 模拟按键/输入-input

adb shell input keyevent <keycode>:模拟键盘操作,不同的keycode能实现不同的功能

• Android adb keyevent 键值大全:Android adb keyevent 键值大全-CSDN博客

adb shell input swipe 300 1000 300 500:模拟滑动操作,从300,1000滑动到300,500坐标

adb shell input text hello:模拟文本输入操作,要求:焦点在某文本框中

清除应用数据与缓存

adb shell pm clear 包名

关闭设备

adb shell stop

启动设备

adb shell start

相关推荐
数据猎手小k10 分钟前
AndroidLab:一个系统化的Android代理框架,包含操作环境和可复现的基准测试,支持大型语言模型和多模态模型。
android·人工智能·机器学习·语言模型
你的小101 小时前
JavaWeb项目-----博客系统
android
风和先行1 小时前
adb 命令查看设备存储占用情况
android·adb
AaVictory.2 小时前
Android 开发 Java中 list实现 按照时间格式 yyyy-MM-dd HH:mm 顺序
android·java·list
似霰3 小时前
安卓智能指针sp、wp、RefBase浅析
android·c++·binder
大风起兮云飞扬丶3 小时前
Android——网络请求
android
干一行,爱一行3 小时前
android camera data -> surface 显示
android
断墨先生3 小时前
uniapp—android原生插件开发(3Android真机调试)
android·uni-app
无极程序员5 小时前
PHP常量
android·ide·android studio
萌面小侠Plus6 小时前
Android笔记(三十三):封装设备性能级别判断工具——低端机还是高端机
android·性能优化·kotlin·工具类·低端机