2011-07-06 40 views
1

我一直在尋找在這裏和There,我已經成爲好奇。非常省電的應用程序/小工具(安卓)

我想知道如果有是通常適用於Android應用程序,以確保它們不會成爲電池餓了什麼主食。例如通常添加的代碼部分,以確保應用程序在退出時一路關閉?

會是什麼,我可以做,以確保我的應用程序/插件不會消耗電池壽命的最佳實踐(代碼明智)。

例如可以只說我的應用是,如果你調查有關電池的消耗,你會發現,大部分的充電的信息一個與用戶交互的一點點或一個簡單的小工具(不是遊戲等)

回答

3

檢查我認爲最好的做法是一種死衚衕,「不要犯可怕的錯誤」。當然,這看起來很硬。

  • 關閉所有的方式不是你需要考慮的。你應該儘可能少地佔用內存。不是因爲它使用電池,但是使用的越少,程序可以留在內存中的程度就越多(因此越少關閉!),並且可以在沒有太多麻煩的情況下啓動。重新加載的東西很貴,把它保存在內存中不是!
  • 要知道,一個服務(後臺進程,報警等)是昂貴的,因爲它實際上可以做一些事情時,它不是在視圖中。確保這些關閉。
  • 應該在那裏(更新,加載等)的背景資料應該儘可能少的資源,就像正常使用
  • 正常使用:使用像網絡,位置等少量資源。它有點像你想象的那樣工作。此外,您使用的內存越少,其他程序可以保留在內存中的次數越多,電池壽命也越短。
1

通過WiFi,藍牙,GPS功能的,系統和display.So食用時開發應用應該由用戶自己是如何使用resource.Also調用完成(),而退出應用釋放一些資源(內存)

+1

調用'完成()'退出你的應用程序將,從長遠來看,最終不是讓Android的管理的應用消耗更多的電能。這是因爲下次啓動應用程序時,它必須重新加載到內存中,並且任何應用程序特定的初始化都需要再次發生,而不是僅僅重新激活。 – RivieraKid

+0

@RivieraKid你正在應用程序將被重新加載的假設下工作。這可能不適用於您開發的每個應用程序。如果應用程序不經常使用,將其加載到RAM上僅意味着最頻率。使用過的應用程序可能會換成它。 –

+0

@Mister - 雖然這個特殊的邊緣案例似乎有利於「退出」你的應用,但事實是Android內存管理器已經維護了一個LRU應用列表,並且更願意將你最常用的應用保留在內存中經常。如果你正在編寫一個很少被使用的應用程序(或者任何應用程序,即使我每天都在使用它),但是當你使用它的時候,我會盡可能地說,你需要再次猜測操作系統並嘗試手動釋放資源,那麼這不是我希望將我的名字加入的應用程序。 – RivieraKid