Pocket PC Power Management Series 8: Why Pocket PC's Battery Life so Notorious?
====>SiteMap of this Blog<===
Pocket PC Power Management Series 8: Why Pocket PC's Battery Life so Notorious?
In my two previous Pocket PC Power Management Series (Series 5 and Series 6), I am trying to tackle the task of writing either continuously-running or periodically-running programs. I must admit such programs do not fit nicely into Microsoft's Windows Mobile-powered Pocket PCs, after having working on such applications myself for more than 1 year. Why? The fundamentally-flawed design of the Pocket PC devices prevent any good developer from developing really battery friendly programs.
When Pocket PC device was initially designed, Microsoft made the decision that the device should never shutdown, probably by following Palm's design. Unless battery is removed, the device is always "alive". Unfortunately, Microsoft's OS is a trimmed version of its bigger brother Desktop Windows. Desktop Windows was never designed to be CPU or power friendly; in fact, desktop Windows seems to be proudly following the path of being more and more power hungry. Windows CE, trimmed down in the sense of fewer APIs, does not have any luxury of touching the underlying OS layer to make it more battery friendly. So I guess Pocket PC team had to make the decision to force the OS to sleep frequently to save power. The basic idea is like: Aha, CPU is running and burning battery. How about I force it not to run?
This idea apparently does not fly, or at least, does not fly well. Why? As Mike Calligaro from Microsoft points out, "Staying on all the time actually burns less power than going to sleep." Why? "The issue is that it takes a 'long' time to go to sleep and a similarly long time to wake back up." Please read his excellent post for details.
To make matter worse, Pocket PC 2003 uses RAM as storage. RAM must be powered constantly to keep its stuff, even if the device is sleeping. This is another big battery sucker. As Mike Calligaro vividly pointed out in his another post, when you see the dire warning saying something to the effect of, "You are running of battery. Batter save your data now, because you're on the verge of losing it." At that point, you can't use the device again until you plug it in. How much battery charge do you think you have then? Try half. Yes, when you are shut down because your batteries were "critically low," they were still 1/4 to 1/2 full. Why? Because, if the batteries ever fully died, it would be catastrophic. You'd lose your data. So Microsoft made a requirement and held OEMs to it. The requirement was that, at the point where the batteries were decided to be "critically low," they had to still have enough power to keep the RAM charged for 72 hours.
Realizing the two fundamental flaws of Pocket PC devices: (1) Forcing CPU not to run to save battery actually consuming more battery; (2) Using RAM as storage just does not work the way out, Microsoft learnt the lesson and designed the smartphone platform quite differently. The smartphone does not sleep, and can be shutdown just like a desktop computer. And, smartphone uses Flash as storage, which consumes much less power. Both smartphone 2003 and smartphone 5.0 are like this.
Unfortunately, Pocket PC 5.0 still inherits the sleeping legacy from Pocket PC 2003, although it uses Flash as storage. That is why all my previous posts apply to both Pocket PC 2003 and Pocket PC 5.0.
Next I will talk about how to make your program battery friendly. This is particularly important, since our problem domain are applications that need to run either continuously or periodically.
Category: [Power Management]