I was reading an article today, a comparison of application life-cycles
in Windows Phone 7 and Android, and while the article is for the most part
correct, many of the statements are made in a slightly misleading manner. After
a bit of pondering, I realized why this is.
Imagine that we have two children, Alice and Bob, who have a bag of 100
LEGO blocks. They’re building small houses.
Initially, Alice and Bob each take half of the blocks and build a house. A bit
later, Alice decides to rebuild her house with half as many, so now she has 25
blocks in her house, and in a spare pile. No problems so far.
Bob discovers he needs a bit more blocks, so he asks mom to help him out. Mom
notices that Alice has 25 spare blocks, so she puts them back into the group
pool. Bob then takes another 10 blocks and finishes his house.
A Windows user’s perspective
Okay, let’s restart. Alice and Bob build houses of 50 blocks each, then Bob
takes his apart, and rebuilds with 25. He now has 25 in his spare pile.
This is where a Windows user would say to Bob, “Hey! You aren’t using those!
Put them back!” Have you noticed this happen? Even though Bob wasn’t using the
blocks, they’re still in his pool. But this isn’t a problem, since so far,
nobody else has asked for more blocks.
The average Windows user immediately complains when they don’t have “free
memory.” But if you think about this, “free memory” is really just “wasted
memory” because it’s not in use. Why did you pay for that extra gigabyte
A common “complaint” about Android, usually from users of
other phones is that you can’t close
applications in Android. For the most part, this is correct, there’s no simple
way to “close” an application - but why did you want to? Unless the application
is specifically written to run things in the background, once it’s no longer the
foreground application, it’s not running. “But wait!” you say. “It’s still
using up memory!” Yes, yes it is - but until you need that memory,
why do you care what else is using it? Android will happily shoot that other
app in the head and steal its memory for you - but only if you actually need it.
But if you don’t, and you want to switch back to that previous application, you
don’t have to restart it from the beginning, it’ll just pick up where it left
off. This is GOOD, it’s an advantage.