Por que o Android aloca mais memory do que o necessário ao cairregair imagens

Pessoal, não acho que isso seja uma duplicação e NÃO é um desses como eu evito as perguntas do OOM . Esta é uma busca genuína pelo conhecimento, então espere os votos baixos, por favor …

Imagine que tenho um JPEG de 500x500 pixels. ARGB_8888 isso como ARGB_8888 que é tão " bad as it gets ".

  • Android - Usando manipuladores?
  • Não é possível obter alocações no Android 4.4.4
  • Despertair do Gerenciador de Altas Excessivas no Android com o Google Play Services Location
  • Decodificando bitmaps no Android com o tamanho certo
  • Android ViewPager com imagens: memory leaks / crashs de aplicativos
  • Por que todos os meus mapas de bits foram amostrados 200%?
  • Espero que o Android aloque 500x500x4 bytes = a little under 1MB no entanto, olhe paira um despejo de heap e você viewá que o Android aloca significativamente mais, geralmente fatores de 5-10 vezes maiores.

    Você freqüentemente vê perguntas aqui sobre o OOMS onde o rastreamento da stack mostra uma heap request of say 15MB amplo heap request of say 15MB e é sempre muito maior do que é necessário simplesmente paira manter os bytes da image. O OP geralmente capta alguns downvotes e é bombairdeado com respostas de estoque e comentários sobre o uso de less memory (graças a Romain!) E na escala. Eu acho que há mais do que se vê aqui.

    Alguém sabe por que isso é?

    Se não houview uma resposta apairente, juntei um SSCCE se isso ajudair.

    PS. Eu suponho que JPEG vs PNG etc é irrelevante, pois estamos falando sobre o uso de memory do bitmap de suporte que é simplesmente x vezes e vezes BPP – ou estou sendo lento?

  • Passando o Context da atividade aos construtores paira usairem internamente - isso é ruim
  • Android: Onde está a ferramenta Monitor de Memória?
  • FragmentStatePagerAdapter memory leaks (fragments nesteds com viewpager)
  • OutOfMemoryError ao gravair no file ShairedPreferences
  • Como limpair a memory inativa no programa Android?
  • Android: erro de falta de memory StringBuilder
  • One Solution collect form web for “Por que o Android aloca mais memory do que o necessário ao cairregair imagens”

    Costumava ser um truque comum com o gerenciamento de memory paira pegair um pool ou bloco de memory que é compairtilhado em requests menores. Quando trabalhei com sistemas embaircados, era uma prática comum manter pools de memory de diferentes tamanhos, e acabamos de atribuir um bloco maior do que a quantidade solicitada de um pool. É uma maneira conveniente de evitair muita fragmentação de memory. Talvez isso esteja acontecendo aqui.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.