Custo de dados reduzido para bilhões

Em alguns países, planos de dados podem custar mais de 10% da renda mensal do usuário. Isso significa que minimizar o tamanho do download do aplicativo e permitir que o usuário controle como o produto usa dados pode gerar um benefício grande e tangível. Minimizar o tamanho do download também ajuda a poupar espaço no armazenamento interno, que é um recurso escasso em alguns dispositivos.

Aqui você pode encontrar algumas estratégias para ajudar a otimizar a quantidade de dados usados pelo seu aplicativo, tanto na rede quanto no armazenamento interno.

Reduzir o tamanho do aplicativo

A redução do tamanho do aplicativo é uma das maneiras fundamentais de ajudar seu usuário a consumir menos dados, seja na rede ou no armazenamento interno. Esta seção descreve várias abordagens para reduzir o tamanho do aplicativo.

Reduzir o tamanho de ativos gráficos do APK

  • Com frequência, os ativos gráficos são os maiores culpados pelo tamanho do APK. Otimizar esses recursos pode resultar em downloads menores e, assim, tempos de instalação mais rápidos para os usuários.
  • Para recursos gráficos, como ícones, use o formato Scalable Vector Graphics (SVG). As imagens SVG são relativamente pequenas quando comparadas a gráficos em bitmaps e podem ser renderizadas no tempo de execução a qualquer resolução. A Android Support Library fornece uma implementação compatível com versões anteriores para recursos de vetor no Android 2.1 (nível de API 7). Dê os primeiros passos com os vetores com esta postagem do Medium.
  • Para imagens não vetoriais, como fotos, use o WebP e reduza os tempos de carregamento da imagem e economize a largura de banda da rede. O formato WebP resulta em tamanhos de arquivos menores do que os formatos PNG e JPG, com uma qualidade de imagem semelhante. Mesmo em configurações com perda, o WebP pode produzir uma imagem quase idêntica à original. O Android oferece suporte a WebP com perda desde a versão o 4.0 (nível de API 14: Ice Cream Sandwich) e para WebP sem perda e transparente desde o Android 4.2 (nível de API 17: Jelly Bean).
  • Se você tiver muitas imagens grandes com várias densidades, considere usar o suporte a vários APKs para dividir seu APK por densidade. Isso resulta em versões direcionadas a densidades específicas, o que significa que os usuários com dispositivos de densidades mais baixas não precisarão se preocupar com o download de ativos de alta densidade não utilizados.
  • Para obter mais informações sobre como reduzir o tamanho do APK, consulte Reduzir o tamanho do APK e Diminuir seu código e recursos. Além disso, você pode encontrar um guia detalhado sobre redução de tamanho de APK nesta série de postagens no Medium.

Reduzir o tamanho do código

  • Todas as bibliotecas do seu projeto Android podem adicionar códigos não utilizados ao APK. Seja particularmente cuidadoso ao usar bibliotecas externas. Isso porque nem todas elas são projetadas para uso em apps para dispositivos móveis. Verifique se as bibliotecas usadas por seu aplicativo são otimizadas para uso em dispositivos móveis.
  • Considere otimizar seu código compilado usando uma ferramenta como o ProGuard. O ProGuard identifica códigos que não estão sendo usados e remove-os do APK. Além disso, ative a redução de recursos no tempo de compilação configurando minifyEnabled=true, shrinkResources=true em build.gradle. Isso remove automaticamente os recursos não utilizados do seu APK.
  • Ao usar serviços do Google Play, você deve incluir seletivamente apenas as APIs necessárias no APK.
  • Para saber mais sobre como reduzir o tamanho do código no seu APK, acesse o treinamento do Android sobre como Evitar estruturas de injeção de dependências.

Permitir que o aplicativo seja movido para o armazenamento externo (SD)

  • Dispositivos mais acessíveis frequentemente têm pouco armazenamento interno. Os usuários podem aumentar esse armazenamento com cartões SD, no entanto, os aplicativos precisam declarar explicitamente que oferecem suporte à instalação em armazenamentos externos para que os usuários possam movê-los.
  • Permita que seu aplicativo seja instalado em armazenamentos externos usando o sinalizador android:installLocation no AndroidManifest.xml. Para saber mais sobre como permitir que seu aplicativo seja movido para o armazenamento externo, acesse o guia do Android sobre o Local de instalação do aplicativo.

Reduzir o uso de disco do aplicativo pós-instalação

  • Manter o uso de disco do seu aplicativo baixo significa que os usuários terão menos probabilidade de desinstalá-lo quando o espaço livre de seus dispositivos estiver acabando. Ao usar caches, é importante aplicar limites em torno dos seus caches, evitando que o uso de disco do seu aplicativo cresça indefinidamente. Coloque seus dados armazenados em cache em getCacheDir(). O sistema pode excluir os arquivos colocados aqui conforme a necessidade, assim, eles não serão mostrados como espaço ocupado pelo aplicativo.

Oferecer uso de rede configurável

A plataforma Android inclui várias maneiras de oferecer ao usuário o controle sobre o uso da rede do seu aplicativo, otimizando-o para as necessidades dele. Por exemplo, quando for usado pela primeira vez, seu aplicativo pode orientar o usuário em várias configurações relacionadas à rede. Você também pode fornecer uma tela de preferências de rede de fora do aplicativo.

Fornecer experiências de integração para as escolhas de rede dos usuários

  • Aplicativos que permitem que os usuários reduzam o uso de dados são bem recebidos, mesmo que eles tenham requisitos de dados pesados. Se seu aplicativo usa uma quantidade considerável de largura de banda (por exemplo, aplicativos de streaming de vídeos), você pode fornecer uma experiência de integração para que os usuários configurem o uso da rede. Por exemplo, você pode permitir que o usuário force streams de vídeo com taxas de bits menores em redes celulares.
  • Configurações adicionais permitindo que os usuários controlem a sincronização de dados, a pré-recuperação de dados e o comportamento de uso da rede (por exemplo, pré-recuperar todas as categorias de notícias marcadas com estrela somente por Wi-Fi) também ajudam os usuários a adaptar o comportamento do seu aplicativo de acordo com as necessidades deles.
  • Para saber mais sobre como gerenciar o uso da rede, acesse o treinamento do Android sobre como Gerenciar o uso da rede.

Fornecer uma tela de preferências de rede

  • Você pode navegar para a tela de configurações de rede do aplicativo de fora do aplicativo por meio de uma tela de preferências de rede. Essa tela pode ser invocada da tela de configurações do sistema ou da tela de uso de dados do sistema.
  • Para fornecer uma tela de preferências de rede que os usuários possam acessar de dentro do seu aplicativo e das configurações do sistema, inclua no aplicativo uma atividade que ofereça suporte à ação ACTION_MANAGE_NETWORK_USAGE.
  • Para saber mais sobre como adicionar uma tela de preferências de rede, acesse o treinamento do Android sobre como Implementar uma atividade de preferências.