Whatsapp is just as bad. Disallowing it from running in the background extends my battery life from under a day to over 2 days. Why are these messaging apps so resource hungry?
Whatsapp is just as bad. Disallowing it from running in the background extends my battery life from under a day to over 2 days. Why are these messaging apps so resource hungry?
Every app has to poll for new messages on their own. That means opening up a connection just to see if something new is there.
To give an analogy that's easy to grasp: imagine a giant sluice, big enough to fit two oil tankers. Opening a connection is like sending boats through it, the boats are the data, and the water is the power used each time. Now this sluice is a bit funny: once you operate it, it's very efficient and automatic, but it runs twenty times. In other words, you want have at least forty big-ass boats full of data to send through if you don't want to waste energy (to be clear, I just pulled these numbers out of the air; and in a real sluice that would be forty boats both ways, but internet connections are a bit different).
Now imagine you just send a teeny tiny boat checking for new messages each time. If there's a message, data will be sent back (other boats). If not, due to how 2/3/4G work, the sluice will still open and close forty times. That'a s LOT of wasted water. It also takes time to operate the sluice.
Not everyone who develops these apps is aware of this, so some naive app developers poll all the time.
What would be amazing if the phone OS provided some sort of batching system where these polling messages would queue up, and it would connect for all of them at once. I dunno, maybe the newer phones have something like that.
It's not that hard to open a TCP connection, or heck, even a WebSocket. HTTP 1.1 is clearly the wrong application to use here.
Lack of accountability? All the complaints I hear about battery life are aimed at manufacturers, rather than the crap that we shovel on them and forget about. Facebook taking flak over their recent background audio problems was a rare exception.
Accountability comes with the functionality that allows you to see which apps are using battery. I recently upgraded to WP 10 and got a notification saying "some background apps are using a lot of battery," which is how I became aware of the culprit.
That notification is a very smart idea and I hope to see it at some point on Android/iPhone.
This handles all aspects of regular polling so that adding more messaging applications shouldn't negatively affect the battery performance. Instead the application should be alerted and awoken if a relevant message is pushed to the device.