Android ADB Shell 命令

open-notebook-on-table

Android 开发中,用到 ADB Shell 命令的场景很多。
而对于一些不常用的命令,总是需要搜索查找。


ADB 命令

ADB 全称 Android Debug Bridge,是 Android SDK 中提供的工具,用于在调试时连接本机和手机设备。

ADB 的基本用法:

adb [-d|-e|-s <serialNumber>] <command>

当使用的时候,程序会调用 ADB 客户端,上面三个参数用于连接了两个或以上的android设备时。

  • -d 说明adb命令的目标设备是唯一连接到adb的真机
  • -e 说明adb命令的目标设备是唯一连接到adb的模拟器
  • -s \ 指定adb命令的目标设备
1
2
3
4
5
6
➜ ~ adb devices
List of devices attached
237e1d67 device
P1QRMK0F19 device
➜ ~ adb -s 237e1d67 install demo.apk

如上所示,使用 「-s」来指定设备。


以下是 ADB 常用命令

命令 功能
adb devices 查看当前连接设备
adb logcat 查看日志
adb install [option] \ 安装apk
adb uninstall [option] \ 卸载 App
adb push \ \ 拷贝文件到手机
adb pull \ [local] 从手机端下载文件
adb shell pm list packages 查看所有 APP 的名称

注意:Windows 和 Linux 环境下,表示过滤的字符存在差异:findstr 与 grep

windowns: adb logcat| findstr “cn.deemons.test”

Linux/mac:adb logcat | grep “cn.deemons.test”


Shell 命令

Android 是一种基于 Linux 的自由及开放源代码的操作系统,Linux shell 命令在 Android 中大都也是使用的。

所有以「adb shell」开头的命令,都可以先执行 adb shell 命令进入目标设备的 Linux Shell 环境,然后再执行之后的命令。

例如:

adb shell dumpsys activity

可以先执行adb shell ,然后再执行 dumpsys activity ,效果相同。



在 Android 中,能够使用的 shell 命令如下:

1.模拟输入

Input 命令用来模拟一些按键点击、屏幕点击、输入等命令。

命令 功能 示例
input text 模拟输入文本信息 input text “hellow world”
input tap 模拟屏幕点击事件
(坐标x,y)
input tap 500 1450
input swipe 模拟手势滑动事件
(初始x,y,终点x,y,时长)
input swipe 100 500 100 1450 100
input keyevent 模拟点按实体按钮
支持的keyevent 见参考
input keyevent 25

2.启动组件

am (Activity Manager) 命令用来启动 Activity、启动广播和服务等等。

打开一个 Activity:

am start cn.deemons.test/cn.deemons.test.MainActivity

如果需要携带参数:

am start cn.deemons.test/cn.deemons.test.MainActivity -e key value

如果是隐身启动,

-a 表示 action

-c 表示 category

-d 表示 data_uri

-e 表示添加额外 Key-Value 信息:

am start -a "android.intent.action.VIEW" -d "https://deemons.cn"

同时,也可以发广播

am broadcast -a "our.specified.action"

启动一个服务也是类似:

am startservice "cn.deemons.test/cn.deemons.test.MyService"


3.APP 信息

dumpsys 命令可以查询系统内 APP 相关的很多信息。

通过 adb shell service list 来查看 dumpsys 能提供查询信息的服务,常用的有如下几个:

服务名 类名 功能
activity ActivityManagerService AMS相关信息
package PackageManagerService PMS相关信息
window WindowManagerService WMS相关信息
input InputManagerService IMS相关信息
power PowerManagerService PMS相关信息
procstats ProcessStatsService 进程统计
battery BatteryService 电池信息
alarm AlarmManagerService 闹钟信息
meminfo MemBinder 内存

比如,需要查看所有 Activity 相关信息,dumpsys activity

这个命令会得到非常多的信息内容,所有,一般可以拆分为以下八个命令分别查看:

1
2
3
4
5
6
7
8
dumpsys activity intents
dumpsys activity broadcasts
dumpsys activity providers
dumpsys activity permissions
dumpsys activity services
dumpsys activity recents
dumpsys activity activities
dumpsys activity processes

如果嫌输出内容太多,只想查看当前运行的 Activity 怎么办?可以使用 grep 命令来过滤

adb shell dumpsys activity | grep -i 'run'


4.其他

查看进程信息:

ps

查看 CPU 使用情况:

top

屏幕截图:
screemscap <filename>

屏幕录制:

screenrecord [options] filename


参考

Android中常用shell命令详解

Android ADB Shell命令解析

ADB 常用命令

adb shell input keyevent code详解


坚持分享技术,但行好事,莫问前程 ~^o^~