10

アプリケーションの画面でwgetを使用すると、このアプリケーションを使用せずに画面をオフにするよりも、画面の薄暗いウェイクロックを取得するファイルをより速くダウンロードできることがわかりました。まったく同じファイルをダウンロードしました( apache Webサーバー)、アプリケーションで画面を使用した場合、時間はほぼ2倍速くなります。ファイルをダウンロードするために、移植されたバージョンのwgetを使用します。そしてここに私の質問があります:

画面がオフになると、Androidはダウンロードレートを下げますか?

または、アプリの画面がウェイクロックを取得し、CPUが常にオンになるため、ダウンロードプロセスにより多くのCPUサイクルが費やされます。少し混乱しています。

4

1 に答える 1

13

簡単な答えは「はい」です。画面がオフになると、Androidはダウンロードレートを下げることがあります。このAndroidバグレポート(90人のユーザーが主演)によると、

「Wifiスリープポリシー」が「しない」に設定されていても、一部のAndroidデバイスのwifiは、画面がオフになると省電力モード(別名PSPモード)に入るようです。

PSPモードでは、Wi-Fiデバイスがスリープ状態になるようですが、定期的にウェイクアップし、アクセスポイントに、デバイスがスリープ状態のときにデバイス宛てのパケットを配信するように依頼します。これにより、必然的に追加の「スパイク状」のネットワーク遅延が発生します。この追加の遅延は、画面がオフになったときに一部のネットワーク指向のアプリケーションで問題が発生することを意味します。

これは多かれ少なかれあなたが説明している振る舞いと相関しています。この問題は、一部のスマートフォンにのみ影響し、すべてではなく、一部のバージョンのAndroidにのみ影響します。上記のバグレポートにアクセスすることをお勧めします。この問題については長い議論があります。

この問題を解決する方法

少なくともAndroid2.3には回避策があります。WIFI_MODE_HIGH_PERFロックを取得する必要があります。

このWi-Fiロックモードでは、Wi-FiはモードWIFI_MODE_FULLと同様にアクティブに保たれますが、デバイス画面がオフの場合でも、パケット損失を最小限に抑え、パケット遅延を低く抑えて高性能で動作します。このモードはより多くの電力を消費するため、このようなアクティブな接続が必要な場合にのみ使用する必要があります。

AndroidのCPUクロックスケーリング

AndroidはLinuxカーネルに基づいており、CPUFreq Governorsを使用してCPU周波数を調整し、バッテリーを節約します。正確なポリシーと頻度はベンダーごとに異なり、変更される可能性があります。これらのポリシーを調整できるユーティリティもありますが、それらはすべてルート化された電話を必要とします。通常、AndroidフォンはCPU周波数を下げ、画面がオフになっているときに「省電力」ガバナーを使用します。

ただし、電話のネットワークトラフィックはCPUバウンドではないと思います。つまり、パワーセーフモードの場合でも、ネットワークスループットはボトルネックであり、CPU速度ではありません。

于 2011-10-15T03:18:17.107 に答える