As the old lyric goes, “You can’t always get what you want.”
Many Android smartphone and tablet owners know that all too well. Ice Cream Sandwich (AKA Android 4) was meant to be the upgrade that bridged the gap between cellphones and tablets. Since Honeycomb (Android 3) was for tablets only, that has left many smartphone owners especially smarting, as they’re still stuck on Gingerbread (Android 2) for now. So you can imagine the great and mighty lure of Ice Cream Sandwich.
And yet, here we are, with the promise of Android 4 failing to be delivered to the hungry masses.
Why do you suppose that is? Why wouldn’t every manufacturer be jumping on the chance to deliver the Ice Cream Sandwich upgrades promised, implied, or alluded to?
Well, good news, and bad news! Sony finally answers that question for us. Unfortunately, it’s not chock-full of good news.
As it turns out, upgrading your Operating System is no simple thing. As Microsoft well knows. What may be “capable” is not necessarily what is “comfortable”. Because Android 4 isn’t just a collection of bugfixes and new polite features. It involves a few significant kernel changes. Such as the SQL database interaction has been moved from a native Android layer to the more generic Java layer. Programmatically, it’s a more “open source” direction that makes sense. But performance suffers, slowing down many apps. You might not notice it so much on a shiny new multicore 1+GHz ARM processor, but on an older model cellphone from when Gingerbread was big news, that performance lag can be quite noticeable.
Further, other similar changes to the kernel is that graphics hardware acceleration is turned on by default. This is great if your app happens to actually use it. But in order to use the hardware accelerated graphics an app has to load additional graphics libraries. This means that they’ll eat up more RAM. And if each app is using a little more RAM than it used to because at the kernel level hardware graphics acceleration was turned on, well then, that accumulates into a considerably larger amount of memory consumed across the whole device. Why that matters so much more in Android I’ll bring up in a minute.
Also using more of the CPU and RAM is just common to the upgrade of an app. You use what you have available because it lets you do more. So each app’s developer will tend to take advantage of the increase in system resources available for the “average” device so that they can make more interesting things happen in their app. But what happens when you take these resource-hungry apps and put them on an old
PC phone? It means they run slower. And again, that memory usage increase is especially noteworthy in Android. (Again, I’ll get to explaining it soon. I promise.)
The increase in resource usage is so great in fact, that just for example, Android’s web browser now uses between 20MB and 30MB more RAM in Ice Cream Sandwich (Android 4) than it did in Gingerbread (Android 2).
Okay then, so why, exactly, is all of this RAM usage important?
On a PC’s operating system, it’s not such a big deal. That’s because PCs have a concept called “virtual memory”. It allows them to use the PC’s hard drive as a (very slow) stand-in for a shortcoming in available RAM. Hard drives are dead slow compared to memory, but it’s better than simply crashing when you run out.
But on Android, running out of memory is an entirely different matter. When Android runs out of memory it tries to close hidden and background processes and apps to free up more RAM for you to run your current app with. And when those run out, it keeps closing more and more, working its way towards the foreground.
You see, Android doesn’t have “virtual memory” for emergencies. This is most likely because Android devices use Flash memory for their “hard drive”, which has a limited number of write operations. (Unlike a real hard drive which has a nearly infinite number of write operations.) So to keep your device functioning for as long as possible, it tries to write to the Flash memory as little as possible. Using virtual memory as a backup for running out of RAM can result in an awful lot of writing to a hard drive. Good on PCs. Bad on phones and tablets, where no one would like it if permanently broke your hardware by writing too many times.
So Android tries to free up RAM by closing things that you (hopefully) won’t notice are missing, to make it possible to run the app(s) that you will notice.
At best this just means that when you close an app, Android notices that memory is available again, and re-opens all of those hidden or background processes and apps that it had closed to free up memory for you. This means as memory becomes available again, or disappears again, things will tend to slow down as Android juggles what is running and what isn’t. Hopefully only slow down a little. In the case of an old phone without much RAM, potentially slow down a lot.
Worse though, is the worst case scenario, where Android is finally pushed to close something that is actually important. That’s when your Android device not only starts being really slow, but can actually behave quite strangely, or even just flat out crash on you.
So there you have it. That is why old dogs aren’t learning new tricks. If your old phone has a fast processor and lots of RAM, like a new tablet would, then it can run Ice Cream Sandwich just fine. But, uh, just how many old phones do you know that actually have all that? So chances are, if you tried to put Ice Cream Sandwich on your old Gingerbread phone, you’re going to see things running very slowly. Or worse, crashing. All for want of more power. And since you can’t just pop open your phone and add a stick of RAM like you can in a PC, you’re pretty much SoL.
As so often the case with computers, if you want the latest operating system, you’ve just going to have to bite the bullet and buy a whole new machine.
You would think that having learned that lesson with PCs, smartphone/tablet software engineers would have learned the important lesson of better resource management. But I guess not.
So you might think that you want Ice Cream Sandwhich on your old phone, but the unfortunate reality is, if you got your wish, you’d probably be miserable and want to revert back to Gingerbread toot suite.
“Sometimes, you might find, you get what you need.”
Gingerbread may not be the latest and greatest, but it’s better than slow and crashing by putting the resource-hungry Ice Cream Sandwich on an old Android device that lacks the resources needed.