ADB命令基本应用

本文章主要用于个人学习积累记录


一、ADB是什么

ADB (Android Debug Bridge) 是一种用于与 Android 设备进行通信的命令行工具集。它允许开发者在连接的 Android 设备上执行各种操作,例如安装应用程序、调试应用程序、复制文件等等。

二、ADB的作用

ADB是Android SDK里的一个工具,用这个工具我们可以直接操作管理Android模拟器或者真实的Android设备。主要功能如下:

  • 在设备上运行shell命令;将本地APK软件安装至模拟器或Android设备
  • 文件操作:ADB 可以在设备和计算机之间进行文件传输
  • 日志记录和调试:使用 ADB 的 logcat 命令,可以查看设备的系统日志,以帮助开发者调试应用程序和系统问题。
  • 设备状态监测和控制:ADB 可以显示连接的设备列表,并提供设备的状态信息,如电池电量、网络连接状态等。还可以使用 ADB 命令重启设备或进入设备的 shell 终端。
  • 屏幕截图和录屏:ADB 提供了命令来获取设备屏幕的截图,并可以录制设备的屏幕操作。

ADB是一种客户端-服务器程序,主要包括以下三个组件:

  • 客户端(本机电脑):用于发送命令。客户端在开发机器上运行。您可以通过发出 adb 命令从命令行终端调用客户端。
  • 守护程序(adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。
  • 服务器(Android设备):用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。

三、ADB安装以及手机开发者模式

1. 安装ADB工具

ADB工具在AndroidSDK工具下的platform-tools包下,直接下载AndroidSDK即可
下载地址:[https://www.androiddevtools.cn/#]下载后直接解压缩后安装
在这里插入图片描述
安装AndroidSDK后需要配置系统变量:
在这里插入图片描述
配置成功后命令行输入adb version显示出相应版本表示安装成功
在这里插入图片描述

2. ADB连接手机的两种常用物理方式

ADB提供了两种连接Android设备的方式:USB以及网络(wifi)方式,本文主要应用USB方式一般android手机及android平板默认会设置为USB方式(直接插数据线的方式) . android系统底层运行着一个服务(adbd),也就是在手机系统内部,用于相应和管理大家在电脑端的adb命令连接,这个服务在启动时会根据手机的配置监听USB连接或网络其中之一

3. Android设备开发者模式开启

不同类型手机开启开发者模式各有差异,以MIUI为例:
我的设备->全部参数与信息->连击8次MIUI版本,即可进入开发者模式
在设置->更多设置中找到开发者模式,并打开USB调试(注意要打开和USB相关的所有选项,小米手机可在插卡打开后将卡拔出打开USB的调试)

4. ADB命令与Abdroid设备连接

将Abdroid设备通过USB与本地设备(电脑)进行连接后,在本地设备上命令行中输入adb devices
在这里插入图片描述
可以得到Abdroid设备的序列号

四、 ADB基本命令及其应用

adb 命令的基本语法如下:

adb [-d|-e|-s <serial-number>] <command>

单一设备/模拟器连接:
如果只有一个设备/模拟器连接时,可以省略掉 [-d|-e|-s <serial-number>] 这一部分,直接使用 adb <command>
多设备/模拟器连接:
如果有多个设备/模拟器连接,则需要为命令指定目标设备,下表是指定目标设备的命令选项:

参数含义
-d指定当前唯一通过 USB 连接的 Android 设备为命令目标
-e指定当前唯一运行的模拟器为命令目标
-s<serial-number> 指定相应设备序列号的设备/模拟器为命令目标

4.1 基本命令

1. adb version //查看adb的版本信息
2. adb start-server //启动adb服务,一般无需手动执行此命令
3. adb kill-server //停止adb
4. adb root //以 root 权限运行 adbd
5. adb -P <port> start-server //指定 adb server 的网络端口,ADB的默认端口为 5037
6. adb devices // 查询已连接的设备/模拟器列表

4.2 设备连接以及设备管理

具体可参考链接: ADB 操作命令详解及用法大全

4.3 应用管理

1.adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]

此命令用于查看Android设备应用列表
adb shell pm list packages 后面可以跟一些可选参数进行过滤查看不同的列表,可用参数及含义如下:

参数含义
所有应用
-f显示应用关联的 apk 文件
-d只显示 disabled 的应用
-e只显示 enabled 的应用
-s只显示系统应用
-3只显示第三方应用
-i显示应用的 installer
-u包含已卸载应用
<filter>包名包含 <filter> 字符串
2.adb install [-l] [-r] [-t] [-s] [-d] [-g] <apk-file>

此命令用于安装应用

参数含义
-l将应用安装到保护目录 /mnt/asec
-r允许覆盖安装
-t允许安装 AndroidManifest.xml 里 application 指定 android:testOnly=“true” 的应用
-s将应用安装到 sdcard
-d允许降级覆盖安装
-g授予所有运行时权限

运行命令后可以看到输出内容,包含安装进度和状态,安装状态如下:

  • Success:代表安装成功。
  • Failure:代表安装失败。APK 安装失败的情况有很多,Failure状态之后有安装失败输出代码。
    adb install 实际是分三步完成:
    1.push apk 文件到 /data/local/tmp
    2.调用 pm install 安装。
    3.删除 /data/local/tmp 下的对应 apk 文件。
3.adb uninstall [-k] <package-name>

此命令用于卸载应用
表示应用的包名,-k 参数可选,表示卸载应用但保留数据和缓存目录。

4.adb shell pm clear <package-name>

此命令用于清除应用数据与缓存
<package-name> 表示应用名包,这条命令的效果相当于在设置里的应用信息界面点击了「清除缓存」和「清除数据」。

5.adb shell dumpsys activity activities | grep mFocusedActivity

此命令用于查看前台 Activity
可用findstr替换grep

6.adb shell dumpsys activity services [<package-name>]

此命令用于查看正在运行的 Services
参数不是必须的,指定 表示查看与某个包名相关的 Services,不指定表示查看所有 Services。 不一定要给出完整的包名,可以只给一部分,那么所给包名相关的 Services 都会列出来。

7.adb shell dumpsys package <package-name>

此命令用于查看应用详细信息
表示应用包名。运行次命令的输出中包含很多信息,包括 Activity Resolver Table、Registered ContentProviders、包名、userId、安装后的文件资源代码等路径、版本信息、权限信息和授予状态、签名版本信息等。

8.adb shell pm path <package-name>

此命令用于查看应用安装路径

4.4 应用交互

与应用交互主要是使用 am <command> 命令,常用的 <command> 如下:

commmand用途
start [options] <intent>启动 <intent> 指定的 Activity
startservice [options] <intent>启动 <intent> 指定的 Service
broadcast [options] <intent>发送 <intent> 指定的广播
force-stop <package-name>停止 <package-name> 相关的进程

<intent> 参数很灵活,和写 Android 程序时代码里的 Intent 相对应。
用于决定 intent 对象的选项如下:

参数含义
-a 指定 action,比如 android.intent.action.VIEW
-c 指定 category,比如 android.intent.category.APP_CONTACTS
-n 指定完整 component 名,用于明确指定启动哪个 Activity
1.adb shell am start [options] <intent>

用于启动应用/ 调起 Activity
例如:

adb shell am start -a android.settings.SETTINGS //打开系统设置页面
adb shell am start -a android.intent.action.DIAL -d tel:10086 //打开拨号页面
adb shell am start -n com.android.mms/.ui.ConversationList //打开短信会话列表

options 是一些改变其行为的选项,支持的可选参数及含义如下:

选项含义
-D启用调试
-W等待启动完成
–start-profiler file启动分析器并将结果发送到 file
-P file类似于 --start-profiler,但当应用进入空闲状态时分析停止
-R count重复 Activity 启动次数
-S启动 Activity 前强行停止目标应用
–opengl-trace启用 OpenGL 函数的跟踪
–user user_idcurrent
2.adb shell am startservice [options] <intent>

用于调起 Service

3.adb shell am stopservice [options] <intent>

用于停止 Service

4.adb shell am broadcast [options] <INTENT>

用于发送广播

5.adb shell am force-stop <packagename>

用于强制停止应用

adb shell am send-trim-memory  <pid> <level>

用于收紧内存

4.5 文件管理

文件管理中的命令除pull和push外大多需要进入shell进行命令操作,和linux基本命令类似

1.adb pull <remote> [local]

用于从模拟器/设备下载指定的文件到计算机
参数说明:
remote: 模拟器/设备里的文件路径
local:计算机上的目录,参数可以省略,默认复制到当前目录

2.adb push <local> <remote>

用于将指定的文件从计算机上传到模拟器/设备
参数说明:
local:计算机上的文件路径
remote: 模拟器/设备里的目录

3.adb shell ls [options] <directory>

用于列出模拟器/设备上指定目录的内容
<directory> 表示指定目录,可以省略,表示列出根目录下的所有文件和目录。

adb shell cd <directory>

用于切换到目标目录

adb shell rm [options] <files or directory>

用于删除文件或目录

4.6 模拟按键

adb shell中有很实用的命令input
执行adb shell input结果如下:

Usage: input [<source>] [-d DISPLAY_ID] <command> [<arg>...]

The sources are:
      touchnavigation
      touchscreen
      joystick
      stylus
      touchpad
      gamepad
      dpad
      mouse
      keyboard
      trackball

-d: specify the display ID.
      (Default: -1 for key event, 0 for motion event if not specified.)
The commands and default sources are:
      text <string> (Default: touchscreen)
      keyevent [--longpress|--doubletap] <key code number or name> ... (Default: keyboard)
      tap <x> <y> (Default: touchscreen)
      swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
      draganddrop <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
      press (Default: trackball)
      roll <dx> <dy> (Default: trackball)
      motionevent <DOWN|UP|MOVE|CANCEL> <x> <y> (Default: touchscreen)
      keycombination [-t duration(ms)] <key code 1> <key code 2> ... (Default: keyboard, the key order is important here.)

4.9 查看 Android 设备系统属性

4.10 修改设置

4.11 实用功能

4.12 刷机命令

4.13安全相关命令

参考

链接: ADB 操作命令详解及用法大全

总结:ADB命令用于和Android设备或者虚拟机进行交互,本文大量参考了以上连接详见上文,在使用python库uiautomator2时必须先安装安卓adb工具

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值