我观察到如果我将wget与screen on应用程序一起使用,我可以更快地下载文件, 在没有此应用程序的情况下,获取screen dim wake lock而不是相同 关闭屏幕..我下载了完全相同的文件(来自我的apache web服务器),当我在应用程序上使用屏幕时,时间快了近两倍。要下载文件,我使用移植版本的wget ..这是我的问题:
Android会在屏幕关闭时降低下载速率吗?
或者由于应用程序上的屏幕获取唤醒锁定,强制CPU始终打开,因此下载过程花费了更多的CPU周期......我有点困惑..
答案 0 :(得分:13)
简短回答是,Android有时会在屏幕关闭时降低下载速率。根据{{3}}(由90位用户主演),
似乎即使“Wifi睡眠政策”设置为“从不”,某些Android设备上的wifi也会在屏幕关闭时进入省电模式(a.k.a.PSP模式)。
PSP模式显然会导致wifi设备进入休眠状态,但会定期唤醒并要求其接入点传送在设备处于睡眠状态时发送给设备的数据包。这必然会导致额外的“尖峰”网络延迟。这种额外的延迟意味着某些面向网络的应用程序在屏幕关闭时会出现问题。
这或多或少与您描述的行为相关。此问题仅影响某些手机,而不是所有手机,仅影响部分Android版本。我建议你访问上面的bug报告,对这个问题进行了长时间的讨论。
Android 2.3至少有一种解决方法:您需要获取this Android bug report:
在此Wi-Fi锁定模式下,Wi-Fi将保持活动状态,如WIFI_MODE_FULL模式,但即使设备屏幕关闭,它也能以最低的数据包丢失和低数据包延迟运行。此模式将消耗更多功率,因此仅在需要这种有效连接时才应使用。
Android基于Linux内核,并使用WIFI_MODE_HIGH_PERF lock调整CPU频率以节省电池电量。确切的政策和频率因供应商而异,可能会有所变化。还有CPUFreq Governors可让您调整这些政策,但它们都需要有根电话。通常,Android手机会降低CPU频率,并在屏幕关闭时使用“powersave”调控器。
但是,我不认为手机上的网络流量受CPU限制。也就是说,即使在电源安全模式下,网络吞吐量也是瓶颈,而不是CPU速度。