【问题标题】:Does Android lower the download rate when the screen turns off?屏幕关闭时Android会降低下载速率吗?
【发布时间】:2011-10-03 15:48:42
【问题描述】:

我发现如果我将 wget 与 screen on 应用程序一起使用,我可以更快地下载文件, 获得screen dim wake lock,而不是在没有此应用程序的情况下执行相同操作,并且 关闭屏幕.. 我下载了完全相同的文件(从我的 apache Web 服务器),当我在应用程序上使用屏幕时,时间几乎快了两倍。要下载文件,我使用 wget 的移植版本。这是我的问题:

Android 会在屏幕关闭时降低下载速率吗?

或者由于应用程序的屏幕获得了唤醒锁,强制 CPU 始终处于开启状态,因此下载过程花费了更多的 CPU 周期。我有点困惑..

【问题讨论】:

    标签: android bandwidth screen-off


    【解决方案1】:

    简短的回答是,Android 有时会在屏幕关闭时降低下载速率。据this Android bug report(90位用户加星标),

    似乎即使将“Wifi 睡眠策略”设置为“从不”,某些 Android 设备上的 wifi 也会在屏幕关闭时进入省电模式(也称为 PSP 模式)。

    PSP 模式显然会导致 wifi 设备进入睡眠状态,但它会定期唤醒并要求其接入点传送在设备处于睡眠状态时发送到该设备的数据包。这必然会导致额外的“尖峰”网络延迟。这种额外的延迟意味着一些面向网络的应用程序在屏幕关闭时会遇到问题。

    这或多或少与您所描述的行为相关。此问题仅影响 部分 手机,并非所有手机,仅影响部分 Android 版本。我建议你访问上面的错误报告,关于这个问题的讨论很长。

    如何解决这个问题

    至少Android 2.3有一个解决方法:你需要获取WIFI_MODE_HIGH_PERF lock

    在这种 Wi-Fi 锁定模式下,Wi-Fi 将像 WIFI_MODE_FULL 模式一样保持活动状态,但即使设备屏幕关闭,它也会以高性能运行,丢包率最低且数据包延迟低。此模式会消耗更多电量,因此应仅在需要此类活动连接时使用。

    Android 中的 CPU 时钟缩放

    Android 基于 Linux 内核,使用CPUFreq Governors 调整 CPU 频率以节省电池电量。确切的政策和频率因供应商而异,并且可能会发生变化。还有utilities可以让你调整这些策略,但它们都需要root电话。通常,Android 手机会在屏幕关闭时降低 CPU 频率并使用“省电”调节器。

    但是,我认为手机上的网络流量不受 CPU 限制。也就是说,即使在省电模式下,网络吞吐量也是瓶颈,而不是 CPU 速度。

    【讨论】:

    • 感谢您的回复。我没有注意到这一点。我又做了一个简单的实验。我在配备信号处理程序的无限 while 循环 (while(1)) 中运行本机计数器。我跑了 3 分钟,在这个间隔之后,使用 Android 警报管理器向它发送了一个信号,并强制它转储计数器值。当屏幕关闭时,计数器值几乎是 500.000.000,而当屏幕打开时,计数器值几乎是 1.000.000.000,这就是双精度值!这是出于同样的原因吗? Android 在屏幕关闭模式下也会降低 CPU 的时钟频率吗?
    • 扩展了我关于 CPU 扩展的答案
    • wifi WIFI_MODE_HIGH_PERF 锁 not 为我们工作是类似的情况(我们使用 ntpd 并且当屏幕关闭时,由于 wifi 睡眠的非常大的延迟,同步被破坏政策引起的),所以我们只是调整屏幕关闭超时。来自 TNL Thanasis 的问候:P
    • 谢谢大家的回答!马诺斯,来自 DCS 的问候:P
    猜你喜欢
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多