iOS /来自驱动程序的频繁rssi事件..?

RTo*_*ris 42 events driver rssi wifi ios

所以我的问题出现在前几天通过iPhone配置实用程序查看一些iOS 7.0.x设备的控制台输出.我很困惑地看到几个迹象表明WiFi守护进程无缘无故地注册WiFi rssi活动(没有后台应用程序活动/推送消息待处理等等).这些都在控制台中以耦合记录的形式出现:

Mar xx xx:xx:xx iDevice wifid[xx] <Notice>: WiFi:[406330748.823677]: 
Mar xx xx:xx:xx iDevice wifid[xx] <Notice>: Too frequent(1.822344 secs) rssi event from driver
Mar xx xx:xx:xx iDevice wifid[xx] <Notice>: WiFi:[406330748.895756]: 
Mar xx xx:xx:xx iDevice wifid[xx] <Notice>: Too frequent(0.835468 secs) rssi event from driver, ignoring
Run Code Online (Sandbox Code Playgroud)

...等等.令我担心的是,上面的行每隔一秒左右重复一次,似乎永远不会结束.

现在我不是任何形式的程序员,但了解UNIX的一些基础知识,我已经设法得出结论,WiFi守护程序占用了大量的CPU时间,如使用终端的最高分解所示,这可能表明这可能(或不是)是我最近在这些设备中遇到电池寿命不佳的原因.

接下来,我显然会问你们所有人是否熟悉上面提到的行为,如果有的话,那么"噪音"的来源是什么呢?

Rya*_*ger 2

简短的回答

\n

至少有一个应用程序会反复查询 WiFi 的信号强度,并且会消耗大量电池寿命。

\n

更长的答案

\n

1.什么是RSSI

\n

RSSI 代表接收信号强度指示。它是无线信号中存在的功率的度量。每次无线驱动程序尝试确定可达性时都会进行 RSSI 查询。您可以在这里了解更多信息:

\n

http://en.wikipedia.org/wiki/Received_signal_strength_inspiration

\n

2. 为什么有这么多 RSSI 事件?

\n

在这种情况下,WiFi RSSI 驱动程序是由查询可达性引起的 - 基本上是试图查明无线连接是否可用。

\n

有很多编写不佳的应用程序每隔几毫秒查询可达性/连接性的情况。您可以在网络上找到经常查询的示例。我就在这里放一张:

\n

http://forums.coronalabs.com/topic/33356-check-for-internet-connection/

\n

3. 对电池寿命的影响

\n

Apple 的文档对于无线电的使用非常明确。使用手机无线电的次数越多,电池寿命就越短。他们甚至说:

\n
\n

在为 iOS 设备开发应用程序时,尽量减少无线电的使用尤其重要,因为无线电的使用会对 iOS 设备\xe2\x80\x99s 的电池寿命产生不利影响。

\n
\n

(来源:https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/BestPracticesForInteractingWithARemotePeripheralDevice/BestPracticesForInteractingWithARemotePeripheralDevice.html

\n

4. 你能做些什么

\n

如果这会缩短电池寿命,您可以采取以下几个步骤:

\n
    \n
  1. 使用日志确定哪些应用程序正在滥用无线电并将其删除。
  2. \n
  3. 如果它是您编写的应用程序,请仔细查找对网络的任何重复调用,尤其是可达性或信号强度调用。
  4. \n
  5. 如果该应用程序不是您的应用程序并且您必须保持安装,请尽可能使用飞行模式以节省电池(最不理想的选项)。
  6. \n
\n

希望有帮助!

\n