Thursday, October 23, 2014

Why must Android be this way? Battery managment as a lifestyle....

TL;DR: Android apps are getting bloated.  Developers aren't paying attention to android being a mobile platform and are abusing memory, cpu and battery.  How can we solve this?  How can we track it easily?

Android talks to me.  What android stands for, and represents, makes me feel a bit better about the world.  It's unlikely I'll be switching platforms anytime.  (Yes, that's a hard stop there.)  Android also upsets me on weekly basis.  It's becoming tiresome...  I just want my battery to last.  And I want apps I open to stay open. 

My first android phone was a T-Mobile G1.  For those who are new to smartphones, it was the first android phone released to the mass market.  I still have it.  It's still a good phone.  But it's also where I first learned that battery management was in my hands.  I installed a AOL instant messenger client, and flattened my battery in a couple hours. 

Every so often, apps would close that I intended to keep open.  Especially while listening to podcasts.  And while using navigation. 

The G1 had a very simple suite of software on it.  Managing what was using data, and what was waking the phone, wasn't very difficult.  Within a week or three I had the bad apps removed, and I was getting at most of a day from the stock battery.  Those were some hard learned lessons, and watching a talk from Google about gaming and battery usage really crystallized things for me. 

But that was a world of 20 or 30 apps, and a mostly vanilla install on a simple phone.  But, time was passing, my 384mhz chip wasn't keeping up.  And as programs updated, they got more and more bloated. 

As soon as it came out, I moved to a T-mobile G2 (HTC Vision to the rest of you.)  I bought it knowing I was going to need and extended battery.  With lessons learned on my G1, keeping the battery life reasonable on the phone wasn't a stressfull experience.  It was rare that a hung process caused the phone to stay at high load, and cook the battery.  But those days did start to get more frequent. 

The new phone took care of my podcast program dropping out.  And navigation wasn't dieing anymore.  At least at first.  The longer I had the phone, the more often my podcast app would just shut off.  The MP3 player would do so too. I just want my audio ... is that to much to ask?

Sadly the G2 was a slow-ish dual core chip.  About two years ago, I switched to a Samsung Galaxy S Relay.  (Can you tell I like my keyboards?)  While at first, it's battery life was just "ok."  The music player, and my podcast app were working great.  And it would generally get me through the day, a little bit of gaming could leave me phone-less by mid afternoon. 

Again, I got an extended battery.  This really helped the situation.  As the stock battery on the Relay is really quite small, and it's a phone that can draw several watts under load.  And this is where the story really turns south. 

My phone's battery life, even with the extended battery, was really only about a day.  Then one week, my phone became useless.  Suddenly my phone's battery life was down to 8 hours.  And the phone was hot.  Like, OSHA issue, hot.  Like puffed two batteries hot.   I called T-Mobile.  They had no idea.  I ended up taking it to the internet at large. 

The "internet at large" is where I found out about some moderately upsetting things.  In Windows, and MacOS, there are utilities built in that let you quite effectively manage your applications.  Utilities that let you find out what, and where, is eating your CPU, Memory, and by proxy, your battery.  Tracking that sort of information in Android is.. difficult. 

I was introduced to Wakelock Detector, and SystemCleanup.  "Needing those at all" is a problem.  But the fact they're out there did provide me with options. 

Through some testing, I found that the application that was burning my battery was the latest update to T-Mobiles app.  The one that's supposed to help me manage my account, was the one that was locking my cpu to full speed and causing me to destroy batteries. 

Between Wakelock Detector, and SystemCleanup, I was able to remove, and kill, applications that were sucking up CPU and providing me no utility.  In the end, my phone's battery was able to give me a reliable 80 hours of normal phone usage.  I was proud of my work.  I was enjoying a phone that stayed cool, played my podcasts and music, and did navigation when I needed it. 

Then the updates came.  As each app updates, they seem to get worse and worse.  And apps that have no reason to suck up CPU time, wake the phone, and cause my battery to die.  For example, Amazon Marketplace.  I have nothing through amazon on my phone, yet with it's latest update, it knocked 20 solid hours of runtime off my phone! 

I wish there were some way of dealing with this.  I had the phone of my dreams just a few weeks ago.  And now I have a phone that is down to a ~30 hour runtime.  Perhaps the walls of the android marketplace need to be a little higher.  Maybe OS controls need to be tighter.  "No, you can't run in the background." should be an option.  And CPU and memory management need to be easier to get to. 

And... in the last weeks.. I can no longer run my podcast app and strava at the same time.  Both apps updated, and it appears one kicks the other out of active memory. 

This can be fixed.  I know it... 

No comments:

Post a Comment