「收藏版」AndroidADB命令总结「万字详解」

原创 橙留香Park 2022-10-05 00:05

也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大

少走了弯路,也就错过了风景,无论如何,感谢经历


本篇文章遇到排版混乱的地方,可点击文末阅读原文或前往该地址:https://orangey.blog.csdn.net/article/details/126219781

更多关于Android安全的知识,可前往:https://blog.csdn.net/ananasorangey/category11955914.html





0x01 常用的一些ADB命令

1.1 ADB 命令(主)

  • 查看当前应用的activity信息

adb shell dumpsys activity top
# 把系统中所有应用运行的四大组件都会打印出来
adb shell dumpsys >> info.txt
start info.txt

  • 查看指定包名应用的详细信息

adb shell dumpsys package xxx

或进入adb shell使用下面的命令
dumpsys package xxx
# 清空应用数据
adb shell pm clear xxx

  • 查看指定进程名或者进程id的内存信息

adb shell dumpsys meminfo xxx

  • 查看指定包名应用的数据库存储信息(包括存储的SQL语句)

adb shell dumpsys dbinfo xxx

  • 安装应用包apk文件

adb intall xxx.apk

adb install test.apk -r 覆盖安装,保留数据和缓存文件 -d 解决低版本version问题 -s 安装apk到sd卡

  • 卸载应用

adb uninstall xxx.apk

adb uninstall -k

可选参数-k的作用为卸载软件但是保留配置和缓存文件

adb shell
cd data/app
rm apk包
exit
adb uninstall apk包的主包名
adb install -r apk包

  • 删除系统应用

adb remount (重新挂载系统分区,使系统分区重新可写)
adb shell
cd system/app
rm *.apk

  • 将设备中的文件放到本地

adb pull 目标系统中的文件路径(a.txt) 本机系统要存放取出来的路径(a.txt)

  • 将本地文件放到设备中

adb push 本机系统中的文件路径(a.txt) 目标系统中要存放的路径(a.txt)

  • 截屏操作

adb shell screencap -p /sdcard/test.png
adb pull /sdcard/test.png D:\img\
start D:\img\test.png

  • 录屏操作

adb shell screenrecord /sdcard/test.mp4

  • 输入文本内容

adb shell input text 'xxx'

  • 设备的端口转发

adb forward [(远程端)协议:端口号] [(设备端)协议:端口号]
adb forward tcp:23946 tcp:23946
adb forward tcp:8700 jwdp:1786

  • 查看设备中可以被调试的应用的进程号

adb jdwp

  • 查看当前日志信息

adb logcat

用法1:adb logcat -s tag
案例: adb Logcat -s fb

用法2:adb logcat |findstr pname/pid/keyword
案例: adb Logcat |findstr cn.test.demo

或进入adb shell使用下面的命令
Logcat grep tencent

  • 非root设备中查看指定debug模式的包名应用沙盒数据

run-as cn.test.demo

  • 查看设备的进程信息,或者指定进程的线程信息

ps | grep 过滤内容
ps | grep cn.test.demo
ps -t 19977

  • 清空指定包名应用的数据

pm clear grep cn.test.demo

  • 安装设备中的apk文件

pm install /sdcard/test.apk

  • 卸载设备中的应用

pm uninstall cn.test.demo

  • 启动设备中的应用

am start -n [包(package)名]/[包名].[活动(activity)名称]
am start -n com.androidtest/com.androidtest.test

  • 启动一个服务

am startservice -n [包 (package) 名]/[包名].[服务(service)名]
am startservice -n com.androidtest2/com.androidtest.test2

  • 发送一个广播

am broadcast -a [广播动作]

  • 查看设备的ip地址

netcfg

  • 查看设备的端口号信息

netstat

  • 运行Java代码(特殊场景使用,把dx命令把dex文件转化成jar包)

app_process [运行代码目录] [运行主类]

export CLASSPATH=/data/test.jar
exec /system/bin/app_process /data/cn.test.main

  • 运行一个dex文件

dalvikvm -cp [dex文件] [运行主类]
dalvikvm -cp /data/test.dex cn. Widiankong Main

  • 查看当前应用的CPU消耗信息

top [-n/-m/-d/-s/-t]

-m // 最多显示多少个进程
-n // 刷新次数
-d // 刷新间隔时间(默认5 秒)
-s // 按哪列排序
-t // 显示线程信息而不是进程

  • 查看系统属性值

getprop [属性值名称]

  • 用aapt操作apk命令(查看apk中的信息以及编辑apk程序包)

aapt dump xmltree [apk包] [需要查看的资源文件xml ]

  • 用dexdump操作dex命令(查看dex文件的详细信息)

dexdump [ dex文件路径]

  • 查看当前进程的内存加载情况(查看当前进程的内存映射信息,比如加载了哪些so文件,dex文件等)

cat /proc/[pid]/maps

用法:cat /proc/663/maps

  • 查看进程的状态信息

cat /proc/[pid]/status

用法:cat /proc/663/status

  • 查看当前应用使用的端口号信息

cat /proc/[pid]/net/tcp/tcp6/udp/udp6

用法:cat /proc/663/net/tcp/tcp6/udp/udp6

1.2 ADB 命令(次)

  • 查看连接设备

adb devices

  • 获取手机root权限

adb root

  • 重新挂载系统分区,使系统分区重新可写

adb remount

  • 进入到手机设备Shell界面中去

adb shell

abd shell -s 模拟器编号 命令

  • 启动和关闭ADB服务

# 关闭服务
adb kill-server

# 启动服务
adb start-server

  • adb帮助命令

adb help

  • 查看bug报告

adb bugreport

  • 记录无线通讯日志

adb shell
logcat -b radio

  • 获取设备的ID和序列号

adb get-product
adb get-serialno

  • 访问数据库SQLite3

adb shell
sqlite3

  • 进入系统内指定文件夹

cd system/sd/data

#ls //列表显示当前文件夹内容
#rm -r xxx //删除名字为xxx的文件夹及其里面的所有文件
#rm xxx //删除文件xxx
#rmdir xxx //删除xxx的文件夹

  • 点亮屏幕

adb shellinput keyevent 80

  • 查看adb版本

adb version

  • 将system分区重新挂在为可读写分区,此命令在操作系统目录时很重要

adb remount

  • 重启设备,可选参数进入bootloader(刷机模式)或recovery(恢复模式)

adb reboot bootloader
adb reboot recovery

  • 杀掉某个进程,一般用于模拟某个bug复现

adb shell kill pidNumber

# 列出进程列表及其pid
adb shell ps

# 查看指定进程信息
adb shell ps -x pid

  • 查看单个应用程序的最大内存限制

adb shell getprop | grep heapgrowthlimit

得到的结果为128M: [dalvik.vm.heapgrowthlimit]: [128m]

这就是说Dalvik Heap size的最大值超过了128M,就很可能发生OOM

  • 查看sdk版本

adb shell getprop | grep version

  • 查看设备型号信息

adb shell getprop | grep product

  • 获取序列号

获取到的序列号即为adb devices列出来的序列号

adb get-serialno

  • 查看wifi密码(需要root权限)

adb shell cat data/misc/wifi/*.conf

  • 查看wifi_mac

adb shell cat /sys/class/net/wlan0/address

  • 查看后台services信息

adb shell service list

  • ADB 录制屏幕命令

adb shell screenrecord /sdcard/test.mp4

  • 打电话

adb shell am start -a android.intent.action.CALL -d tel:10086
停止应用
adb shell am force-stop package
查看当前 Activity 名称
adb shell dumpsys activity | findstr “mFocusedActivity”

  • 移动文件

adb shell mv /sdcard/1.txt /sdcard/2.text
移动同一目录下文件相当于重命名文件

  • 手机或模拟器当前屏幕进行截屏

adb shell screencap /sdcard/Test.png
adb pull /sdcard/Test.png
adb open Test.png

  • 获取手机内存使用率

adb shell dumpsys meminfo

  • 获取手机cpu占有率

adb shell top
adb shell dumpsys cpuinfo

  • 获取手机功耗

adb shell dumpsys battery

  • 查看总体的cpu占用

adb shell cat /proc/stat

  • 查看进程的cpu占用

adb shell cat /proc//stat

  • 查看总体的RAM

adb shell cat /proc/meminfo | head -n 4

  • 查看剩余的RAM

adb shell dumpsys meminfo| grep "Free RAM"

  • 查看进程的RAM

adb shell dumpsys meminfo
adb shell dumpsys meminfo

  • 开机后的总流量(字节数)

adb shell cat proc/self/net/dev

  • 获取手机上传流量

adb shell cat /proc/uid_stat/2000/tcp_snd

  • 获取手机下载流量

adb shell cat /proc/uid_stat/2000/tcp_rcv

  • 输出日志

adb logcat threadtime -b events>d:\log\events.txt

  • 打印页面的日志

adb logcat -v threadtime | grep ActivityManager

  • 启动时间

adb shell am start -W -n <某activity>

0x02 ADB常用命令总结

  • 存在多个设备/模拟器,指定单独一个设备/模拟器并进入交互式Shell

adb 基本语法格式:adb [-d|-e|-s ]

参数如下:

参数描述
-d指定当前唯一通过 USB 连接的 Android 设备为命令目标
-e指定当前唯一运行的模拟器为命令目标
-s 指定相应 serialNumber 号的设备/模拟器为命令目标

:如果有多个设备/模拟器连接,则需要命令指定目标设备。常用的是 -s 参数,设备/模拟器的serialNumber(序列号)可通过adb devices 命令获取,如下:

$ adb devices

List of devices attached
cf33328f device
emulator-5554 device
10.1.2.6:5555 device

上述案例表示电脑连接了三个设备/模拟器,输出里的cf33328f、emulator-5554 和 10.1.2.6:5555均为设备/模拟器的序列号,想连接emulator-5554模拟器,输入如下命令:

adb -s emulator-5554

adb 输出格式为[serialNumber] [state],serialNumber 即我们常说的 SN,state 有如下几种:

参数描述
offline表示设备未连接成功或无响应
device设备已连接。注意这个状态并不能标识 Android 系统已经完全启动和可操作,在设备启动过程中设备实例就可连接到 adb,但启动完毕后系统才处于可操作状态
no device没有设备/模拟器连接
List of devices attached没有设备/模拟器连接成功
List of devices attached 【序列号】 offline设备/模拟器未连接到 adb 或无响应
  • ADB 启动/停止的命令

# 启动adb
adb start-server

# adb
adb kill-server

  • 重启adbd 服务

restart adbd

# 或分开使用停止和启动命令来重启adbd服务
stop adbd
start adbd

  • ADB版本信息

adb version

  • root 权限运行 adbd

adb root

  • 指定 adb server 的网络端口

adb -P start-server

  • 查看应用列表

查看应用列表的基本命令格式:adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]

# 显示所有应用
adb shell pm list packages

# 显示系统应用
adb shell pm list packages -s

# 显示第三方应用
adb shell pm list packages -3

# 包名包含某字符串的应用,比如要查看包名包含字符串 test 的应用列表
adb shell pm list packages tesr
或使用 grep 来过滤
adb shell pm list packages | grep test

上面的参数如下:

参数名描述
默认所有应用
-f显示应用关联的 apk 文件
-d只显示 disabled 的应用
-e只显示 enabled 的应用
-s只显示系统应用
-3只显示第三方应用
-i显示应用的 installer
-u包含已卸载应用
包名包含 字符串
  • ADB安装APK

格式:adb install [-lrtsdg]

adb install 安装步骤如下:

1)push apk 文件到 /data/local/tmp
2)调用 pm install 安装
3)删除 /data/local/tmp 下的对应 apk 文件

参数及含义如下:

参数含义
-l将应用安装到保护目录 /mnt/asec
-r允许覆盖安装
-t允许安装 AndroidManifest.xml里 application 指定android:testOnly="true"的应用
-s将应用安装到 sdcard
-d允许降级覆盖安装
-g授予所有运行时权限
–abi abi-identifier为特定 ABI 强制安装 apk,abi-identifier可以是 armeabi-v7a、arm64-v8a、v86、x86_64

常见APK安装失败输出代码、含义及可能的解决办法如下:

输出含义解决办法
INSTALL_FAILED_ALREADY_EXISTS应用已经存在,或卸载了但没卸载干净adb install 时使用 -r 参数,或者先adb uninstall 再安装
INSTALL_FAILED_INVALID_APK无效的 APK 文件
INSTALL_FAILED_INVALID_URI无效的 APK 文件名确保 APK 文件名里无中文
INSTALL_FAILED_INSUFFICIENT_STORAGE空间不足清理空间
INSTALL_FAILED_DUPLICATE_PACKAGE已经存在同名程序
INSTALL_FAILED_NO_SHARED_USER请求的共享用户不存在
INSTALL_FAILED_UPDATE_INCOMPATIBLE以前安装过同名应用,但卸载时数据没有移除;或者已安装该应用,但签名不一致先 adb uninstall  再安装
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE请求的共享用户存在但签名不一致
INSTALL_FAILED_MISSING_SHARED_LIBRARY安装包使用了设备上不可用的共享库
INSTALL_FAILED_REPLACE_COULDNT_DELETE替换时无法删除
INSTALL_FAILED_DEXOPTdex 优化验证失败或空间不足
INSTALL_FAILED_OLDER_SDK设备系统版本低于应用要求
INSTALL_FAILED_CONFLICTING_PROVIDER设备里已经存在与应用里同名的content provider
INSTALL_FAILED_NEWER_SDK设备系统版本高于应用要求
INSTALL_FAILED_TEST_ONLY应用是 test-only 的,但安装时没有指定 -t 参数
INSTALL_FAILED_CPU_ABI_INCOMPATIBLE包含不兼容设备 CPU 应用程序二进制接口的 native code
INSTALL_FAILED_MISSING_FEATURE应用使用了设备不可用的功能
INSTALL_FAILED_CONTAINER_ERROR1. sdcard 访问失败;
2. 应用签名与 ROM 签名一致,被当作内置应用
1. 确认 sdcard 可用,或者安装到内置存储
2. 打包时不与 ROM 使用相同签名
INSTALL_FAILED_INVALID_INSTALL_LOCATION1. 不能安装到指定位置
2. 应用签名与 ROM 签名一致,被当作内置应用
1. 切换安装位置,添加或删除 -s 参数
2. 打包时不与 ROM 使用相同签名
INSTALL_FAILED_MEDIA_UNAVAILABLE安装位置不可用一般为 sdcard,确认 sdcard 可用或安装到内置存储
INSTALL_FAILED_VERIFICATION_TIMEOUT验证安装包超时
INSTALL_FAILED_VERIFICATION_FAILURE验证安装包失败
INSTALL_FAILED_PACKAGE_CHANGED应用与调用程序期望的不一致
INSTALL_FAILED_UID_CHANGED以前安装过该应用,与本次分配的 UID 不一致清除以前安装过的残留文件
INSTALL_FAILED_VERSION_DOWNGRADE已经安装了该应用更高版本使用 -d 参数
INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE已安装target SDK支持运行时权限的同名应用,要安装的版本不支持运行时权限
INSTALL_PARSE_FAILED_NOT_APK指定路径不是文件,或不是以 .apk 结尾
INSTALL_PARSE_FAILED_BAD_MANIFEST无法解析的 AndroidManifest.xml 文件
INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION解析器遇到异常
INSTALL_PARSE_FAILED_NO_CERTIFICATES安装包没有签名
INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES已安装该应用,且签名与 APK 文件不一致先卸载设备上的该应用,再安装
INSTALL_PARSE_FAILED_CERTIFICATE_ENCODING解析 APK 文件时遇到 CertificateEncodingException
INSTALL_PARSE_FAILED_BAD_PACKAGE_NAMEmanifest 文件里没有或者使用了无效的包名
INSTALL_PARSE_FAILED_BAD_SHARED_USER_IDmanifest 文件里指定了无效的共享用户 ID
INSTALL_PARSE_FAILED_MANIFEST_MALFORMED解析 manifest 文件时遇到结构性错误
INSTALL_PARSE_FAILED_MANIFEST_EMPTY在 manifest 文件里找不到找可操作标签(instrumentation 或 application)
INSTALL_FAILED_INTERNAL_ERROR因系统问题安装失败
INSTALL_FAILED_USER_RESTRICTED用户被限制安装应用在开发者选项里将「USB安装」打开,如果已经打开了,那先关闭再打开
INSTALL_FAILED_DUPLICATE_PERMISSION应用尝试定义一个已经存在的权限名称
INSTALL_FAILED_NO_MATCHING_ABIS应用包含设备的应用程序二进制接口不支持的native code
INSTALL_CANCELED_BY_USER应用安装需要在设备上确认,但未操作设备或点了取消在设备上同意安装
INSTALL_FAILED_ACWF_INCOMPATIBLE应用程序与设备不兼容
INSTALL_FAILED_TEST_ONLYAPK 文件是使用Android Studio 直接 RUN 编译出来的文件通过 Gradle 的 assembleDebugassembleRelease 重新编译,或者Generate Signed APK
does not contain AndroidManifest.xml无效的 APK 文件
is not a valid zip file无效的 APK 文件
Offline设备未连接成功先将设备与 adb 连接成功
unauthorized设备未授权允许调试
error: device not found没有连接成功的设备先将设备与 adb 连接成功
protocol failure设备已断开连接先将设备与 adb 连接成功
Unknown option: -sAndroid 2.2 以下不支持安装到 sdcard不使用 -s 参数
No space left on device空间不足清理空间
Permission denied … sdcard …sdcard 不可用
signatures do not match the previously installed version; ignoring!已安装该应用且签名不一致先卸载设备上的该应用,再安装
  • ADB卸载应用程序

命令格式如下:

# 表示应用的包名,-k 参数可选,表示卸载应用但保留数据和缓存目录
adb uninstall [-k]

adb uninstall android.uid.sysytem

  • ADB清除应用数据与缓存

命令格式如下:

# 表示应用名包,这条命令的效果相当于在设置里的应用信息界面点击了「清除缓存」和「清除数据」
adb shell pm clear

adb shell pm clear android.uid.sysytem

  • 查看当前前台 Activity

adb shell dumpsys activity activities | grep mResumedActivity

adb shell dumpsys activity activities | findstr mResumedActivity

adb shell "dumpsys activity activities | grep mResumedActivity"

  • 查看正在运行的 Services

命令格式如下:

# 参数不是必须的,指定 表示查看与某个包名相关的 Services,不指定表示查看所有 Services
adb shell dumpsys activity services []

  • 查看应用详细信息

输出中包含很多信息,包括Activity Resolver Table、Registered ContentProviders、包名、userId、安装后的文件资源代码等路径、版本信息、权限信息和授予状态、签名版本信息等

命令格式如下:

adb shell dumpsys package

  • ADB查看应用安装路径

命令格式如下:

adb shell pm path

  • 启动应用/调起Activity(指定Activity名称启动)

主要是使用am 命令,常用的  如下:

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

参数很灵活,和写 Android 程序时代码里的 Intent 相对应

用于决定 intent 对象的选项如下:

参数含义
-a 指定 action,比如android.intent.action.VIEW
-c 指定 category,比如android.intent.category.APP_CONTACTS
-n 指定完整 component 名,用于明确指定启动哪个 Activity,如 com.example.app/.ExampleActivity

 里还能带数据,就像写代码时的 Bundle 一样:

参数含义
--esn null 值(只有 key 名)
```-e--es ```
--ez boolean 值
--ei integer 值
--el long 值
--ef float 值
--eu URI
--ecn component name
--eia [,integer 数组
--ela [,long 数组

命令格式如下:

adb shell am start [options]

# 调起微信主界面
adb shell am start -n com.tencent.mm/.ui.LauncherUI

# 表示调起 org.mazhuang.boottimemeasure/.MainActivity 并传给它 string 数据键值对 toast - hello, world
adb shell am start -n org.mazhuang.boottimemeasure/.MainActivity --es "toast" "hello, world"

  • 启动应用/调起Activity(不指定Activity名称启动【启动主Activity】)

命令格式如下:

adb shell monkey -p -c android.intent.category.LAUNCHER

# 调起微信主界面
adb shell monkey -p com.tencent.mm -c android.intent.category.LAUNCHER 1

  • ADB调起Service

命令格式如下:

adb shell am startservice [options]

# 调起微信的某 Service
adb shell am startservice -n com.tencent.mm/.plugin.accountsync.model.AccountAuthenticatorService

  • ADB停止Service

命令格式如下:

adb shell am stopservice [options]

  • ADB发送广播

命令格式如下:既能发送系统预定义的广播,也能发送自定义广播

adb shell am broadcast [options]

# 向所有组件广播 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

如下是部分系统预定义广播及正常触发时机:

action触发时机
android.net.conn.CONNECTIVITY_CHANGE网络连接发生变化
android.intent.action.SCREEN_ON屏幕点亮
android.intent.action.SCREEN_OFF屏幕熄灭
android.intent.action.BATTERY_LOW电量低,会弹出电量低提示框
android.intent.action.BATTERY_OKAY电量恢复了
android.intent.action.BOOT_COMPLETED设备启动完毕
android.intent.action.DEVICE_STORAGE_LOW存储空间过低
android.intent.action.DEVICE_STORAGE_OK存储空间恢复
android.intent.action.PACKAGE_ADDED安装了新的应用
android.net.wifi.STATE_CHANGEWiFi 连接状态发生变化
android.net.wifi.WIFI_STATE_CHANGEDWiFi 状态变为启用/关闭/正在启动/正在关闭/未知
android.intent.action.BATTERY_CHANGED电池电量发生变化
android.intent.action.INPUT_METHOD_CHANGED系统输入法发生变化
android.intent.action.ACTION_POWER_CONNECTED外部电源连接
android.intent.action.ACTION_POWER_DISCONNECTED外部电源断开连接
android.intent.action.DREAMING_STARTED系统开始休眠
android.intent.action.DREAMING_STOPPED系统停止休眠
android.intent.action.WALLPAPER_CHANGED壁纸发生变化
android.intent.action.HEADSET_PLUG插入耳机
android.intent.action.MEDIA_UNMOUNTED卸载外部介质
android.intent.action.MEDIA_MOUNTED挂载外部介质
android.os.action.POWER_SAVE_MODE_CHANGED省电模式开启
  • ADB强制停止应用

命令格式如下:

adb shell am force-stop

  • ADB收紧内存

命令格式如下:

adb shell am send-trim-memory

# HOME 键
adb shell input keyevent 3

level:
1)HIDDEN
2)RUNNING_MODERATE
3)BACKGROUND
4)RUNNING_LOW
5)MODERATE
6)RUNNING_CRITICAL
7)COMPLETE

# 表示向 pid=986 的进程,发出 level=RUNNING_LOW 的收紧内存命令
adb shell am send-trim-memory 986 RUNNING_LOW

  • ADB复制设备里的文件到电脑

命令格式如下:

adb pull <设备里的文件路径> [电脑上的目录]

  • ADB复制电脑里的文件到设备

命令格式如下:

adb push <电脑上的文件路径> <设备里的目录>

  • ADB模拟按键/输入

在 adb shell 里有个很实用的命令叫 input,input 命令的完整 help 信息如下:

Usage: input [] [...]

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

The commands and default sources are:
text <string> (Default: touchscreen)
keyevent [--longpress] ... (Default: keyboard)
tap (Default: touchscreen)
swipe [duration(ms)] (Default: touchscreen)
press (Default: trackball)
roll (Default: trackball)

使用adb shell input keyevent 命令,不同的 keycode 能实现不同的功能,完整的 keycode 列表详见 KeyEvent,部分内容如下:

keycode含义
3HOME 键
4返回键
5打开拨号应用
6挂断电话
24增加音量
25
26电源键
27拍照(需要在相机应用里)
64打开浏览器
82菜单键
85播放/暂停
86停止播放
87播放下一首
88播放上一首
122移动光标到行首或列表顶部
123移动光标到行末或列表底部
126恢复播放
127暂停播放
164静音
176打开系统设置
187切换应用
207打开联系人
208打开日历
209打开音乐
210打开计算器
220降低屏幕亮度
221提高屏幕亮度
223系统休眠
224点亮屏幕
231打开语音助手
276如果没有 wakelock 则让系统休眠
  • ADB显示Android 日志

Android 系统的日志分为两部分,底层的 Linux 内核日志输出到/proc/kmsg,Android 的日志输出到 /dev/log

命令格式如下:

[adb] logcat [

按级别过滤日志:

Android 的日志分为如下几个优先级(priority):
1)V :Verbose(最低,输出得最多)
2)D :Debug
3)I : Info
4)W :Warning
5)E : Error
6)F : Fatal
7)S :Silent(最高,啥也不输出)
按某级别过滤日志则会将该级别及以上的日志输出

# 比如如下命令会将Warning、Error、Fatal 和 Silent 日志输出
adb logcat *:W

按 tag 和级别过滤日志:

# 可以由多个 [:priority] 组成
# 下面表示输出 tag ActivityManager 的 Info 以上级别日志,输出 tag MyApp 的 Debug 以上级别日志,及其它 tag 的 Silent 级别日志(即屏蔽其它 tag 日志)
adb logcat ActivityManager:I MyApp:D *:S

日志格式:可以用adb logcat -v  选项指定日志输出格式

日志支持按以下几种
1)brief默认格式。格式为:/():
示例:D/HeadsetStateMachine( 1785): Disconnected process message: 10, size: 0

2)process格式为:()
示例:D( 1785) Disconnected process message: 10, size: 0 (HeadsetStateMachine)

3)tag格式为:/:
示例:D/HeadsetStateMachine: Disconnected process message: 10, size: 0

4)raw格式为:
示例:Disconnected process message: 10, size: 0

5)time格式为: /():
示例:08-28 22:39:39.974 D/HeadsetStateMachine( 1785): Disconnected process message: 10, size: 0

6)threadtime格式为: :
示例:08-28 22:39:39.974 1785 1832 D HeadsetStateMachine: Disconnected process message: 10, size: 0

7long格式为:[ : / ]
示例:[ 08-28 22:39:39.974 1785: 1832 D/HeadsetStateMachine ] Disconnected process message: 10, size: 0

# 指定格式可与上面的过滤同时使用,如下:
adb logcat -v long ActivityManager:I *:S

  • ADB清空日志

adb logcat -c

  • ADB显示内核日志

adb shell dmesg

  • ADB查看设备型号

adb shell getprop ro.product.model

  • ADB查看设备android_id

adb shell settings get secure android_id

  • ADB查看设备IMEI

# 在 Android 4.4 及以下版本可通过如下命令获取 IMEI,其中的 Device ID 就是 IMEI:
adb shell dumpsys iphonesubinfo

# 在 Android 5.0 及以上版本里这个命令输出为空,得通过其它方式获取了(需要 root 权限),把里面的有效内容提取出来就是 IMEI :
adb shell
su
service call iphonesubinfo 1

  • ADB查看Android 系统版本

adb shell getprop ro.build.version.release

  • ADB查看IP 地址

手动查看IP地址:「设置」-「关于手机」-「状态信息」-「IP地址」,下面是通过ADB查看IP地址

adb shell ifconfig

# 网络连接名称、启用状态、IP 地址和 Mac 地址等信息
adb shell netcfg

  • ADB 查看Mac 地址

adb shell cat /sys/class/net/wlan0/address

  • ADB查看CPU 信息

adb shell cat /proc/cpuinfo

  • ADB查看内存信息

# 注意,在命令执行后展示的信息中MemTotal 就是设备的总内存,MemFree 是当前空闲内存
adb shell cat /proc/meminfo

  • ADB查看更多硬件与系统属性

adb shell cat /system/build.prop

# 或通过 adb shell getprop <属性名>,比如查看SDK版本
adb shell getprop ro.build.version.sdk

部分系统属性如下:

属性名含义
ro.build.version.sdkSDK 版本
ro.build.version.releaseAndroid 系统版本
ro.build.version.security_patchAndroid 安全补丁程序级别
ro.product.model型号
ro.product.brand品牌
ro.product.name设备名
ro.product.board处理器型号
ro.product.cpu.abilistCPU 支持的 abi 列表
persist.sys.isUsbOtgEnabled是否支持 OTG
dalvik.vm.heapsize每个应用程序的内存上限
ro.sf.lcd_density屏幕密度

:一些定制的 ROM 可能修改过 CPU 支持的 abi 列表的属性名,如果用 ro.product.cpu.abilist 属性名查找不到,尝试如下命令:

adb shell cat /system/build.prop | grep ro.product.cpu.abi

  • ADB关闭 USB 调试模式

注:用命令关闭后,只能手动恢复,步骤:「设置」-「开发者选项」-「Android 调试」

adb shell settings put global adb_enabled 0

  • 允许访问非 SDK API

adb shell settings put global hidden_api_policy_pre_p_apps 1
adb shell settings put global hidden_api_policy_p_apps 1

数字的含义如下:

含义
0禁止检测非 SDK 接口的调用。该情况下,日志记录功能被禁用,并且令strict mode API,即 detectNonSdkApiUsage() 无效,不推荐
1仅警告——允许访问所有非 SDK 接口,但保留日志中的警告信息,可继续使用strick mode API
2禁止调用深灰名单和黑名单中的接口
3禁止调用黑名单中的接口,但允许调用深灰名单中的接口
  • 禁止访问非 SDK API

adb shell settings delete global hidden_api_policy_pre_p_apps
adb shell settings delete global hidden_api_policy_p_apps

  • ADB显示隐藏状态栏和导航栏

adb shell settings put global policy_control

 可由如下几种键及其对应的值组成,格式为 =:=,如下:

key含义
immersive.full同时隐藏
immersive.status隐藏状态栏
immersive.navigation隐藏导航栏
immersive.preconfirms?

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

value含义
apps所有应用
*所有界面
packagename指定应用
-packagename排除指定应用

例如表示设置在所有界面下都同时隐藏状态栏和导航栏:

# 表示设置在包名为 com.package1 和 com.package2 的应用里隐藏状态栏,在除了包名为 com.package3 的所有应用里隐藏导航栏
adb shell settings put global policy_control immersive.full=*

  • ADB屏幕截图

# 先截图保存到设备的/sdcard/下
adb exec-out screencap -p > /sdcard/test.png
# 将 png 文件导出到电脑
adb pull /sdcard/test.png

adb shell screencap -h查看 screencap 命令的帮助信息,下面是两个有意义的参数及含义:

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

:如果指定文件名以 .png 结尾时可以省略 -p 参数;否则需要使用 -p 参数。如果不指定文件名,截图文件的内容将直接输出到 stdout

其它方式截图并保存到电脑的方法:

# Linux 和 Windows
adb shell screencap -p | sed "s/\r$//" > test.png

# Mac OS X
adb shell screencap -p | gsed "s/\r$//" > test.png

:使用其它方式截图并保存到电脑的方法,需要用到 gnu sed 命令,在 Linux 下直接就有,在 Windows 下 Git 安装目录的 bin 文件夹下也有,并将sed.exe 所在文件夹添加到 PATH 环境变量里;Mac 下使用系统自带的 sed 命令会报错,需要安装 gnu-sed,使用该命令进行安装brew install gnu-sed

  • ADB录制屏幕

# 录制屏幕以 mp4 格式保存到 /sdcard,默认录制时间和最长录制时间都是 180
adb shell screenrecord /sdcard/filename.mp4

# 导出mp4到电脑
adb pull /sdcard/filename.mp4

adb shell screenrecord --help 查看 screenrecord 命令的帮助信息,下面是常见参数及含义:

参数含义
–size WIDTHxHEIGHT视频的尺寸,比如 1280x720,默认是屏幕分辨率
–bit-rate RATE视频的比特率,默认是 4Mbps
–time-limit TIME录制时长,单位秒
–verbose输出更多信息
  • ADB重新挂载 system 分区为可写

:需要root权限,因为/system 分区默认挂载为只读,但有些操作比如给 Android 系统添加命令、删除自带应用等需要对 /system 进行写操作,所以需要重新挂载它为可读写

adb remount

# 或使用如下步骤:
1)进入 shell 并切换到 root 用户权限,执行命令:adb shell su
2)查看当前分区挂载情况,执行命令:mount | grep system 会输出如下内容:
/dev/block/platform/mstar_mci.0/by-name/system /system ext4 ro,relatime,data=ordered 0 0
设备:/dev/block/platform/mstar_mci.0/by-name/system
挂载点:/system
权限:ro,即只读

3)以读写方式(rw)重新挂载/system分区,执行命令:mount -o remount,rw /dev/block/platform/mstar_mci.0/by-name/system /system 或mount -o remount /system

  • ADB查看连接过的 WiFi 密码

# 需Root 权限,全部命令执行完后展示的内容中ssid 即为 WLAN 设置里看到的名称,psk 为密码,key_mgmt 为安全加密方式
adb shell
su
cat /data/misc/wifi/*.conf

需要注意 Android O 或以后,WiFi 密码保存的地址有变化,是在 WifiConfigStore.xml 里面,如下:

# 需Root 权限,全部命令执行完后展示的内容中的 ConfigKey为WiFi 名字、PreSharedKey为WiFi 密码
adb shell
su
cat /data/misc/wifi/WifiConfigStore.xml

  • ADB设置系统日期和时间

# 需Root 权限,如下表示将系统日期和时间更改为 20220821131100
adb shell
su
date -s 20220821.131100

  • ADB重启设备

adb reboot

  • ADB检测设备是否已 root

adb shell
su

  • ADB使用 Monkey 进行压力测试

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

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

  • ADB开启WiFi

adb root
adb shell svc wifi enable

  • ADB关闭WiFi

adb root
adb shell svc wifi disable

  • ADB查看GLIBC版本

lld --version

  • 用 adb forward tcp:port jdwp:在PC上做端口映射, 然后在PC上通过端口连接手机,进行调试。命令如下:

jdb -attach locaohost:8000
jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8000

  • ADB重启到 Recovery 模式

adb reboot recovery

  • ADB从 Recovery 重启到 Android

adb reboot

  • ADB重启到 Fastboot 模式

adb reboot bootloader

  • ADB通过 sideload 更新系统

如果下载了 Android 设备对应的系统更新包到电脑上,那么可通过 adb 来完成更新,以 Recovery 模式下更新为例:

1)重启到 Recovery 模式。命令:adb reboot recovery
2)在设备的 Recovery 界面上操作进入 Apply update–Apply from ADB
注:不同的 Recovery 菜单可能与此有差异,有的是一级菜单就有 Apply update from ADB
3)通过 adb 上传和更新系统。命令:adb sideload

  • ADB启用 SELinux

adb root
adb shell setenforce 1

  • ADB禁用 SELinux

adb root
adb shell setenforce 0

:遇到权限问题,在logcat或者kernel的log中一定会打印avc denied提示缺少什么权限,通过命令过滤出所有的avc denied,再根据这些log进行排查:

cat /proc/kmsg | grep avc

dmesg | grep avc

  • ADB启用 dm_verity

adb root
adb enable-verity

  • ADB禁用 dm_verity

adb root
adb disable-verity

fastboot --disable-verity flash vbmeta vbmeta.img

  • ADB设置全局代理

# adb shell settings put global http_proxy 代理IP地址:端口号
adb shell settings put global http_proxy 192.168.137.1:8080
adb shell settings put global https_proxy 192.168.137.1:8080

  • ADB关闭代理(无需重启)

adb shell settings put global http_proxy :0

  • ADB移除代理(需要重启)

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 reboot

  • ADB查看进程

adb shell ps

进程各列含义如下:

列名含义
USER所属用户
PID进程 ID
PPID父进程 ID
NAME进程名
  • ADB查看实时资源占用情况

adb shell top

top命令展示内容的各列含义如下:

列名含义
PID进程 ID
PR优先级
CPU%当前瞬间占用 CPU 百分比
S进程状态(R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
#THR线程数
VSSVirtual Set Size虚拟耗用内存(包含共享库占用的内存)
RSSResident Set Size 实际使用物理内存(包含共享库占用的内存)
PCY调度策略优先级,SP_BACKGROUND/SPFOREGROUND
UID进程所有者的用户 ID
NAME进程名

top 命令还支持一些命令行参数,详细用法如下:

Usage: 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查看进程 UID

# adb shell dumpsys package | grep userId=
$ adb shell dumpsys package cn.test.main | grep userId=

# 通过 ps 命令找到对应进程的 pid 之后 adb shell cat /proc//status | grep Uid
$ ps
$ cat /proc/28635/status | grep Uid

  • 其它一些ADB常用的Linux shell 命令

命令功能
cat显示文件内容
cd切换目录
chmod改变文件的存取模式/访问权限
df查看磁盘空间使用情况
grep过滤输出
kill杀死指定 PID 的进程
ls列举目录内容
mount挂载目录的查看和管理
mv移动或重命名文件
ps查看正在运行的进程
rm删除文件
top查看进程的资源占用情况

参考链接

https://cloud.tencent.com/developer/article/1797357

https://zhuanlan.zhihu.com/p/43731848

https://github.com/android/platform_frameworks_base/blob/master/core%2Fjava%2Fandroid%2Fcontent%2Fpm%2FPackageManager.java

https://developer.android.com/studio/command-line/adb.html

https://developer.android.com/studio/command-line/shell.html

https://developer.android.com/studio/command-line/logcat.html

https://zmywly8866.github.io/2015/01/24/all-adb-command.html

https://github.com/ZQiang94/StudyRecords/blob/master/other/src/main/java/com/other/adb 命令行的使用记录.md

https://www.jianshu.com/p/860bc2bf1a6a

https://stackoverflow.com/questions/27002663/adb-shell-dumpsys-iphonesubinfo-not-working-since-android-5-0-lollipop

http://yifeiyuan.me/2016/06/30/ADB命令整理/

http://blog.csdn.net/kittyboy0001/article/details/38562515

https://cabins.github.io/2016/03/25/UseAdbLikeAPro-2/


你以为你有很多路可以选择,其实你只有一条路可以走



橙留香Park 橙留香来自一位三流剑客之乡,担任威胁猎手,脑子不会转弯,属于安全特学脑。橙留香同学[小菜鸟],定期分享从零入门车联网安全(包括基础知识储备)技术。只为你呈现有价值的信息,专注于车联网安全领域之Android终端反入侵技术研究。
评论 (0)
  • 文/Leon编辑/cc孙聪颖‍在新能源汽车赛道的残酷洗牌中,威马、爱驰等数十个品牌黯然退场,极越、哪吒汽车也深陷经营困局,“跨界造车” 早已褪去曾经的光环,成为吞噬企业资金与精力的风险泥潭,尤其对上市公司而言,稍有不慎便会被拖入业绩泥沼。当行业共识已清晰显现 —— 新能源汽车市场这片红海正上演着惨烈的生存之战,石头科技创始人昌敬却逆势入局,掌舵极石汽车,其押注造车的抉择,正让本就面临挑战的石头科技主业雪上加霜。2025 年 4 月中旬,昌敬突然清空微博、抖音等社交媒体账号的举动,迅速引爆舆论场。
    华尔街科技眼 2025-05-09 20:53 15浏览
  • 1.概述MYD-YG2LX采用瑞萨RZ/G2L作为核心处理器,该处理器搭载双核Cortex-A55@1.2GHz+Cortex-M33@200MHz处理器,其内部集成高性能3D加速引擎Mail-G31 GPU(500MHz)和视频处理单元(支持H.264硬件编解码),16位的DDR4-1600 / DDR3L-1333内存控制器、千兆以太网控制器、USB、CAN、SD卡、MIPI-CSI等外设接口,在工业、医疗、电力等行业都得到广泛的应用。米尔基于瑞萨RZ/G2L开发板本文主要介绍基于MYD-Y
    米尔电子嵌入式 2025-05-09 17:38 15浏览
  • 在印度与巴基斯坦的军事对峙情境下,歼10C的出色表现如同一颗投入平静湖面的巨石,激起层层涟漪,深刻印证了“质量大于数量”这一铁律。军事领域,技术优势就是决定胜负的关键钥匙。歼10C凭借先进的航电系统、强大的武器挂载能力以及卓越的机动性能,在战场上大放异彩。它能够精准捕捉目标,迅速发动攻击,以一敌多却毫不逊色。与之形成鲜明对比的是,单纯依靠数量堆砌的军事力量,在面对先进技术装备时,往往显得力不从心。这一现象绝非局限于军事范畴,在当今社会的各个领域,“质量大于数量”都已成为不可逆转的趋势。在科技行业
    curton 2025-05-11 19:09 149浏览
  •         信创产业含义的“信息技术应用创新”一词,最早公开信息见于2019年3月26日,在江苏南京召开的信息技术应用创新研讨会。本次大会主办单位为江苏省工业和信息化厅和中国电子工业标准化技术协会安全可靠工作委员会。        2019年5月16日,美国将华为列入实体清单,在未获得美国商务部许可的情况下,美国企业将无法向华为供应产品。       2019年6
    天涯书生 2025-05-11 10:41 87浏览
  • 行车记录仪是长这个样子的,如下图。从前面拆去玻璃挡板,可以清晰的看见里面的部件,5个按键电路板,液晶显示屏,摄像头,喇叭,电池包,还有一块主电路板。液晶显示屏正面,如下图。液晶显示屏背面,如下图。喇叭,如下图。5个按键的电路板,MENU,DOWN,POWER,UP,OK总共5个按键功能,导线连接到主电路板上,如下图。电池包,303040聚合物锂电池,3.7V,300mAH,如下图。如下图。摄像头,如下图。拿去摄像头外壳,如下图。分离广角聚集镜头和PCB板,如下图。广角聚焦镜头,具体结构如下图。P
    liweicheng 2025-05-09 22:50 16浏览
  • 蓝牙耳机是长这个样子,如下图。背部图,如下图。拆开L耳的一侧,有NFC和电池包(501230 3.7V 150mAh)如下图。电池包(501230 3.7V 150mAh)如下图。NFC正面,如下图。NFC背面,如下图。如何理解NFC的工作原理呢,搜集一下相关的资料,如下图。拆开R耳的一侧,PCB正面,如下图。PCB背面,如下图。有两组红黑的线,一组连接到了喇叭,另一组连接到了MIC头上,MIC头参数如下图。蓝牙模块(CSR 8635),有蛇形PCB走线做成天线,节约了天线成本,如下图。该IC介
    liweicheng 2025-05-10 00:45 11浏览
  • 【拆解】+CamFi卡菲单反无线传输器拆解 对于单反爱好者,想要通过远程控制自拍怎么办呢。一个远程连接,远程控制相机拍摄的工具再合适不过了。今天给大伙介绍的是CamFi卡菲单反无线传输器。 CamFi 是专为数码单反相机打造的无线传输控制器,自带的 WiFi 功能(无需手机流量),不但可通过手机、平板、电脑等设备远程连接操作单反相机进行拍摄,而且还可实时传输相机拍摄的照片到 iPad 和电视等大屏设备进行查看和分享。 CamFi 支持大部分佳能和尼康单反相机,内置可充电锂离子电池,无需相机供电。
    zhusx123 2025-05-11 14:14 28浏览
  • 体积大小:14*11*2.6CM,电气参数:输入100V-240V/10A,输出16V24A。PCB 正面如下图。PCB 背面如下图。根据实际功能可以将PCB分成几部分:EMI滤波,PFC电路,LLC电路。EMI滤波区域,两级共模电感,LN各用了保险丝加压敏电阻,继电器(HF32FV-G)用来切除NTC的,为了提高效率点,如下图。PFC电路区域,如下图。LLC电路区域,如下图。详细分析一下该电源用的主要IC还有功率器件。AC侧采用了两颗整流桥进行并联,器件增加电流应力,如下图。共模电感都有放电针
    liweicheng 2025-05-10 20:03 16浏览
  • 【拆解】+自动喷香机拆解 家里之前买了从PDD买了一个小型自动喷香机放在厕所里。来增加家里的温馨感,这东西看着确实小巧,精致。可是这东西吧,耗电就是快,没过几天就没电了。今个就让我拆开看看什么在捣鬼。如下是产品的实物和宣传图: 由于螺丝孔太小和限位很深。对于我的螺丝刀套装没用。只能使用那种螺丝刀细头,同时又长的小螺丝刀进行拆解 拧下三颗螺丝钉,用一字螺丝刀撬开外壳,内部结构就呈现在眼前。 内部构造相当简单,部件没多少。就是锂电池供电,通过MCU实现按键控制,段码屏控制,LE
    zhusx123 2025-05-10 19:55 21浏览
  • 在 AI 浪潮席卷下,厨电行业正经历着深刻变革。AWE 2025期间,万得厨对外首次发布了wan AiOS 1.0组织体超智能系统——通过AI技术能够帮助全球家庭实现从健康检测、膳食推荐,到食材即时配送,再到一步烹饪、营养总结的个性化健康膳食管理。这一创新之举并非偶然的个案,而是整个厨电行业大步迈向智能化、数字化转型浪潮的一个关键注脚,折射出全行业对 AI 赋能的热切渴求。前有标兵后有追兵,万得厨面临着高昂的研发成本与技术迭代压力,稍有懈怠便可能被后来者赶
    用户1742991715177 2025-05-11 22:44 28浏览
  • ‌磁光克尔效应(Magneto-Optic Kerr Effect, MOKE)‌ 是指当线偏振光入射到磁性材料表面并反射后,其偏振状态(偏振面旋转角度和椭偏率)因材料的磁化强度或方向发生改变的现象。具体表现为:1、‌偏振面旋转‌:反射光的偏振方向相对于入射光发生偏转(克尔旋转角 θK)。2、‌椭偏率变化‌:反射光由线偏振变为椭圆偏振(克尔椭偏率 εK)。这一效应直接关联材料的磁化状态,是表征磁性材料(如铁磁体、反铁磁体)磁学性质的重要非接触式光学探测手段,广泛用于
    锦正茂科技 2025-05-12 11:02 28浏览
  •   定制软件开发公司推荐清单   在企业数字化转型加速的2025年,定制软件开发需求愈发多元复杂。不同行业、技术偏好与服务模式的企业,对开发公司的要求大相径庭。以下从技术赛道、服务模式及行业场景出发,为您提供适配的定制软件开发公司推荐及选择建议。   华盛恒辉科技有限公司:是一家专注于高端软件定制开发服务和高端建设的服务机构,致力于为企业提供全面、系统的开发制作方案。在部队政企开发、建设到运营推广领域拥有丰富经验,在教育,工业,医疗,APP,管理,商城,人工智能,部队软件、工业软件、数字化转
    华盛恒辉l58ll334744 2025-05-12 15:55 14浏览
  • 递交招股书近一年后,曹操出行 IPO 进程终于迎来关键节点。从 2024 年 4 月首次递表,到 2025 年 4 月顺利通过中国证监会境外发行上市备案,并迅速更新招股书。而通过上市备案也标志着其赴港IPO进程进入实质性推进阶段,曹操出行最快有望于2025年内完成港股上市,成为李书福商业版图中又一关键落子。行路至此,曹操出行面临的挑战依然不容忽视。当下的网约车赛道,早已不是当年群雄逐鹿的草莽时代,市场渐趋饱和,竞争近乎白热化。曹操出行此时冲刺上市,既是背水一战,也是谋篇布局。其招股书中披露的资金
    用户1742991715177 2025-05-10 21:18 25浏览
  • 在工业自动化领域中,PLC(可编程逻辑控制器)和 DCS(分布式控制系统)是两种最为常见的控制技术。它们凭借着高可靠性、高灵活性与高自动化程度等显著优势,在工业自动化行业中发挥着不可替代的作用,并已被广泛应用于机械臂自动装配、发电机功率调节、石油炼制、化工生产、交通信号控制与地铁轻轨控制等众多工控场景之中。一种典型的现代工业总线控制系统而数字隔离器,作为工业自动化领域中低压控制系统与高压设备进行信息传输的“安全桥梁”,其不仅能有效阻断高压电气向低压控制系统的传导路径,保障操作人员与控制系统的安全
    华普微HOPERF 2025-05-09 17:08 16浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦