memória de drawables, é melhor ter recursos dentro APK, fora APK ou é o mesmo para a memória?
Pergunta
Eu tenho um aplicativo que desenha um monte de gráficos e alterá-las. Desde que eu tenho muitos gráficos, pensei de ter as imagens fora do APK, baixado da internet, conforme necessário, e salvo na pasta da aplicação arquivos.
Mas eu comecei a ficar exceções OutOfMemory.
A pergunta é: Será que android diferente memória alça se eu carregar um gráfico de APK do que se eu carregá-lo de 'disco'
código usando APK:
topView.setBackgroundResource (R.drawable.bg);
código se imagem é APK fora:
Drawable d = Drawable.createFromPath (PATHNAME); topView.setBackgroundDrawable (d);
Graças
Daniel
Solução
Não, internamente eles são tratados da mesma. Muito provavelmente, você está vazando as imagens, ou não limpá-los tão rapidamente quanto você poderia. Tente chamar Bitmap.recycle();
uma vez que você é feito com uma imagem, para forçar Android para limpá-lo.
Outras dicas
Durante a execução, o consumo de memória que você está vendo deve ser sobre a mesma, não importa o caminho que você carregá-lo. Android vai usar um utilitário para recursos byte-align internos ao apk que deve melhorar os tempos de carregamento.