Я пытаюсь понять, почему мое приложение использует столько памяти. Я часто вижу, что он использует от 15 до 18 МБ, что значительно выше, чем я ожидал. Я посмотрел размер кучи через DDMS и увидел это:
Это выглядело немного подозрительным, потому что мое приложение вообще не занимается большими изображениями. Фактически общая сумма чертежей в моем приложении составляет около 250 КБ. Поэтому я создал кучу кучи и использовал MAT для определения места, где все это происходило. байт [] были самым большим потребителем, поэтому я развернулся и заметил следующее:
У меня нет абсолютно никакой идеи, почему sPreloadedDrawables отвечает за такой высокий размер кучи. Я также не знаю, как определить основную причину или как ее исправить.
Куда мне идти дальше? Мое приложение работает в основном в фоновом режиме через службы, которые вообще не занимаются данными изображения. У меня есть действия, которые пользователь может использовать, но опять же они используют небольшие чертежи, которые не объясняют такой большой размер кучи. Я также проверил любые неприятные случаи утечек активности и т.д., Но не нашел их.
EDIT: Я заметил, что размер кучи существенно ниже при запуске в эмуляторе. Это довольно запутанно.:/