« Os números de 2011
Configurando codecs no Windows (Atualizado) »

Android quebra o limite de 50MiB para aplicativos

spacer

Usando a mesma imagem aleatória que usaram no post original

Os aplicativos para Android são historicamente limitados a apenas 50MiB (antes o limite era um pouco mais baixo, 40MiB se não me engano, por limitações da partição /cache de alguns aparelhos mais antigos). Apesar de 50MiB serem mais que suficientes para praticamente qualquer aplicativo que você vá escrever para um smartphone, jogos são comumente uma exceção a essa regra: jogos fazem uso de arquivos multimídia (vídeo e áudio), texturas, arquivos de imagem e outros que naturalmente ocupam muito espaço.

A limitação faz sentido quando você pensa como o Android é estruturado: o aplicativo obrigatoriamente fica na partição /data, que ocupa uma parcela na memória interna do aparelho (isso em aparelhos pré-Honeycomb, já que o HC para frente usam um sistema de arquivos unificado). Apesar de ter como mover parte do aplicativo para a memória externa, isso implica uma série de limitações e mesmo assim bibliotecas que o aplicativo usa e o infame cache Dalvik continuam ocupando espaço na memória interna. Se não houvesse esse limite de tamanho, um jogo “mais pesado” facilmente tomaria conta de toda a partição /data, o que impossibilitaria o uso do telefone (quando a partição /data fica lotada diversas funções do dispositivo Android são desabilitadas, porque essa é a partição principal do usuário).

Para driblar essa limitação muitos desenvolvedores criavam um aplicativo “burro”, que não continha o aplicativo em si. Tudo que ele fazia era baixar o aplicativo via internet, salvá-lo no cartão externo (que geralmente é o microSD, montado no /sdcard) e executá-lo. Isso funciona relativamente bem, mas tem várias desvantagens: cada desenvolvedor implementava um downloader diferente. Alguns eram bem inteligentes, porém outros eram péssimos (um exemplo é o do Sonic CD que não resume caso o download pare na metade e não permite você baixar os arquivos em background), o que torna a experiência do usuário frustrante. Para o desenvolvedor também era ruim, pois ele precisava pagar um servidor externo para hospedar os arquivos, e dependendo do servidor (mais uma vez o exemplo do Sonic CD) isso tornava a experiência de baixar os arquivos necessários frustrante. Isso sem falar que geralmente antes de você conseguir baixar os arquivos extras você estourava o limite de 15 minutos que o Market permite você reembolsar uma compra, o que tornava a compra de jogos no Android um tiro no escuro.

Para melhorar a experiência de usuário, o Google resolveu intervir. Agora os aplicativos no Market podem ter até 4GiB de tamanho, dividido em três arquivos: o .apk, que é o aplicativo em si, continua com um limite de 50MiB. Porém agora o aplicativo pode conter dois arquivos de expansão, cada um com até 2GiB (acredito que essa seja uma limitação colocada por causa do sistema de arquivo comumente usado nos cartões microSD, FAT). Esses arquivos continuam sendo armazenados no /sdcard, porém agora num lugar padronizado. A recomendação do Google é que um desses arquivos tenham arquivos fixos, que não mudem com o tempo para evitar que o usuário tenha que baixá-los a cada atualização. O segundo arquivo serviria para patches ou arquivos que mudem com frequência.

A grande vantagem agora é que o Market está ciente desses arquivos: ao invés de aparecer o tamanho do .apk irá aparecer o tamanho total do download e o período de reembolso só irá começar depois que todo o download for feito. Nenhum desenvolvedor precisará pagar mais por servidores capengas pois tudo será armazenado nos próprios servidores do Google. E quem irá fazer os download será o próprio Market quando o celular suportar as versões mais recentes (o que eu acredito que usará todas as vantagens que o Market oferece como auto-updates), ou via uma biblioteca que aparentemente está bem servida de recursos (ele verifica se o usuário está na rede Wi-Fi, permite pausar e continuar os downloads depois e também permite download em background com uma notificação avisando o progresso) nos aparelhos que por um motivo ou outro rodem versões mais antigas do Market.

No fim todo mundo sai ganhando, o usuário tem uma experiência melhor de uso, o Google tem uma plataforma que fica cada vez mais consistente e por consequência pode vender ainda mais e o desenvolvedor tem menos trabalho a fazer. Para quem quiser ler mais, pode ver o post no Android Developers sobre a novidade.

Rate this:

Compartilhe:

Gostar disso:

Gosto
Seja o primeiro a gostar disso post.

android, jogos, market, sdcard, sonic cd

This entry was posted on 06/03/2012, 0:24 and is filed under Android, Celulares, Games. You can follow any responses to this entry through RSS 2.0. Você pode deixar uma resposta, ou trackback do seu próprio site.

  • Comentários ( 0 )
  1. Deixe um comentário

Deixe uma resposta Cancelar resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

spacer
spacer

You are commenting using your WordPress.com account. ( Sair / Alterar )

spacer

You are commenting using your Twitter account. ( Sair / Alterar )

spacer

You are commenting using your Facebook account. ( Sair / Alterar )

Cancelar

Connecting to %s

gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.