Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Alocação de memória (parece pergunta básica, mas não é)

Marcelo,

voce pode criar um serviço para fazer o processamento de cada imagem e mandar esse serviço rodar em um processo separado da sua app. Assim voce tera 64MB (ou o max heap size do seu device) apenas para fazer o processamento da quela imagem. Lembrando que o processamento deve ser assincrono.

Voce pode entao optar pelo mesmo serviço processar as imagens sequencialmente ou na pior das hipoteses caso tenha problemas com o garbage colector, pode simplesmente matar o processo e começar de novo pra cada processamento de imagem. Isso garante que voce vai ter um heap novo pra ser usado.

Voce pode administrar a fila de imagens a serem processadas na sua app principal e fazer a comunicação com o outro processo via intents mesmo. Se der um OOM no seu serviço voce toca o barco sem problemas.

Abs,
Rodrigo.


2014-03-10 18:44 GMT-03:00 Marcelo Alves <marcelo.alves@gmail.com>:

O problema é que 64MB não é muito se fosse eventual, mas existem casos que eu recebo centenas de imagens de diversos tamanhos na sequência, só não recebo mais rápido por causa da velocidade do Wi-Fi, o que facilita e muito a fragmentação de memória. Daí o que entendi que ocorre é que o OS prefere matar meu app a um GC / organização de memória mais frequente. Não culpo o OS, mas se eu tivesse como fixar um pedaço de RAM e usar como quisesse e o OS me avisasse "ei, preciso de RAM agora, devolve tudo aí", seria o ideal pra mim e pra ele.

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário