Oh, the [Android Battery] Horror

I am sure this title lighten up few smiles in my dear Windows Phone and iOS fans :). But no, don’t be in a hurry, it’s not what you’re possibly thinking.

I started today to analyze my Note 3 applications, using My App List application. One of the features of this application is to create an extensive list of the (additionally) installed applications on your device. The main reason to go in this direction is the fact that something is wrong with my Note 3 after it came by from the deep freeze, which my iOS experiment has put it into. During the experiment I was pretty mad from the bad performance of the iPhone battery, but since then the Note 3 battery runs pretty quick and the device is constantly hot! Its like I’m being punished for my harsh words about its fruity colleague!

GSam Battery Monitor reports main “juice user” (averaging 60-85%[!]) is the system’s gsiff_daemon, in which we have tons of system (including user!) services running.

Since I’ve never succeeded digging into gsiff_daemon process (I doubt this is possible at all, and even it it’d be possible, it’d require root, which I won’t do to my Note 3), I decided to check up what’s installed on the device and (eventually) to through full reset cycle this weekend.

That’s how I ended up with My App List, a really nice piece of software, which does this enumeration for you.

The (alphabetical) list looks amazing (and way too long!):

As you can see, this is quite substantial installation base, which I’ll most probably have to reduce. I’ve already uninstalled applications like BatteryGuru, AccuWeather, LinkedIn, Cover, which I was suspecting could eat up battery because of bugs, but the situation did not really improve. To be honest, the situation did not get worse as well, which would be strange, since BatteryGuru promises precisely that: saving battery life. However, I assume that the drain is so bad that the eventual savings from Battery Guru are not significant to mention.

The next step will be to completely wipe the device (don’t forget to pull out the SD card first!), and then to see what’ll happen. I’m very sorry that I will have to redownload ~5GB of Spotify lists, but nothing can be done to help that: the SD card will be copied, and then the card itself will be formatted via the Android, to ensure that it is not in a supported, but not so well tested filesystem.

I am very eager to see how this goes on. My Note 3 has not been wiped since I got it last October, and this is way too long time for an Android installation (it’s like the old Windows 98: if you use it too much, you have to wipe it out from time to time).

Time will tell. For now, I’m struggling with the thought how it’ll go, while I’m waiting 1 day with the stock Note 3 software, without any additional things but my accounts setup… I have a lot of account, so I’m assuming even that could easily put the device in the same state as it’s now (i.e., draining battery way too quick), but without check we can never be sure.

Weekend is approaching, I’m anxious!

Featured Image (cc-by 2.0) Intel Free Press

Андроид 4, все още с “гореща” батерия

Гледам, по телевизията (май НОВА беше), върви някаква реклама на Google Galaxy Nexus. Няма асоцииран телеком към нея, което ми е още по-интересно! Да не би самите Гугъл да си рекламират телефона?

Иначе Galaxy Nexus е нелош телефон! Ползвам го от няколко седмици. За съжаление обаче, същите проблеми с Galaxy II се виждат и тук. Явно някое от приложенията, които използвам, е доста гладно за батерия. Но тъй-като не искам да се разделям с никое от текущите ми приложения, ми остава само едно: да си нося редовно зареждащото в чантата, а и да използвам зареждащи, когато около мен има такива.

Преди да се примиря със ситуацията, опитах да намеря “лакомото приложение”. Не успях. Системата показва консумация на батерия, но от системен процес, “Android System”. А както казах вече, всички приложения които ползвам са ми важни. Чудя се има ли начин да разбера “по-надълбоко нещата”.

Въпросът стои отворен сега, ако някога успея, ще пиша. А ако някой има добър практически съвет (различен от “купи си ХХХ или YYY”), може да пише!

Samsung/Google Nexus S Battery and Processor Drain Issue

This turned out to be very long post, go here if you just care for the summary, not the details!

Recently, I obtained my new (company) phone, Google Nexus S. I was very excited, because all reviews, statistics, etc. showed that it must be great, full with newest OS and functionalities device. I got the phone from DeliveryShop, who delivered it to me directly from USA’s BestBuy shops.

The first days I was quite happy pal, I had great, new toy to play with and I had not seen any issues so far. I loaded the phone with many apps, and it was behaving more than satisfactory. Plus, the device is very slick, with nice black, curved design. Very, very nice looking.

After few days with the phone I noticed the first issue: my contacts suddently became very slow to search through. It was taking literally 5-10 seconds after I type the name to get the first (not so narrow) results, and another 5-10 seconds to see actually what I was looking for. It seemed I was not alone: the same issue “My nexus S runs out of battery real fast and slows down on contact search” you can read at the Google Mobile forums (and more than once, actually). I was very astonished why this happens, I was also quite irritated. Come on, they’ve got to be kidding me to wait for more than 10 seconds for search! And on a phone, coming from the considered to be top SEARCH company in the world!

Two days later, however, I had more issues to worry about! My phone battery was draining like crazy. Imagine this scenario: I unplug my phone at 98-100% at 07:30, then I travel to work. When I sit on my desk at 08:15 (45 min later), my battery is at 88-90%. I.e., 10% for 45 minutes. Isn’t that just great?

The contacts issue was bad, but at leats bearable (to a degree). This second thing, however, seemed ridiculous! 4 hours battery live for top-notch 2011 model phone is just a big no-no! And I mean – BIG no-no!

The only thing I could research during the week was the phone’s battery report statistics. I saw that the app, which was draining the battery, was… “Android OS”. Great, isn’t it? And the phone tools so far (the system built-in tool and Processor Monitor Widget) did not give me any more information past that. And just “Android OS” using processor at 100% was not good and detailed enough information to me. I needed to know what’s exactly there, but I had no time to research the issue during the week (I noticed the problem Tuesday).
Additionally (and of course), the phone was getting quite warm. It was good, if I needed ellectrical pillow, but since this was just a phone, it was not good at all. The device was getting very warm just above the “Google(tm)” sign, where the camera was placed.

Three days later, however, my irritation was beyound any imagination. I had to constantly seek power source when I was not on a go. And even then, the phone seemed not to be able to charge well via USB: the battery drain was bigger than the USB charge current in most of the cases, so while connected to USB, the phone just… discharged itself slower! But still discharged! During these two days I ended my working day one time with 8% charge, and another time with just 5% charge. No-no!

So I decided that I have no other choice but to start researching the issue. I could not find better analytics app at that time, so Friday afternoon I just did factory reset of my device, paired it to brand new Google account, dedicated to the phone, and installed the minimum set of applications I needed.

Apart from that, I also installed one of the recommended analysis tools: OSMonitor seemed quite good choice. After I installed it, it showed (on the factory reset phone) that the processor usage is normal. OSMonitor also supported notification icon with the current processor usage, similar to the Windows applications Process Explorer or Task Manager. Which was also good, because just with the power button and lighting my screen I could check if the processor is being drained.

After Friday reset all seemed OK, until… this morning (Sunday morning). I woke up just to find out that the processor is again at 100%, my contacts are slow than hell, the phone is sluggish (what you’d expect from computer with 100% idle time going to some app?) and the battery is being graciously drained. This time I was furious! However, this time I also had the right tool installed!

OSMonitor showed that the processor is being busy with the “init” process. If you’re curious what this process is, Wikipeia has very good article about the “init” process. XDA-Developers confirmed my opinion that by no means the “init” process should constantly be at 90-100% processor usage, so I had my main suspect!

Although I had the suspect, it seemed invulnerable. Killing the process immediately brought it back (which is normal for the *nix architecture), again at 90-100%, hungrier for power and battery than ever. Reboot of the device, however, seemed to resolve the issue. Further digging in the XDA forums showed me that some users actually used this technique to “resolve” their problem, other users just returned the device to BestBuy.

The “resolution” did not work for me, neither did the BestBuy return (although I’m almost sure that if I insist, DeliveryShop would assist me with the return and getting new device). But I did not want that, so I continued my search.

My searches immediately pointed me to the Google Code Issue 13130: The process “/ INIT” uses between 70% to 98% CPU. Although having its root from HTC Legend Froyo devices (Nexus S is with Gingerbread), the issue seemed the same like what I was experiencing. In the discusion there people suggested to turn on USB Debugging option (found at Settings => Applications => Development). Somehow this option mitigated the problem (at least to the major amount of people complaining). My option was not switched on, so I did switch it on.

During my searches I also found information that “Google are aware of this issue, but we’re still waiting for the patch”. Well, daaah! I hope they’re fast enough.

I also found one quite interesting speculation about the possible root cause of the issue: in (archived) Google Nexus One Support Forum they’re connecting the init processor usage with pending alarms. I.e., if you have pending alarm set (which I did not had Friday evening and my phone was OK Saturday morning), then the issue does not arise. If you have any pending alarms set (which I had Saturday evening), then you have quite good chance to see the 100% processor usage on the next morning (which I did see this morning, although my alarm was for Monday). So in case the USB Debugging does not resolve my issue, it seems I have still one shot left: to switch to another “alarm application” rather than the included with the phone. But again, this is just a speculation (but still worth checking).

I hope very much that at least one of the workarounds works for me. I will really hate if I have to return my nice Nexus S phone. I really love the phone and I’ll really miss it!

To Summarize

The issue manifestates with Froyo and later based phones (Samsung/Google Nexus S, HTC Legend) with the following symptoms:

  • The phone discharges its battery very quick, approximately for 4-6 hours in my case
  • The phone gets significantly hot and stays hot.
  • The phone contacts search (or any other activity, which counts on idle processor time) is slowed down a lot

The issue has no official hotfix from Google at the present moment (Feb 20th 2011).

You can try one of the following workarounds:

  • Switch on “USB Debugging”, which you can find at “Settings” => “Applications” => “Development”. This is used for development purposes mainly, but mitigates the issue for most of the people.
  • If you use standard built-in Clock alarms, you must delete them all (turning off might not work!) and use different alarms software.

At the moment I’m trying the “USB Debugging” option only. Will keep you posted (if I have nerve and time) about how it’s going.

But at the moment I can only say (ironically): “Good job, Google”! It was more than five years since I had to spend almost full day trying to fix an issue, which I should not find at all in a high-class device like your Nexus S! By the way, when my wife saw what I was doing, the only thing she cared for was: “No matter how this turns, you will NOT get back from me my phone, right?” (she’s using my Windows 7 Phone, HTC 7 Trophy).

Image (cc) rakh1