2009-04-10 41 views
2

我将很快开展一个关于移动应用程序的项目。 此应用程序将在Windows Mobile上使用PDT,我们将使用Visual Studio和.NET来开发它。如何设计耗电量较低的移动应用程序?

此应用程序将密集使用Wifi,并需要消耗尽可能少的权力。 我在互联网上发现了很多与嵌入式软件和实时系统有关的东西,这些东西涉及电源管理。但是这个东西与硬件相关,并没有谈论软件设计。我还发现了一些有趣的最佳实践,但主要关注应用程序的代码(例如,尽快关闭句柄或使用很少的I/O)。

我想知道你是否知道关于这样的应用程序的体系结构或设计的一些线索。

我还看到了关于使用事件驱动架构的建议:关于节电是否非常有用?它可以与Compact Framework一起使用吗?

感谢您的帮助。

编辑:好吧,所以戴夫给了我们一些线索,我们可以称之为架构决策。 因此,我认为我清楚地看到什么可以在两个型动物层面进行:

  • 在一个高的水平,这样的决定是大卫的;
  • 处于低抽象层次,接近代码,技巧和技巧,最大限度地减少电池消耗。

在中间抽象层次(设计阶段)呢?是否有一些低功耗软件设计的方法论(设计模式,甚么......)?

链接: http://msdn.microsoft.com/en-us/library/aa455167.aspx

http://www.eventhelix.com/RealTimeMantra/Basics/

回答

1

也许你可以链接到你找到的最佳实践。除了他们之外,你还期待什么样的线索?我想this是你发现的一部分,而this更多针对笔记本电脑多核处理器。

Windows Mobile最多是一个软实时系统,与硬实时非常相似。我怀疑你会在这种描述和建议中找到很多用处。

否则,我会说你有相当标准的东西。如果可以,请关闭Wifi,以及其他设备。如果您有可用的内存,请使用缓存(但要测量发生了什么情况,以便缓存不成为责任)。永远不要做一个空闲循环,但使用Thread.Sleep()或更好的方法,尝试使事件驱动的所有事情都以短处理突发进行。线程可以成为你的朋友,明智地使用。

而且,当然,配置文件就像疯了一样。代码在CPU使用率方面效率越高越好。

但更具体的建议将不得不取决于你试图解决的问题。为什么你的应用程序需要Wifi密集型?需要收到或发送什么信息?谁是用户,他们在哪里移动?是否有涉及繁重的计算?你需要提供多少用户界面?您是否针对特定硬件(特定的CPU和WLAN接口将具有不同的功耗行为)。

0

使用WiFi和其他能源密集型功能尽可能少。如果可行的话,当一定数量的请求待处理时进行批量的无线传输,而不是按需进行。

相关问题