如何设计功耗较低的移动应用程序?

时间:2009-04-10 12:02:00

标签: .net mobile

我将很快开展一个关于移动应用程序的项目。 此应用程序将在Windows Mobile的PDT上运行,我们将使用Visual Studio和.NET进行开发。

此应用程序将集中使用Wifi,并且需要消耗尽可能少的电量。 我在互联网上发现了很多涉及电源管理的嵌入式软件和实时系统。但这些东西与硬件有关,并没有谈论软件设计。

我还发现了一些有趣的最佳实践,但主要关注应用程序的代码(例如,尽快关闭句柄或使用少量I / O)。

我想知道您是否了解有关此类应用程序的体系结构或设计的一些线索。

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

感谢您的帮助。

编辑:好的,所以Dave给了我们一些线索,我们可以称之为架构决策。 所以我想我清楚地看到了两个不同层次可以做到的事情:

  • 在高级别,如Dave的决定;
  • 处于低抽象级别,接近最小化电池消耗的代码,技巧和提示。

在中间抽象级别(在设计阶段)怎么样?是否存在一些低功耗软件设计方法(设计模式,以及......)?

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

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

2 个答案:

答案 0 :(得分:1)

也许您可以链接到您找到的最佳做法。你期待除了他们之外还有什么样的线索?我认为this是你发现的一部分,而this更倾向于笔记本电脑多核处理器。

Windows Mobile充其量只是一个软实时系统,与实时相差甚远。我怀疑你会在那种描述和建议中找到很多用处。

否则,我会说你有相当标准的东西。如果可以,请关闭Wifi以及其他设备。如果您有可用的内存,请使用缓存(但要衡量正在发生的事情,以便缓存不会成为一种负担)。永远不要做空闲循环,但是使用Thread.Sleep()或更好,尝试使用短处理突发来使事件驱动。线程可以是你的朋友,明智地使用。

当然,简介就像疯了一样。代码在CPU使用率方面越高效越好。

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

答案 1 :(得分:0)

尽可能不频繁地使用wifi和其他功耗密集型功能。如果它是实用的,当一定数量的请求待处理而不是按需进行时,批量wifi传输。