添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

adb 命令是 Android 官方提供,调试 Android 系统的工具。
adb 全称为 Android Debug Bridge(Android 调试桥),是 Android SDK 中提供的用于管理 Android 模拟器或真机的工具。
adb 是一种功能强大的命令行工具,可让 PC 端与 Android 设备进行通信。adb 命令可执行各种设备操作,例如安装和调试应用,并提供对 Unix shell 的访问权限。

官方使用说明: https://adbshell.com/commands
官方下载说明; http://adbshell.com/downloads

一、基础命令

adb reboot #重启
adb help #查看ADB 帮助

二、查看设备

adb devices #查看可连接操作的设备

三、连接设备

adb [-d|-e|-s <serialNumber>] <command>
连接指定设备
-d 指定当前唯一通过USB 连接的Android 设备为命令目标
-e 指定当前唯一运行的模拟器为命令目标
-s <serialNumber> 指定相应serialNumber 号的设备/模拟器为命令目标
command 为所需对设备执行的命令
adb connect 127 0.0.1:7555 # 以 WLAN 网络方式连接(比如:连接电脑上模拟器 MUMU 等)
adb disconnect 127.0.0.1:16416 #断开连接
adb -s cf27456f shell # 指定连接设备使用命令,以USB、串口等方式连接真手机、平板等

四、安装、卸载APP应用

1.安装应用

adb install test.apk #安装应用
adb install -r demo.apk #保留数据和缓存文件,重新安装apk
adb install -s test.apk #安装apk 到sd 卡

2.卸载应用

adb uninstall cn.com.test.mobile #卸载应用,需要指定包
adb uninstall -k cn.com.test.mobile #卸载app 但保留数据和缓存文件

-k: 卸载 APP 但保留数据和缓存文件

五、adb shell

5-1.adb shell

command 用途:
start [options] <INTENT> 启动 <INTENT> 指定的 Activity
startservice [options] <INTENT> 启动 <INTENT> 指定的 Service
broadcast [options] <INTENT> 发送 <INTENT> 指定的广播
force-stop <packagename> 停止 <packagename> 相关的进程

<INTENT> 参数很灵活,和写 Android 程序时代码里的 Intent 相对应,用于决定 intent 对象的选项如下:
-a <ACTION> 指定 action,如android.intent.action.VIEW
-c <CATEGORY> 指定 category,如android.intent.category.APP_CONTACTS
-n <COMPONENT> 指定完整 component 名,用于明确指定启动哪个 Activity,
如: com.example.app/.ExampleActivity

5-1-1.adb shell am start

在Android中,除了从界面上启动程序之外,还可以从命令行启动程序,使用的是命令行工具am.

adb shell am start [options] <INTENT>
adb shell am start -n {包(package)名}/{包名}.

 start an Activity: am start [-D] <INTENT>
        -D: enable debugging
    send a broadcast Intent: am broadcast <INTENT>
    start an Instrumentation: am instrument [flags] <COMPONENT>
        -r: print raw results (otherwise decode REPORT_KEY_STREAMRESULT)
        -e <NAME> <VALUE>: set argument <NAME> to <VALUE>
        -p <FILE>: write profiling data to <FILE>
        -w: wait for instrumentation to finish before returning
    start profiling: am profile <PROCESS> start <FILE>
    stop profiling: am profile <PROCESS> stop
    <INTENT> specifications include these flags:
        [-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]
        [-c <CATEGORY> [-c <CATEGORY>] ...]
        [-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
        [--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
        [-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
        [-n <COMPONENT>] [-f <FLAGS>] [<URI>]
adb shell am start -n <COMPONENT>  #指定完整 component 名,用于明确指定启动哪个Activity
adb shell am start -n com.tencent.mm/.ui.LauncherUI  #表示调起微信主界面
adb shell am start -n com.tencent.mm/com.tencent.mm.ui.LauncherUI  #表示调起微信主界面
adb shell am start -n cn.com.test.mobile/.ui.SplashActivity #启动应用
adb shell am start -a android.intent.action.MAIN -n com.android.settings/com.android.settings.SubSettings #打开设置界面
adb shell am start -n com.android.browser/com.android.browser.BrowserActivity ## 打开Browser(浏览器)
adb shell am start -a android.intent.action.VIEW -d  http://www.163.com/  ##浏览器打开指定网址 
adb shell am start -a android.intent.action.VIEW  http://www.qq.com/  ##浏览器打开指定网址 

start 相关说明:https://blog.csdn.net/yegshun/article/details/80982404

5-1-2.adb shell am startservice

adb shell am startservice [options] <INTENT>

示例: 表示调起微信的某 Service 界面。

adb shell am startservice -n com.tencent.mm/com.tencent.mm.plugin.accountsync.model.AccountAuthenticatorService
adb shell am startservice -n com.tencent.mm/.plugin.accountsync.model.AccountAuthenticatorService

5-1-3.adb shell am broadcast

发送广播, 可以向所有组件广播,也可以只向指定组件广播。
adb shell am broadcast [options] <INTENT>
adb shell am broadcast -a <action> [-d ] [-t <mime_type>] [-c <category> [-c <category>] ...]

-a参数指定广播的Action
-d参数指定广播的Data URI
-t参数指定广播的MIME类型
-c参数指定广播的Category

#向所有组件广播 BOOT_COMPLETED (开机广播)
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
#如:只向 org.mazhuang.boottimemeasure/.BootCompletedReceiver 广播 BOOT_COMPLETED:
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n org.mazhuang.boottimemeasure/.BootCompletedReceiver

系统预定义的广播(文字、图片版):
更多详细:https://www.cnblogs.com/wutou/p/17940047

5-1-4.adb shell am force-stop

adb shell am force-stop cn.com.test.mobile #强制停止应用
adb shell am force-stop com.tencent.mm #强制停止微信

5-2.adb shell pm

5-2-1 adb shell pm list

adb shell pm list packages #列出手机装的所有app 的包名
adb shell pm list packages -s #列出系统应用的所有包名
adb shell pm list packages -3 #列出除了系统应用的第三方应用包名
adb shell pm list packages | find "test" #win 列出手机装带有的test的包
adb shell pm list packages | grep ‘test’ #linux 列出手机装带有的test的包

5-2-2 adb shell pm clear

adb shell pm clear cn.com.test.mobile #清除应用数据与缓存

5-3.adb shell dumpsys

Dumpsys用户系统诊断,它运行在设备上,并提供系统服务状态信息
更详细用法:https://www.cnblogs.com/xiaowenshu/p/10390246.html

5-3-1.adb shell dumpsys [options]

adb shell dumpsys package #包信息Package Information
adb shell dumpsys meminfo #内存使用情况Memory Usage
adb shell dumpsys battery #电池状况
adb shell dumpsys window displays #显示屏参数
adb shell dumpsys window | findstr mCurrentFocus  # 显示当前开启窗口名
adb shell dumpsys bluetooth_manager #查看蓝牙信息
adb shell dumpsys wifi #查看Wi-Fi 信息
adb shell dumpsys gfxinfo <package_name> #APP界面的帧率
adb shell "dumpsys window | grep mCurrentFocus" # 查看前台显示的Activity界面

adb shell dumpsys package com.tencent.mm 显示微信包全部信息
adb shell dumpsys package com.jingdong.app.mall | findstr version ## 查看‘京东’安装包版本

5-3-2.adb shell dumpsys activity

adb shell dumpsys activity services [<packagename>] #查看正在运行的Services

<packagename> 参数不是必须的,指定<packagename> 表示查看与某个包名相关的Services,不指定表示查看所有Services。
<packagename> 不一定要给出完整的包名,比如运行adb shell dumpsys activity services org.zhihu,那么包名org.zhihu.demo1、org.zhihu.demo2 和org.zhihu 等相关的Services 都会列出来。

5-3-3.adb shell dumpsys iphonesubinfo

adb shell dumpsys iphonesubinfo #IMEI( Android 5.0 及以下有效)
#而在 Android 5.0 及以上版本里这个命令输出为空,得通过其它方式获取了(需要 root 权限):
adb shell
service call iphonesubinfo 1

5-3-4.adb shell dumpsys battery

adb shell dumpsys battery #显示电磁信息
adb shell "dumpsys battery | grep status" #只显示电池信息,包含status关键字的
adb shell "dumpsys battery | grep powered" #只显示电池信息,包含powered关键字的

因为在CMD 终端下执行命令 | 会被解析,所以把 "dumpsys battery | grep powered" 用双引号括起来

5-4.adb shell getprop/setprop

5-4-1.adb shell getprop

列出所有配置属性值

adb shell getprop ro.product.model #查看设备型号
adb shell getprop ro.build.version.release #查看Android 系统版本号
adb shell getprop gsm.network.type #驻网类型
adb shell getprop gsm.operator.alpha #运营商类型
adb shell cat /system/build.prop | grep ro.product.cpu.abi # 获取CPU架构
adb shell cat /system/build.prop | find “ro.product.cpu.abi” # 获取CPU架构
adb shell getprop ro.product.cpu.abi # 获取CPU架构

查看设备信息

adb shell getprop ro.product.brand #设备品牌
adb shell getprop ro.product.board #设备处理器型号
adb shell dumpsys SurfaceFlinger|findstr "GLES" #设备引擎渲染模式

5-4-2.adb shell setprop

setprop [key] [value] 设置指定key的属性值

setprop service.adb.tcp.port 5555

5-5.adb shell top

使用方法:

top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [ -t ] [ -h ]

参数如下:

-m num 最多显示多少个进程
-n num 刷新多少次后退出
-d num 刷新时间间隔(单位秒,默认值 5)
-s col 按某列排序(可用 col 值:cpu, vss, rss, thr)
-t 显示线程信息
-h 显示帮助文档

adb shell top -s 10 #查看占用内存前10 的app

5-6.adb shell wm

5-6-1.adb shell wm size

adb shell wm size #查看屏幕分辨率
adb shell wm size 480x1024 #将分辨率修改为 480px * 1024px
adb shell wm size reset #恢复原分辨率

5-6-2.adb shell wm density

adb shell wm density #查看屏幕密度
adb shell wm density reset #恢复原屏幕密度

5-6-3.adb shell wm overscan

adb shell wm overscan # 四个数字分别表示距离左、上、右、下边缘的留白像素,以上命令表示将屏幕底部 100px留白
adb shell wm overscan reset #恢复显示区域

5-7.adb shell input

5-7-1.adb shell input keyevent

adb shell input keyevent <keycode>

adb shell input keyevent 3   #HOME 键
adb shell input keyevent 4   #返回键
adb shell input keyevent 24  #增加音量
adb shell input keyevent 25  #降低音量
adb shell input keyevent 26  #电源键
adb shell input keyevent 82  #菜单键
adb shell input keyevent 85  #播放/暂停
adb shell input keyevent 86  #停止播放
adb shell input keyevent 87  #播放下一首
adb shell input keyevent 88  #播放上一首
adb shell input keyevent 126 #恢复播放
adb shell input keyevent 127 #暂停播放
adb shell input keyevent 164 #静音
adb shell input keyevent 224 #点亮屏幕
adb shell input keyevent 223 #熄灭屏幕

keycode位操作参数,不同的 keycode 能实现不同的功能
完整的功能见:https://developer.android.com/reference/android/view/KeyEvent.html

keycode 能实现不同的功能,对应的编码如下:

5-7-2.adb shell input swipe

adb shell input swipe 300 1000 300 500  #滑动解锁,向上滑动手势解锁

参数: 300 1000 300 500 分别表示起始点x坐标 起始点y坐标 结束点x坐标 结束点y坐标

5-7-3.adb shell input text

adb shell input text hello #焦点处于某文本框时输入文本hello

5-8.adb shell dmesg

adb shell dmesg #查看内核日志

5-9.adb shell settings

更详细说明:https://www.cnblogs.com/wutou/p/17945015

5-9-1.adb shell settings get

adb shell settings get secure android_id #android_id

adb shell settings get system screen_off_timeout #获取屏幕休眠时间
adb shell settings get global auto_time #获取日期时间选项中通过网络获取时间的状态,1为允许、0为不允许。更改该状态,从1改为0
adb shell settings get system screen_brightness #获取当前屏幕亮度值
adb shell settings get secure default_input_method io.appium.android.ime/.UnicodeIME #默认为Appium使用中文输入时安装的输入法
adb shell settings get secure default_input_method com.sohu.inputmethod.sogouoem/.SogouIME #默认搜狗输入法
adb shell settings get global http_proxy #查看代理是否设置成功
adb shell settings get global wifi_on #查看WiFi 状态。1:开 0:关

5-9-2.adb shell settings put

5-9-2-1.adb shell settings put system

adb shell settings put system screen_brightness 150 #更改亮度值(亮度值在0—255之间)
adb shell settings put system screen_off_timeout 600000 #设置屏幕休眠时间(毫秒)
adb shell settings put system screen_off_timeout 2147483647 #设置永不锁屏
adb shell settings put system accelerometer_rotation 0 #禁用屏幕自动旋转
adb shell settings put system accelerometer_rotation 1 #启用屏幕自动旋转
adb shell settings put system user_rotation 1 #屏幕旋转到横向模式
adb shell settings put system user_rotation 3 #屏幕旋转 270° clockwise

user_rotation后取值范围为0,1,2,3

5-9-2-2.adb shell settings put secure

adb shell settings put secure install_non_market_apps1 #允许安装来源
adb shell settings put secure location_providers_allowed +gps #开启GPS定位功能
adb shell settings put secure location_providers_allowed -gps #关闭GPS定位功能,或者移除定位服务提供者
adb shell settings put secure display_density_forced 440

5-9-2-3.adb shell settings put global

adb shell settings put global policy_control <key-values>
<key-values> 可由如下几种键及其对应的值组成,格式为 <key1>=<value1>:<key2>=<value2>

key 键对应的值:

这些键对应的值可则如下值用逗号组合:

# 设置在所有界面下都同时隐藏状态栏和导航栏
adb shell settings put global policy_control immersive.full=*
# 设置在包名为 com.package1 和 com.package2 的应用里隐藏状态栏,在除了包名为 com.package3 的所有应用里隐藏导航栏。
adb shell settings put global policy_control immersive.status=com.package1,com.package2:immersive.navigation=apps,-com.package3
adb shell settings put global adb_enabled 0 #关闭 USB 调试模式。关闭后,使用命令无法恢复开启USB 调试模式,只能通过屏幕手动操作
adb shell settings put global captive_portal_detection_enabled 0 #关闭系统网络检查服务
adb shell settings put global captive_portal_detection_enabled 1 #开启还原网络检查服务
adb shell settings put global http_proxy 127.0.0.1:1984 #设置全局代理
adb shell settings put global http_proxy :0 #关闭代理(无需重启),只清空填写的IP和端口
adb shell settings put global http_proxy null #同上,关闭代理(因为必须要一个参数,所以写:0和null效果一样)
adb shell settings put global https_proxy 你电脑的IP:你抓包软件的监听端口 #设置https全局代理
adb shell settings put global global_http_proxy_exclusion_list 2.3.3.3,1.1.1.1 # (旧版)http代理排除 2.3.3.3 和 1.1.1.1(这两个网址不使用代理)
adb shell settings put global global_http_proxy_exclusion_list baidu.com,jd.com # (旧版)http代理排除 baidu.com和jd.com(这两个网址不使用代理)
adb shell settings put global global_http_proxy_exclusion_list null # (旧版)http代理排除列表,清空
adb shell settings delete global ProxyExclusionList  # (旧版)http代理排除列表,清空
adb shell settings put global ProxyExclusionList 2.2.22.2 ## (新版)设置代理排除列表
adb shell settings get global ProxyExclusionList  ## (新版)获取代理排除列表
adb shell settings put global install_non_market_apps 0 #禁止安装非市场应用
adb shell settings put global install_non_market_apps 1 #允许安装非市场应用
adb shell settings put global wifi_sleep_policy 2 #屏幕关闭时,设置WiFi在屏幕关闭时始终保持连接
adb shell settings put global ntp_server asia.pool.ntp.org #设置NTP服务器为亚洲地区的服务器

设置后的配置文件路径:
老版本,文件路径:/data/system/users/0/settings_global.xml
文件路径:/data/misc/apexdata/com.android.wifi/MuMuWifiConfigStore.xml
https://www.cnblogs.com/wutou/p/18175319

飞行模式开启后,就可以发送广播,来更改飞行模式的状态:

adb shell settings put global airplane_mode_on 1
adb shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true

飞行模式关闭:

adb shell settings put global airplane_mode_on 0
adb shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false
adb shell settings put global window_animation_scale 0 #关闭窗口动画缩放
adb shell settings put global transition_animation_scale 0 # 关闭过渡动画缩放:
adb shell settings put global animator_duration_scale 0 #关闭动画持续时间缩放

5-9-3.adb shell settings delete

adb shell settings delete global http_proxy #取消代理
adb shell settings delete global global_http_proxy_host #取消代理
adb shell settings delete global global_http_proxy_port #取消代理端口
adb shell settings delete global captive_portal_server #开启还原网络检查服务

5-9-4.adb shell settings list

5-9-4-1.adb shell settings list system
adb shell "settings list system | grep timeout" #获取自动锁屏时间
5-9-4-2.adb shell settings list secure
5-9-4-3.adb shell settings list global

5-9-5.adb shell settings reset

5-9-5.adb shell settings reset global
adb shell settings reset global http_proxy #代理恢复默认(取消代理)

5-10.adb shell ifconfig

获取 IP 地址

adb shell ifconfig | find “Mask”
adb shell ifconfig wlan0 #设备连着 WiFi,可以使用如下命令来查看局域网 IP
adb shell netcfg # 上面两个无结果可以用这个,查看网络连接状态

5-11.adb shell $(运行Linux命令)

adb shell "cat /sys/class/net/wlan0/address" # 获取 Mac 地址,设备不同可能地址不同
adb shell "cat /proc/cpuinfo" #获取 CPU 信息
adb shell "cat /proc/meminfo" #获取 内存信息
adb shell "cat /system/build.prop" #获取 更多硬件与系统属性
adb shell "cat /data/misc/wifi/*.conf" #查看连接过的 WiFi 密码。需要 root 权限
adb shell "date -s 20190531.131600"  #将系统日期和时间更改为 2019 年 05 月 31 日 13 点 16 分 00 秒。需要 root 权限。"
adb shell "cat /proc/net/wireless | grep wlan0 | awk '{print $3}'" #获取信号强度
adb shell "cat /proc/net/wireless | grep wlan0 | awk '{print 5}'" #获取信号质量:单位dBm
adb shell "iwconfig wlan0 | sed 's/ /\n/g' | grep -i Rate | sed 's/=/ /g'|awk '{print $2}'" #网口的传输速率:Mb/s = 1000000bps

5-12-1.老版本截屏

adb shell screencap -p /sdcard/img.png #老版本截图先保存在设备端
adb pull /sdcard/img.png # 通过pull拷贝到本地

screencap 参数:
-p 指定保存文件为 png 格式
-d display-id 指定截图的显示屏编号(有多显示屏的情况下)

5-12-2.新版本截屏

adb exec-out screencap -p > img.png  #老版本无exec-out命令,只适合于新版的截图

更详细,查看第八项

5-13.adb shell screenrecord

adb shell screenrecord /sdcard/filename.mp4

screenrecord 参数:
--size WIDTHxHEIGHT 视频的尺寸,比如 1280x720,默认是屏幕分辨率。
--bit-rate RATE 视频的比特率,默认是 4Mbps。
--time-limit TIME 录制时长,单位秒。默认录制时间和最长录制时间都是180s。
--verbose 输出更多信息。

5-14.检测设备是否已 root

adb shell

此时命令行提示符是 $ 则表示没有 root 权限,是 # 则表示已 root。

5-15.adb shell monkey

Monkey 可以生成伪随机用户事件来模拟单击、触摸、手势等操作,可以对正在开发中的程序进行随机压力测试。

adb shell monkey -p <packagename> -v 500 # 向 <packagename> 指定的应用程序发送 500 个伪随机事件

monkey 官方文档 https://developer.android.com/studio/test/monkey.html

5-16.adb shell svc

5-16-1.adb shell svc wifi

adb root
adb shell svc wifi enable #开启 WiFi。需要 root 权限。
adb shell svc wifi disable #关闭 WiFi。需要 root 权限
adb shell svc data enable/disadle #数据开关

5-17.adb shell ps

adb shell ps #查看进程

5-18.adb shell -c

-c :不进入终端的命令行执行命令

adb shell su -c setprop service.adb.tcp.port 5555 #以root用户执行,添加端口的命令

su :获取root权限
-c setprop service.adb.tcp.port 5555 :获取root命令后,执行向/system/build.prop文件中添加端口

5-19.adb shell getevent

输出所有event设备的基本信息

adb shell getevent --help #帮助
adb shell getevent #输出所有event设备的基本信息
adb shell getevent -c 10 #输出10条信息后退出
adb shell getevent -l  #将type、code、value以对应的常量名称显示
adb shell 'getevent -p grep -E "0035|0036"' #屏幕

输出格式:设备名 事件type 事件code 事件value
getevent输出的是16进制,sendevent使用的是10进制,注意转换。

5-20.adb shell sendevent

设置event设备的基本信息

adb shell sendevent --help #帮助
adb shell sendevent #设置event设备的基本信息

5-21.adb shell service

adb shell service call phone 3 #挂断电话

5-22.adb shell setenforce

selinux 使用 setenforce 命令进行设置

adb shell setenforce 0 #设置成permissive 模式
adb shell setenforce 1 #设置成enforce 模式

设置SELinux 成为permissive模式 临时关闭selinux的。在eng/userdebug版本中
注意此方法重启后失效

5-23.adb shell content

adb shell content insert --uri content://settings/system --bind name:s:accelerometer_rotation --bind value:i:0 #禁用自动旋转
adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:1 #旋转屏幕

i后面跟的不同的值代表旋转为不同的方向,取值范围为0,1,2,3
需要root权限

5-24.adb shell ip addr show

显示网络ip地址

adb shell ip addr show # 显示网络IP
adb shell ip addr show wlan0 #显示无线网卡IP
adb shell ip addr show eth0 #显示有线网卡IP

5-25.adb shell recovery

恢复出厂设置的操作

注意:这是个危险的命令,不要在手机里操作,除非你知道在干什么
注意:这是个危险的命令,不要在手机里操作,除非你知道在干什么
注意:这是个危险的命令,不要在手机里操作,除非你知道在干什么

adb shell recovery --wipe_data #恢复出厂设置的操作

5-26. adb shell 重定向shell脚本文件名

adb shell < shell_script.sh

shell_script.sh 里写的是shell命令,这样多条命令或shell就可以直接执行了

7-3.adb logcat -v

adb logcat -v <format>  指定日志输出格式
adb logcat -v brief   #默认格式,<priority>/<tag>(<pid>): <message>
adb logcat -v process #<priority>(<pid>) <message>
adb logcat -v tag  #<priority>/<tag>: <message>
adb logcat -v raw  #<message>
adb logcat -v time  #<datetime> <priority>/<tag>(<pid>): <message>
adb logcat -v threadtime #<datetime> <pid> <tid> <priority> <tag>: <message>
adb logcat -v long  #[ <datetime> <pid>:<tid> <priority>/<tag>:] <message>
adb logcat -v long ActivityManager:I *:S  #指定格式可与上面的过滤同时使用

7-4.adb logcat * : *

按某级别过滤日志则会将该级别及以上的日志输出,Android 日志的优先级如下:

V —— Verbose(最低,过滤少,输出得最多)
D —— Debug
I —— Info
W —— Warning
E —— Error
F —— Fatal
S —— Silent(最高,过滤多,啥也不输出)

示例:输出W之上的日志,W,E,F,S

adb logcat *:W

按 tag 和级别过滤日志:<filter-spec> 可以由多个 <tag>[:priority] 组成

输出 tag ActivityManager 的 I 以上级别日志,输出tag MyApp的D 以上级别日志,及其它 tag 的 S 级别日志(即屏蔽其它 tag 日志)。

adb logcat ActivityManager:I MyApp:D *:S

7-5: 获取已安装应用Activity类名

adb logcat ActivityManager:I *:s | findstr "cmp"
adb logcat ActivityManager:I *:s | findstr "pre-top-activity"

{}花括号里就是类名

类名启动设置:

adb shell am start -n com.android.settings/com.android.settings.Settings

类名关闭设置:

adb shell am force-stop com.android.settings

八、adb get-serialno

adb get-serialno #获取序列号

九、adb bugreport

adb bugreport #查看bug 报告

十、adb exec-out

执行命令并输出到本地。

10-1.adb exec-out screencap

adb exec-out screencap -p > img.png # 老版本无exec-out命令,只适合于新版的截图

十一、adb 自身管理

11-1. 启动停止服务

adb start-server #启动adb 服务,基本不会用到,因为只要设备连接正确,会自动启动adb server
adb kill-server #停止adb server
adb -P <port> start-server #指定adb server 的网络端口port (默认为5037)启动服务

11-2.系统更新

11-2-1.重启到 Recovery 模式

adb reboot recovery

在设备的 Recovery 界面上操作进入 Apply update-Apply from ADB。
注:不同的 Recovery 菜单可能与此有差异,有的是一级菜单就有 Apply update from ADB。

11-2-2.重启到 Fastboot 模式

adb reboot bootloader

11-2-3.通过 adb 上传和更新系统。

adb sideload <path-to-update.zip>

十二、命令行切换到root权限

12-1.方式一:

adb comnnect IP:端口
adb root

12-2.方式二:

adb comnnect IP:端口
adb shell

12-3.方式三:

adb comnnect IP:端口
adb shell
$su -

此时命令行提示符是 $ 则表示没有 root 权限,是 # 则表示已 root。

参考、来源:
https://blog.csdn.net/y281252548/article/details/130619040
https://zhuanlan.zhihu.com/p/605831031 (adb 详细介绍)
https://blog.csdn.net/zh6526157/article/details/129583527 (adb shell am broadcast 广播介绍)
https://blog.51cto.com/u_16213586/8478014 (adb shell -c 不登录在终端执行命令)
https://blog.csdn.net/mazhidong/article/details/79412073
http://www.taodudu.cc/news/show-6122139.html?action=onClick
https://www.jianshu.com/p/11a201e705ac
https://blog.csdn.net/userwyh/article/details/82430665
https://www.jianshu.com/p/bae933aac556
https://blog.csdn.net/fxdaniel/article/details/45846333
https://blog.csdn.net/zh6526157/article/details/132495569
https://sspai.com/post/33696
https://blog.51cto.com/u_16087831/6223245
https://blog.csdn.net/luckywang1103/article/details/76804856
https://baijiahao.baidu.com/s?id=1756775420151725732&wfr=spider&for=pc
https://blog.51cto.com/u_16175448/6833996
https://cloud.tencent.com/developer/article/1360063
https://blog.csdn.net/zh6526157/article/details/134440688 (发送一个广播来更改飞行模式的状态)
https://blog.51cto.com/u_16213430/8410476
https://www.codenong.com/25864385/
https://www.jianshu.com/p/8a52eb8771e5
《Python3网络爬虫开发实战 第2版》崔庆才 P667
https://mumu.163.com/help/20230504/35047_1086360.html#a7 (查看设备信息)
https://doc.miyun.app/android-emulator-proxy
https://mumu.163.com/help/20210513/35047_947512.html (显示当前UI窗口名、获取已安装应用Activity类名)
https://www.cnblogs.com/dengqing9393/p/7210479.html (am说明)
https://www.cnblogs.com/dengqing9393/p/7210479.html (adb 打开浏览器)
https://www.cnblogs.com/greatverve/archive/2012/02/10/android-am.html (adb 打开浏览器)
https://www.52pojie.cn/thread-1505329-1-1.html (https_proxy)
https://www.52pojie.cn/thread-1600980-1-1.html (cmd 重定向shell脚本执行)