I will soon work on a project about a mobile application. This application will work on a PDT with Windows Mobile and we will use Visual Studio and .NET to developp it.
This application will intensively use Wifi and need to consume as little power as possible. I found on the internet a lot of stuff concerning embedded software and real time systems, which deal with power management. But this stuff is very hardware related, and does not talk about software design.
I also found some interesting best practices but that mainly focus on the code of the application (for example, close handles as soon as possible or use few I/Os).
I would like to know if you are aware of some leads concerning the architecture or the design of such application.
I also saw advice about the use of event driven architecture: is it so useful concerning power saving ? And is it usable with the Compact Framework ?
Thanks for your help.
Edit: Ok, so Dave gave us some clues, that we could call architecture decisions. So i think i see clearly what could be done at two differents levels:
- at a high-level, such decisions as Dave's ;
- at a low level of abstraction, close to the code, tricks and tips that minimize the battery consumption.
What about at a middle level of abstraction (during the design phase) ? Is there some methodology for low-power software design (design patterns, what so ever...) ?
Links: http://msdn.microsoft.com/en-us/library/aa455167.aspx