【问题标题】:How does setting battery level/status in the emulator settings GUI or over telnet differ from adb dumpsys battery set?在模拟器设置 GUI 或通过 telnet 设置电池电量/状态与 adb dumpsys 电池组有何不同?
【发布时间】:2020-02-09 11:12:59
【问题描述】:

我正在尝试创建一个监控电池电量的应用,但由于实时测试会非常麻烦,我想通过模拟器模拟不同的值和充电状态。

当我通过单击工具栏上的“...”进入模拟器设置 GUI,然后转到“电池”并更改值时,它在模拟器中不起作用。操作系统的电池指示灯始终显示电池电量为 100% 等。

在研究过程中,我发现了另外两种更改电池状态的方法:

通过 telnet 和 adb。 Telnet 匹配在模拟器设置 GUI 中设置的值,反之亦然,但不会更改系统中的实际值。电池状态指示器和使用batteryStatus.getIntExtra 等获取值均不受影响。 只有使用adb shell dumpsys battery set level 20 才能达到预期效果。

为什么? telnet 和设置中的控件实际上会发生什么变化?有什么方法可以使设置真正起作用,以便我可以通过模拟器设置 GUI 更改电池电量和状态?

我在 Windows 10 上使用 Android Studio 3.5.3 及其附带的模拟器,版本为 29.3.4-6110076,API 29。

【问题讨论】:

  • 我认为对于 Windows 10,您需要使用 PuTTY。 chiark.greenend.org.uk/~sgtatham/putty/download.html
  • 另外,你在 telnetting 到模拟器时得到什么消息?
  • 我通过“添加/删除 Windows 功能”安装了对 Windows 10 的 telnet 支持。打开 cmd.exe 并远程登录后,我得到“auth required”,所以我输入“auth ”,然后我得到“OK”,当我输入“power capacity 50”时,我也得到“OK”。但我什至不关心 telnet,我希望能够通过模拟器设置 GUI 更改电池状态,这不起作用,它只能通过 adb shell 工作。还尝试了 PuTTY,在“auth ”之后显示“KO: Forbidden binary request. Aborting”

标签: android android-studio android-emulator battery


【解决方案1】:

在 Android Pie 下,telnet 路由有效(至少,它适用于我们用来测试的相对较旧的 AVD)——它与构成 Android 模拟器基础的 qemu 系统联系,您可以将电源容量设置为 20管他呢。似乎 GUI 使用了这条路线。这些参数由dumpsys battery 逻辑反映...直到您开始通过dumpsys battery set 设置它们,此时dumpsys 开始忽略qemu 值。

在 Android 10 下,似乎只有 adb 命令生效,因此它们对 qemu 参数的跟踪已被破坏 - 我没有看到任何关于它的公告,所以我认为这是偶然的。

如果它不再在 GUI 中工作,那么模拟器团队中可能没有人告诉 GUI 团队他们打算打破 qemu 路线。

我注意到 Android 10 的模拟速度明显比 Pie 慢,尽管 CPU 级别的上下文切换更少,所以可能更深层次的东西发生了变化,qemu 链接是一个牺牲品。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多