SETUP:記憶與活動::內存不足
我有此應用程式,其具有沿直線路徑4周的活動,真正簡單的導航: A - >乙 - 「ç - > d
所有這些活動共享相同的背景圖像,並且都有一些常規按鈕,一個textview或一個edittext。所有這些都是在單獨的視圖xml文件中定義的。
背景是一個漸變,是沉重的。大約3 megs作爲一個未壓縮的位圖。
該應用什麼也不做的是,在它的唯一邏輯,是開始活動,並關閉這些按鈕點擊
我試圖用MAT找到內存泄漏,但未能發現任何東西。在我的應用程序中保留的最大尺寸是656(ko?),應用程序的總保留尺寸是1520(ko?),我找不到任何會被複制的對象。 它的方式完全違背dumpsys這說明27300(?KO)分配
問題:
- ,當我瀏覽的時候,我看到的背景大小增加了內存使用情況等同。
- 當我向下導航時,使用後退按鈕或完成命令關閉活動時,應用程序的內存使用量不會減少。
- 如果我從A到D然後返回到B並旋轉屏幕,則應用程序組將以OutOfMemory異常關閉。
問題:
更新:我想真正的問題是,爲什麼我有一個巨大的內存泄漏(5兆在時間)在凍結時間27megs應用程序的大小,我不能在MAT中看到它?
- 爲什麼Android會多次解壓縮相同的背景,每個活動一次?似乎效率低下。
- 是否有可能通過使用主題來克服這個問題,還是我會看到相同的「按活動分配1個背景」怪異?
- 爲什麼關閉時不能回收活動?
- 爲什麼MAT和dumpsys呈現不同的數字?
線索
在完全相同的時間,我有: dumpsys meminfo中:
Applications Memory Usage (kB):
Uptime: 74006853 Realtime: 110962243
** MEMINFO in pid 22683 [com.kayenko.sosadresse] **
native dalvik other total
size: 20820 5767 N/A 26587
allocated: 18751 2901 N/A 21652
free: 312 2866 N/A 3178
(Pss): 1357 201 16782 18340
(shared dirty): 2264 1804 5456 9524
(priv dirty): 1280 116 16032 17428
Objects
Views: 0 ViewRoots: 0
AppContexts: 0 Activities: 0
Assets: 2 AssetManagers: 2
Local Binders: 18 Proxy Binders: 16
Death Recipients: 1
OpenSSL Sockets: 0
SQL
heap: 0 MEMORY_USED: 0
PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 0
而這種支配樹:
Thansk給任何人關於我是什麼的線索假設尋找。
謝謝哈維,這是非常豐富的。我已經查看了你給我的鏈接,但不幸的是沒有任何幫助。我不知道launchmode,必須承認我對它應該做的事情一無所知。我想我將不得不測試它,因爲文檔和往常一樣「缺乏」:) – Yahel
我會將你的答案標記爲答案,因爲你實際上給了我4個答案中的3個:D – Yahel