Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
100 views
in Technique[技术] by (71.8m points)

iOS / Too frequent rssi event from driver..?

So my question came up looking an the console output of some iOS 7.0.x devices via iPhone Configuration Utility the other day. I was puzzled to see several indications that the WiFi daemon registers WiFi rssi activity out of the blue for no apparent reason (no background apps active / push messages pending and so on). These all appear as coupled records in the console in the form of:

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

...and so on. What got me worried is that the lines above are duplicated every second or so and appear to never end.

Now I'm no programmer in any kind of form, but knowing some of the basics of UNIX and all I've managed to conclude that the WiFi daemon takes up substantial CPU time as shown in an top breakdown using the terminal, which in turn would suggest that this may (or not) be a reason I've also been experiencing poor battery life on some of these devices as of late.

Next up I would obviously ask you all if anyone's familiar with the behavior noted above and if so what would be the source of this "noise"..

question from:https://stackoverflow.com/questions/22460991/ios-too-frequent-rssi-event-from-driver

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

The Short Answer

At least one app is repeatedly querying WiFi for signal strength, and it's chewing up a lot of battery life.

The Longer Answer

1. What is RSSI

RSSI stands for Received Signal Strength Indication. It is a measure of the power present in a wireless signal. RSSI queries are made each time the wireless driver tries to determine reachability. You can learn more about it here:

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

2. Why So Many RSSI Events?

In this case, a WiFi RSSI driver is caused by querying for reachability - basically, trying to find out if a wireless connection is available.

There are numerous cases of poorly-written apps querying for reachability/connectivity every few miliseconds. You can find examples that query too often all over the web. I'll just put up one here:

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

3. Impact on Battery Life

Apple's documentation is very explicit about radio usage. The more you use the wireless radio in the phone, the shorter the batter life. They go so far as to say:

Minimizing radio usage is especially important when developing an app for an iOS device, because radio usage has an adverse effect on an iOS device’s battery life.

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

4. What You Can Do About It

There are several steps you can take if this is shortening your battery life:

  1. Use the logs to determine which apps are abusing the radio and remove them.
  2. If it is an app you have written, carefully look for any repeated calls to the web, especially reachability or signal strength calls.
  3. If the app is not your app and you must keep it installed, use airplane mode when you can to conserve battery (the LEAST desirable option).

Hope that helps!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...