2009-04-10 67 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和其他能源密集型功能儘可能少。如果可行的話,當一定數量的請求待處理時進行批量的無線傳輸,而不是按需進行。