2011-07-30 87 views
2

我有一個運行服務的Android應用程序。Android服務內存使用情況

當我查看Android設置中的「正在運行的應用程序」菜單時,我看到我的應用程序內存使用量爲012至之間9-16MB。

我使用DDMS分配跟蹤器來查看它來自哪裏,但所有的對象都小於500字節。

是否有意義?任何其他方式來跟蹤我的應用程序的內存使用量?

另外,只要服務正在運行,我就會打開一個SQLite數據庫。這也是對記憶的影響嗎?

謝謝。

+0

現在解決了嗎?怎麼做? – thecr0w

回答

2

它有道理嗎?

它既沒有意義也沒有意義。您可以通過500的增量獲得「9-16MB」,就像您可以以5000的增量一樣容易到達「9-16MB」。此外,AFAIK分配跟蹤器不會跟蹤所有內容(例如,在3.0之前的環境下的位圖)。

任何其他方式來跟蹤我的應用程序的內存使用情況?

轉儲你的堆(例如,使用DDMS中的Dump HPROF File工具欄按鈕)並用Eclipse的MAT插件檢查結果。在2011年Google I | O會議上有關於此的演講 - the YouTube video is online。您可以使用它來跟蹤內存泄漏。

這是否也影響記憶?

一些,我敢肯定。

另一個問題實際上是服務本身。您的目標應該是儘可能少地將該服務存儲在內存中,並且只有在積極爲用戶提供持續價值的時候。理想情況下,您的服務在99%的時間內被銷燬。