Причины, по которым мое приложение для Android постоянно разбивается на моем телефоне, но не на моем эмуляторе

У меня есть приложение, в котором используется довольно много графических элементов.

Когда я открываю и закрываю свое приложение повторно на эмуляторе (1.5 – 2.2), он работает нормально, и, проверяя кучу, я вижу, что все очищается и gc'd правильно.

Однако, когда я запускаю свое приложение на телефоне HTC Aria (2.1), приложение падает каждый раз, когда я пытаюсь его снова открыть. Когда я смотрю на кучу, я вижу, что объекты НЕ очищаются, как в эмуляторе.

Кто-нибудь знает, почему такое поведение может происходить? Я попробовал это на другом HTC Aria (друзья), и он разбился так же, как на моем телефоне, поэтому я думаю, что он не просто изолирован от моего телефона.

Любые мысли или идеи были бы действительно оценены, почему вещи правильно очищаются на эмуляторе, но не на моем телефоне. Одно замечание – это то, что у меня есть работа и gc'ing на моем телефоне несколько дней назад, и я не сильно изменился, и теперь он не работает на моем телефоне, поэтому для меня это немного загадка.

Благодаря!

Заметка:
Авария вызвана исключением OutOfMemory. Я предварительно загружаю несколько графиков, и недостаточно памяти для двух экземпляров приложения, которые будут работать одновременно, поэтому он сбой, потому что первый экземпляр приложения не был правильно очищен.

У вас есть несколько эмуляторов, которые запускают только это приложение, закрывая его и запуская снова. У вашего Android-устройства есть несколько процессов, работающих в одно и то же время, например, синхронизация фона, уведомление Facebook, уведомление Twitter, синхронизация календаря, синхронизация контактов и т. П.

Один из способов взглянуть на это – попытаться воспроизвести состояние вашего Android-устройства на разных эмуляторах и посмотреть, можете ли вы получить ту же ошибку на эмуляторах. Используйте некоторые приложения, которые синхронизируются в фоновом режиме, и другие, которые используют много памяти. Тогда у вас есть среда тестирования, которая имитирует реальный мир, и вы можете изменить свое приложение до состояния, где он не сбой. Возможно, уменьшите количество изображений настолько, насколько сможете, чтобы облегчить использование памяти.

Помните, вы никогда не сможете заставить коллекционера Garbace начать. Вы можете только сообщить системе, что можно собрать этот мусор.