#android #java
Когда я создаю картинку примерно 2000х2000 пикселей она занимает в куче примерно 15Мб. Когда я создаю 1500х2000 она занимает примерно 12Мб. Но когда я создаю более чем 2000х2000 в DDMS почему-то показывается что максимальный однобайтовый объект занимает 1Мб. Хотя сама куча довольно сильно увеличивается и работа с картинкой нареканий не вызывает. Почему DDMS выдает 1Мб ??
Ответы
Ответ 1
Ответ из комментария: Насколько я помню, при некоторых условиях, применяется оптимизация — контент Bitmap помещается в shadow heap, который, соответственно, не засчитывается в application heap. При каких условиях и что именно происходит — полагаю, только в сорцах андроида читать, в документации вряд ли. На работу recycle это никак не влияет, так как recycle, фактически, ничего и не делает, кроме как помечает pixel data Bitmap как dead и помогает таким образом GC при его следующем вызове.Ответ 2
У битмап есть ограничение в использовании памяти, если картинка превышает объем памяти пула, то вылет с ошибкой. Решается это путем шифрования или перевода в текстов. Файл или же так -http://m.habrahabr.ru/post/139717/
Комментариев нет:
Отправить комментарий