Update: HTC facing criticism for multitasking implementation on One X, company says it works as expected

Daniel Bader

May 17, 2012 9:09 am

Update: HTC Canada has released an official statement on the matter:

 “HTC is aware of some questions in the enthusiast community about how the HTC One X handles multitasking and memory management for background apps. We value the community’s input and are always looking for ways to enhance customers’ experience with our devices. That said, right now multitasking is operating normally according to our custom memory management specifications which balance core ICS features with a consistent HTC Sense experience.”

The HTC One X is the best Android phone on the market today. This isn’t in dispute judging by the uniformly-positive reception it’s received both here and abroad.

But over the past few days, HTC’s implementation of Android’s widely-lauded multitasking system has come into question. In addition to morphing the simple-yet-effective vertical orientation of Android 4.0’s default multitasking menu into a garish horizontal UX, they seem to have messed with the fundamental architecture of Android’s memory management.

Users have been reporting in droves that instead of saving the state of an open app, the One X is closing it in order to save memory. With 1GB of RAM this shouldn’t be happening, at least not until the fifth or sixth app in the chain. HTC claims, however, that the functionality is a normal part of its battery-saving Sense 4.0 infrastructure. Read on for more.

First, let’s have a brief lesson in how Android memory management works. There are five states and three priorities that apps can take, which influence that app’s interaction with the processor, RAM, and ultimately, the user. Though all of these processes are governed by Android’s Dalvik Virtual Machine, which itself is controlled by a low-level Linux kernel, let’s take a more (admittedly) simple approach.

Active - Active tasks are those in the foreground, presumably the app open in front of you. This takes the form of drawing CPU and GPU cycles to ensure that the open app responds instantly to your input. These apps are rarely closed by the system unless there is a kernel panic or critical RAM situation.

Visible/Started Services - Visible processes, or Services that require an “active” approach, take the form of background tasks that keeps an open socket to the network (such as email, SMS or anything that requires push notifications). These apps are occasionally closed if the foreground app, such as a game, needs a significant amount of RAM to function optimally.

Background/Empty Process - Background processes are the first to go when the system needs to recover memory. They take a low priority, and often take the form of non-essential system processes or, in the case of empty processes, “container” apps whose locations and assets have been cached to speed up re-opening.

Typically, Android is pretty good at figuring out which apps you are using on a regular basis and will retain as best it can the process in RAM. For example, if you’re switching back and forth between an open browser tab and a word processor, the system will keep the browser “visible” in the background so the web page won’t have to reload every time you re-enter the app.

Similarly with apps such as Twitter or Facebook the system will retain your place within the app as if you had just looked away for a moment.

The problem with the One X is that it is closing apps indiscriminately. If I leave Facebook to check an email and re-enter a few minutes later, the app reloads as if the process was killed. This seems to be the case with most applications, though occasionally the screen will “refresh” like Windows Phone but still manage to keep your place within the app.

I have confirmed this to be the case with my personal One X, and it’s not due to malfunctioning hardware. At first I thought it to be a quirk within the software — a way of retaining memory for the visible app — but the more I use the phone the more I see it as a fundamental flaw with the operating system.

HTC claims this is a feature of the operating system and not a bug; it is a way to ensure performance is consistent and the foreground app gets sufficient processing power. For most people this may be the case, as it directly influences battery life for the better. In fact, HTC’s extremely conservative memory management is the reason that the One X seems to be lasting longer than any other Android phone in recent history (combined with the ultra-efficient 28nm Qualcomm SoC). My battery life findings have been hit or miss with the One X, too: on some days it lasts 15-18 hours on a single charge and on others it’s down for the count within 5-8 hours. I suspect this has to do with errant background processes using up precious cycles, something HTC cannot control directly.

More to the point, HTC changed the way that Android manages memory without informing the consumer. At the very least there should be a choice for users to retain the “old” way and risk losing a couple hours of battery in exchange for a more robust multitasking experience. While certain Android apps have been known to abuse the system’s rather liberal implementation of multitasking, I can’t help but think HTC’s solution is akin to putting a bandage on a knife wound. It doesn’t fix Android’s battery issues; rather it places power users at a disadvantage for opening multiple apps.

One of Android’s chief advantages over iOS is (was?) that it supports true multitasking, with apps running in the background unfettered by framework-level API limitations. This appears to be the case here, as HTC has taken to at the very least suspending the state of the background app, forcing it to briefly “resume” before continuing; and at worst closing the app arbitrarily, losing any service-level interaction with the user entirely.

The problem isn’t unique to HTC — previewers of the Samsung Galaxy S III claim similar behaviour some instances — but I can confirm that, compared to the Galaxy Nexus running stock Android 4.0.4, the issue is much more common.

For many users, this memory issue will continue to be perceived as more a bug and less a feature than HTC is intending.

Via: Android Central
(image source & Android memory information via: Mobile World)

  • Boojay

    Users will complain about anything, even if it were perfect. I think HTC did the right thing.

  • SAM

    JUST USE THE NOTE!!!
    FROM SAMMIE!!!
    SAMMIE ITS ALL YOU NEED!!!
    WAY TO GO SAMMIE!!!
    O SAMMIE!!!

  • leobg

    Another confirmation skins, especially HTC Sense, just harm the Android experience.
    But with the One X it won’t be for long. CM9 has already emerged!

  • Dan

    Haha a super phone which can’t even multitask between two apps! All that power with nothing to do.

  • Netguru

    Daniel, if you saw this problem on your own One X, how come you didn’t report it in your extensive review of the phone on April 28th? Why are you only raising it here now…after Android Central reported on it?

  • StEC

    I’m a heavy multitasker I guess hearing about this issue or “feature” as HTC calls it rules this phone out for me… shame! :(

  • cybik

    As usual, HTC breaks anything but their apps.

  • mb

    The Note is still a better phone…people dont buy a smartphone for its camera or audio capabilities…I still can’t believe that people like to have their storage on dropbox only. And the white design is just not attractive to me…and now this……

    • jellmoo

      “The Note is still a better phone…”

      I think you misspelled “tablet”.

  • Tom

    Your explanation is good, but I’m not sure about the use of the term ‘visible’ – how are these apps visible.

    • dstruct2k

      That’s Android’s term, not Daniel’s. It’s how Android refers to apps when their actions are “visible” to the end-user, such as updating a notification or outputting audio.

  • Tom

    If a background app (what you refer to as high-priority) goes dormant then there is no cost to leaving it in memory, so long as the foreground task doesn’t need that memory. I think that is the theory behind Android memory management.

    However, some of those background tasks don’t go dormant (often for good reason, such as the alarm clock that is mentioned above) and these consume battery.

    As Daniel has suggested, HTC should allow the user to adjust how aggressive or lax the system is in shutting down apps. Then this ‘bug’ would be a feature. Most users would never touch it, but those who were bothered by the default setting would have a solution at hand.

  • haha

    So this phone doesn’t multitask? What makes it better than the iPhone then?

  • andy c

    it sounds like the same multi tasking system as windows phone.

    the exact same thing happened when i set the timer on my Focus while BBQing, the timer never went off.

  • Pradeep Chandra

    You are getting confused between apps “running” in background and apps “staying” in memory.
    Just because an apps stays in memory doesn’t mean that it is running or it consumes battery.
    The 1gb Dram needs a constant power regardless of how much is used, it is not like the unused memory can be power gaed like the unused cores in some multi core processors.
    I’m guessing the strange behaviour is because of a couple if things

    1. Some of the Sense processes and services are coded to stay in memory all the time
    2. The min mem free in the kernel (which dictate when apps get booted out of memory) is set slightly high

    It is the combination of the two factors above that yield erratic multitasking

    There could be another factor too where apps are notsaving their states properly when they are kicked out of memory

  • Pacoup

    Well, that’s it for HTC in my camp I guess. Was thinking about picking up the One S which just came out on Telus today, but, oh well, guess I’ll wait for the S III, or LG’s 2GB of RAM LTE 2 monster.

  • Stuntman

    I wonder if the memory management system HTC uses is due to the poor performance with the Sense UI. I have an HTC Desire Z running Sense. I find that with the GB update, the battery life improved, but the Sense UI performance has gone down a bit. It’s as though Sense was stopped when using some apps and when I go back to the home screens, it takes a while to load.

  • android fan

    if this makes my phone last 15 to 20 hours rather than 5 to 10 hours in a day good job HTC

  • TheywillbepisSes

    Is this also the case with the one s? One v?

  • Rob

    The new htc phones are like iPhones with an android skin.

    Focused on design.
    Non removable battery
    No sd card slot
    No full implementation if multitasking.