我观察到,如果我在screen on应用程序中使用wget,我可以更快地下载文件,它获得了screen dim wake lock,而不使用该应用程序并关闭屏幕。我下载了完全相同的文件(从我的apache web服务器),当我在应用程序上使用屏幕时,时间几乎快了两倍。为了下载这个文件,我使用了wget的移植版本。我的问题是:
当屏幕关闭时,Android会降低下载速度吗?
或者由于应用程序上的屏幕获取唤醒锁定,迫使CPU始终处于打开状态,因此下载过程花费了更多的CPU周期。我有点困惑..
发布于 2011-10-15 11:18:17
简短的回答是是,安卓有时会在屏幕关闭时降低下载速度。根据this Android bug report (由90个用户主演),
似乎,即使将“无线睡眠策略”设置为“从不”,一些安卓设备上的wifi仍将进入省电模式(也称为。PSP模式)。
PSP模式显然会导致wifi设备休眠,但会定期唤醒,并要求其接入点在设备休眠时将寻址到该设备的数据包传送到该设备。这必然会导致额外的“尖峰”网络延迟。这种额外的延迟意味着当屏幕关闭时,一些面向网络的应用程序会遇到问题。
这或多或少与你描述的行为相关。这个问题只影响一些手机,而不是所有手机,也只影响Android的一些版本。我建议你访问上面的bug报告,关于这个问题有很长的讨论。
如何解决这个问题?
至少在Android2.3中有一个变通方法:你需要获取WIFI_MODE_HIGH_PERF lock
在此Wi-Fi锁定模式下,Wi-Fi将保持活动状态,就像在WIFI_MODE_FULL模式下一样,但即使在设备屏幕关闭的情况下,它也能以最低的数据包丢失和低的数据包延迟以高性能运行。此模式将消耗更多功率,因此应仅在需要此类活动连接时使用。
Android中的CPU时钟缩放
安卓系统基于Linux内核,使用CPUFreq Governors调整中央处理器频率以节省电池电量。确切的策略和频率因供应商而异,可能会发生变化。也有utilities可以让你调整这些策略,但它们都需要扎根的手机。通常,Android手机会降低CPU频率,并在屏幕关闭时使用"powersave“调控器。
然而,我不认为手机上的网络流量是受CPU限制的。也就是说,即使在省电模式下,网络吞吐量也是瓶颈,而不是CPU速度。
https://stackoverflow.com/questions/7637365
复制相似问题