platform-tools db.exe - 服务器 (Windows) 上的 CPU 使用率过高

问题描述 投票:0回答:1

在java应用程序中使用ADB每三秒监控一次android设备状态。使用高度 adb 命令:

adb shell settings get global airplane_mode_on
adb shell settings get system system_locales
adb shell dumpsys telephony.registry
adb shell "dumpsys content | grep ^Account | grep @ | grep com.google"
adb shell getprop gsm.network.type adb shell getprop gsm.operator.alpha
adb shell settings get system screen_off_timeout
adb shell settings get global wifi_on

除了 dumpsys 命令外,回复都是一行值,每个 readline() 执行需要 200 毫秒才能完成。

“dumpsys telephony.registry”返回大约 5000 行,需要 500 毫秒。

“dumpsys content | grep ^Account ..”返回三到四行,需要 300 毫秒。

我对延迟没有任何问题,但服务器 CPU 在此期间受到严重影响。发送这些高度命令使 CPU 增加了 30%。该应用程序需要同时监控最多不同的设备,并且只要连接两个设备就会导致 100% CPU 峰值。

java 应用程序不是问题,因为我在从 DOS 提示符发送 ADB 命令时确实重现了 CPU 影响。

我尝试过但没有观察到任何好处的事情:

  • 单独发送命令
  • 发送一个多个命令行:
    "adb shell "command1 && command2 && command3 .."
  • 在命令之间设置延迟(10、100、200、500 毫秒)
  • 通过 Wifi 而不是 USB 使用 ADB 连接
  • 比较不同的 Android 设备型号和供应商(三星、谷歌等)
  • 安装了最新的Android SDK平台工具:
>adb version
Android Debug Bridge version 1.0.41
Version 35.0.2-12147458
Installed as C:\Windows\SysWOW64\platform-tools\adb.exe
Running on Windows 10.0.19045
android adb cpu platform-tools
1个回答
0
投票

与其每 3 秒打开 7 个终端,为什么不打开 1 个终端呢?

adb shell "settings get global airplane_mode_on && settings get system system_locales && ... && exit"
© www.soinside.com 2019 - 2024. All rights reserved.