我们默认本文读者已经详细掌握了自己所使用系统的Terminal的使用方法,并对Linux系统的文件系统及基本命令有了初步的了解,同时应具备一定的英语水平,否则请转而寻求可信来源的图形化工具的帮助。
# 查询设备
adb devices
使用此命令以列出所有当前连接至此计算机的Android设备和此电脑上的Android模拟器,您可以添加-l
参数以显示设备的详细信息。第一列显示的是设备的序列号。
# 将命令发送至特定设备
如果您的计算机上连接了多个Android设备或模拟器,您需要在发送命令时使用-s
参数指定目标设备,否则会抛出错误。在-s
参数后加上目标设备的序列号。
# 安装应用
install
会将计算机上的应用安装包安装至Android设备或模拟器上,例如,以下命令将会安装当前路径下的demo.apk文件。
adb install ./demo.apk
# 将文件复制到设备/从设备复制文件
您可以使用pull
和push
命令将文件复制到设备或从设备复制文件。
例如,想要将手机中的照片拷贝至计算机,可以使用如下命令,他会将照片存储在当前路径下。
adb pull /sdcard/DCIM/Camera ./
欲将计算机当前路径下的photo.jpg复制至设备的SD卡中,可以使用以下命令。
adb push ./photo.jpg /sdcard
# 发出Shell命令
您可以使用shell命令通过adb发出设备命令,也可以启动交互式shell。要发出单个命令,请使用shell命令,如下所示:
adb shell echo 'Hello,Android!'
要在设备上启动交互式shell,请使用shell命令,如下所示:
adb shell
对于Android/Linux Shell的使用介绍已偏离本文主题,请自行学习Linux系统中Shell的相关命令。
# 调用 Activity 管理器 (am)
在adb shell中,您可以使用 Activity 管理器 (am) 工具发出命令以执行各种系统操作,如启动Activity、强行停止进程、广播 intent、修改设备屏幕属性等。
命令 | 说明 |
---|---|
start intent | 启动由intent指定的 Activity。 |
startservice intent | 启动由intent指定的 Service。 |
force-stop package | 强行停止与 package(应用的软件包名称)关联的所有进程。 |
kill-all | 终止所有后台进程。 |
broadcast intent | 发出广播 intent。 |
display-size widthxheight | 替换设备显示尺寸。 |
display-density dpi | 替换设备显示密度。 |
# 调用软件包管理器
在 adb shell 中,您可以使用软件包管理器 (pm) 工具发出命令,以对设备上安装的应用软件包执行操作和查询。
命令 | 说明 |
---|---|
list packages [options] filter | 输出所有软件包,或者,仅输出软件包名称包含 filter 中的文本的软件包。选项如下:
|
list permission-groups | 输出所有已知的权限组。 |
list permissions [options] group | 输出所有已知的权限,或者,仅输出 group 中的权限。选项如下:
|
list users | 输出系统中的所有用户。 |
path package | 输出给定 package 的 APK 的路径。 |
install [options] path | 将软件包(通过 path 指定)安装到系统。选项如下:
|
uninstall [options] package | 从系统中移除软件包。 选项如下:
|
clear package | 删除与软件包关联的所有数据。 |
enable package_or_component | 启用给定的软件包或组件(写为“package/class”)。 |
disable package_or_component | 停用给定的软件包或组件(写为“package/class”)。 |
grant package_namepermission | 向应用授予权限。在搭载 Android 6.0(API 级别 23)及更高版本的设备上,该权限可以是应用清单中声明的任何权限。在搭载 Android 5.1(API 级别 22)及更低版本的设备上,该权限必须是应用定义的可选权限。 |
revoke package_namepermission | 从应用撤消权限。在搭载 Android 6.0(API 级别 23)及更高版本的设备上,该权限可以是应用清单中声明的任何权限。在搭载 Android 5.1(API 级别 22)及更低版本的设备上,该权限必须是应用定义的可选权限。 |
set-install-location location | 更改默认安装位置。位置值如下:
注意:此命令仅用于调试目的;使用此命令会导致应用中断和其他意外行为。 |
get-install-location | 返回当前安装位置。返回值如下:
|
set-permission-enforced permission [true | | 指定是否应强制执行给定的权限。 |
# 截取屏幕截图
screencap
命令可以在shell中截取设备显示屏的屏幕截图。例如,以下命令将在命令行中截取屏幕截图并保存在/sdcard下。
adb shell screencap /sdcard/screen.png
# 录制视频
screenrecord
命令可以在shell中录制设备显示屏。(需要Android 4.4或更高)例如,以下命令将在命令行中录制屏幕并保存在/sdcard下。
adb shell screenrecord /sdcard/demo.mp4
按 Ctrl + C 键(在 Mac 上,按 Command + C 键)停止屏幕录制;否则,到三分钟或 --time-limit 设置的时间限制时,录制将自动停止。
选项 | 说明 |
---|---|
--size widthxheight | 设置视频大小:1280x720 。默认值为设备的本机显示屏分辨率(如果支持);如果不支持,则为 1280x720。 |
--bit-rate rate | 设置视频的视频比特率(以 MB/秒为单位)。默认值为 4Mbps。您可以增加比特率以提升视频品质,但这么做会导致视频文件变大。 |
--time-limit time | 设置最大录制时长(以秒为单位)。默认值和最大值均为 180(3 分钟)。 |
--verbose | 在命令行屏幕显示日志信息。如果您不设置此选项,则该实用程序在运行时不会显示任何信息。 |
Portions of this page are modifications based on work created and shared by the Android Open Source Project (opens new window) and used according to terms described in the Creative Commons 2.5 Attribution License (opens new window).