1

我有三台安卓设备:三星 Galaxy Note 10、HTC Desire C 和索尼 Xperia E。此外,我还有一个服务可以监听这些设备上的特定 TCP 端口。我所有设备的 WIFI 策略都设置为“始终开启”。我的服务获取了一个 WIFI_MODE_FULL 和一个 PARTIAL_WAKE_LOCK,所以 CPU 和 WIFI 总是在那里。一段时间后,当我想从我的服务器连接到这些设备时,发生了一些不好的事情。

  • 三星 Galaxy Note 设备始终运行正常
  • HTC Desire 变得无法访问
  • 索尼变得遥不可及

我对这些设备进行了 Ping,以查看它们是否存在。结果是:

  • 三星设备总是立即正常响应 ping 请求
  • HTC 和索尼设备有时无法访问,有时它们会响应。但是,即使屏幕打开,它们也会以很长的延迟响应(ping 的时间列有时约为 5000 毫秒)

我知道WIFI政策存在一些问题:

为什么即使在屏幕上ping时间也是这样?此外,我知道即使您持有唤醒锁,屏幕关闭时 CPU 时钟也会降低。这种行为会导致处理 TCP 连接的服务代码出现问题吗?

4

1 回答 1

1

制造商希望能够吹嘘拥有最长的电池寿命。为此,他们将对现有功能进行彻底改造,以延长电池寿命。

是的,它可能会导致问题并且确实会导致问题,但这是您应该进行防御性编程的众多原因之一。换句话说,确保您的应用程序准备好处理丢弃的数据包和可能的更长延迟。

希望您的问题不完全是修辞性的,您实际上想要一个答案。

于 2013-07-08T10:10:59.043 回答