相关文章推荐
(opens new window)

ADB命令简介

ADB命令简介

我们默认本文读者已经详细掌握了自己所使用系统的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 中的文本的软件包。

选项如下:

  • -f :查看它们的关联文件。
  • -d :进行过滤以仅显示已停用的软件包。
  • -e :进行过滤以仅显示已启用的软件包。
  • -s :进行过滤以仅显示系统软件包。
  • -3 :进行过滤以仅显示第三方软件包。
  • -i :查看软件包的安装程序。
  • -u :也包括卸载的软件包。
  • --user user_id :要查询的用户空间。
list permission-groups 输出所有已知的权限组。
list permissions [ options ] group 输出所有已知的权限,或者,仅输出 group 中的权限。

选项如下:

  • -g :按组进行整理。
  • -f :输出所有信息。
  • -s :简短摘要。
  • -d :仅列出危险权限。
  • -u :仅列出用户将看到的权限。
list users 输出系统中的所有用户。
path package 输出给定 package 的 APK 的路径。
install [ options ] path 将软件包(通过 path 指定)安装到系统。

选项如下:

  • -r :重新安装现有应用,保留其数据。
  • -i installer_package_name :指定安装程序软件包名称。
  • --install-location location :使用以下某个值来设置安装位置:
    • 0 :使用默认安装位置。
    • 1 :在内部设备存储上安装。
    • 2 :在外部介质上安装。
  • -f :在内部系统内存上安装软件包。
  • -d :允许版本代码降级。
  • -g :授予应用清单中列出的所有权限。
  • --fastdeploy :通过仅更新已更改的 APK 部分来快速更新安装的软件包。
uninstall [ options ] package 从系统中移除软件包。

选项如下:

  • -k :移除软件包后保留数据和缓存目录。
clear package 删除与软件包关联的所有数据。
enable package_or_component 启用给定的软件包或组件(写为“package/class”)。
disable package_or_component 停用给定的软件包或组件(写为“package/class”)。
grant package_name permission 向应用授予权限。在搭载 Android 6.0(API 级别 23)及更高版本的设备上,该权限可以是应用清单中声明的任何权限。在搭载 Android 5.1(API 级别 22)及更低版本的设备上,该权限必须是应用定义的可选权限。
revoke package_name permission 从应用撤消权限。在搭载 Android 6.0(API 级别 23)及更高版本的设备上,该权限可以是应用清单中声明的任何权限。在搭载 Android 5.1(API 级别 22)及更低版本的设备上,该权限必须是应用定义的可选权限。
set-install-location location 更改默认安装位置。位置值如下:
  • 0 :自动 - 让系统决定最合适的位置。
  • 1 :内部 - 在内部设备存储上安装。
  • 2 :外部 - 在外部介质上安装。

注意 :此命令仅用于调试目的;使用此命令会导致应用中断和其他意外行为。

get-install-location 返回当前安装位置。返回值如下:
  • 0 [auto] :让系统决定最合适的位置
  • 1 [internal] :在内部设备存储上安装
  • 2 [external] :在外部介质上安装
set-permission-enforced permission [true | false] 指定是否应强制执行给定的权限。

# 截取屏幕截图

screencap 命令可以在 shell 中截取设备显示屏的屏幕截图。例如,以下命令将在命令行中截取屏幕截图并保存在/sdcard下。
adb shell screencap /sdcard/screen.png

# 录制视频

screenrecord 命令可以在 shell 中录制设备显示屏。(需要Android 4.4或更高)例如,以下命令将在命令行中录制屏幕并保存在/sdcard下。
adb shell screenrecord /sdcard/demo.mp4

 
推荐文章