Como reduzir o tamanho do aplicativo Android para 1 MB ou menos
Os aplicativos Android estão se tornando mais complexos e ricos em recursos a cada dia, mas isso também significa que estão ocupando mais espaço nos dispositivos dos usuários. Os usuários geralmente evitam baixar aplicativos que parecem muito grandes, especialmente em mercados emergentes onde a conectividade de rede é ruim ou os planos de dados são caros. Portanto, é importante que os desenvolvedores Android otimizem o tamanho e o desempenho de seus aplicativos sem comprometer a qualidade ou a funcionalidade.
1 mb apk
Neste artigo, explicaremos o que é um arquivo APK e por que ele é importante para aplicativos Android. Também discutiremos os benefícios de reduzir o tamanho do aplicativo e como medi-lo. Em seguida, forneceremos alguns desafios e soluções comuns para a redução do tamanho do aplicativo, como usar o Android App Bundle, reduzir a contagem e o tamanho de recursos, usar o ProGuard, compactar recursos e imagens, minimizar a sobrecarga de recursos, dividir o aplicativo em vários APKs e usar o Lint. Por fim, concluiremos com alguns exemplos de aplicativos que reduziram seu tamanho com sucesso usando essas técnicas.
O que é um arquivo APK e por que é importante para aplicativos Android?
Um arquivo APK significa Android Package Kit; também conhecido como Android Application Package ou apenas como Android Package. É um formato de arquivo de pacote usado pelo sistema operacional Android para a distribuição e instalação de aplicativos móveis, jogos para celular e middleware. Um arquivo usando esse formato pode ser criado a partir do código-fonte escrito em Java ou Kotlin.
Um arquivo APK contém todo o código de um programa (como arquivos .dex), recursos, ativos, certificados e arquivo de manifesto. Ele também contém uma pasta META-INF que contém os arquivos de assinatura e um arquivo de manifesto. Um arquivo APK pode ser aberto em vários sistemas operacionais, mas eles são usados principalmente em dispositivos Android.
O tamanho de um arquivo APK afeta a rapidez com que ele pode ser baixado e instalado nos dispositivos dos usuários.Também afeta quanto espaço de armazenamento ocupa no dispositivo. Um arquivo APK grande pode impedir os usuários de baixar ou atualizar seu aplicativo ou fazer com que eles o desinstale devido à falta de armazenamento disponível no dispositivo. Portanto, é crucial otimizar o tamanho do seu aplicativo o máximo possível.
Quais são os benefícios de reduzir o tamanho do aplicativo e como mensurá-los?
Reduzir o tamanho do seu aplicativo pode trazer muitos benefícios para você e seus usuários. Alguns deles são:
Ele pode melhorar a velocidade de download do seu aplicativo e a taxa de sucesso de instalação.
Isso pode aumentar a taxa de retenção do seu aplicativo e o engajamento do usuário.
Isso pode reduzir o consumo de bateria e o uso de memória do seu aplicativo.
Ele pode melhorar a segurança e a estabilidade do seu aplicativo.
Isso pode melhorar a classificação e a visibilidade do seu aplicativo no Google Play.
Para medir o tamanho do seu app, você pode usar várias ferramentas e métricas fornecidas pelo Google Play Console. Alguns deles são:
O relatório Tamanho do aplicativo mostra como o tamanho do seu aplicativo varia em diferentes configurações de dispositivos e mercados e como ele se compara a aplicativos semelhantes em sua categoria.
O painel do Android Vitals mostra como o tamanho do seu app afeta o desempenho e a estabilidade em diferentes dispositivos e versões do Android.
O relatório de pré-lançamento mostra como o tamanho do seu app afeta sua compatibilidade e qualidade em vários dispositivos de teste antes de lançá-lo para produção.
A ferramenta APK Analyzer mostra a divisão detalhada do tamanho do seu aplicativo por arquivo, recurso e código.
Use o Android App Bundle para fornecer APKs otimizados para cada dispositivo
Uma das maneiras mais fáceis e eficazes de reduzir o tamanho do seu aplicativo é usar o formato Android App Bundle em vez do formato APK tradicional. Um Android App Bundle é um novo formato de publicação que permite fazer upload de um único artefato para o Google Play que contém todos os recursos e códigos compilados de seu aplicativo. O Google Play gera e oferece APKs otimizados para a configuração do dispositivo de cada usuário, como tamanho da tela, densidade, arquitetura da CPU, idioma e assim por diante.Dessa forma, os usuários baixam apenas o código e os recursos necessários para executar seu aplicativo e nada mais.
O uso do Android App Bundle pode reduzir o tamanho do download do seu aplicativo em uma média de 20% e até 50% para alguns aplicativos. Ele também pode simplificar seu processo de desenvolvimento e lançamento, pois você não precisa gerenciar vários APKs para diferentes configurações de dispositivo. Você também pode aproveitar recursos avançados, como módulos de recursos dinâmicos, que permitem fornecer recursos sob demanda ou condicionalmente, e entrega de ativos dinâmicos, que permitem fornecer ativos grandes, como níveis de jogos ou arquivos de mídia com mais eficiência.
Para usar o Android App Bundle, você precisa usar o Android Studio 3.2 ou superior e atualizar o arquivo build.gradle do seu aplicativo para usar o plug-in do pacote. Você também precisa assinar seu aplicativo com uma chave de upload, que o Google Play usa para assinar os APKs gerados em seu nome. Em seguida, você pode criar e carregar seu pacote de aplicativos no Google Play Console e testar como ele funciona em diferentes dispositivos usando a faixa de teste interna ou o recurso de compartilhamento interno de aplicativos.
Reduza a contagem e o tamanho de recursos removendo recursos não utilizados e usando drawables escaláveis
Outra forma de reduzir o tamanho do seu aplicativo é otimizar os recursos que você inclui no seu aplicativo, como imagens, sons, fontes, layouts, animações e assim por diante. Os recursos podem ocupar uma quantidade significativa de espaço em seu aplicativo, especialmente se você tiver várias versões para diferentes tamanhos de tela, densidades, orientações, idiomas e assim por diante. Portanto, é importante remover todos os recursos não utilizados ou duplicados de seu aplicativo e usar drawables escaláveis sempre que possível.
Para remover recursos não utilizados de seu aplicativo, você pode usar a ação de refatoração Remove Unused Resources no Android Studio, que analisa seu código e recursos e identifica aqueles que não são referenciados em nenhum lugar do seu projeto. Você pode excluí-los com segurança do seu projeto.
Para usar drawables escaláveis em seu aplicativo, você pode usar gráficos vetoriais ou ícones adaptativos em vez de imagens de bitmap. Gráficos vetoriais são imagens definidas por arquivos XML que descrevem as formas geométricas, cores, gradientes e caminhos que compõem a imagem. Eles podem ser ampliados ou reduzidos sem perder a qualidade ou aumentar o tamanho. Ícones adaptativos são ícones que consistem em duas camadas: uma camada de primeiro plano e uma camada de plano de fundo. Eles podem se adaptar a diferentes formas e efeitos, dependendo do tema e das preferências do dispositivo.
Para usar gráficos vetoriais em seu aplicativo, você pode criá-los usando ferramentas como o Vector Asset Studio do Android Studio ou o Adobe Illustrator. Você pode então fazer referência a eles em seus layouts XML ou código usando o atributo android:src ou o método setImageResource(). Para usar ícones adaptativos em seu aplicativo, você precisa criar dois arquivos desenháveis: um para a camada de primeiro plano e outro para a camada de fundo. Em seguida, você precisa criar um arquivo XML que faça referência a esses dois arquivos usando o marcação. Em seguida, você pode definir esse arquivo como o ícone do aplicativo em seu arquivo de manifesto usando o atributo android:icon.
Use o ProGuard para minimizar o tamanho do código e dos recursos
O ProGuard é uma ferramenta que reduz, otimiza e ofusca seu código, removendo código não utilizado e renomeando classes, métodos e campos com nomes curtos. Isso pode reduzir o tamanho do código e dos recursos em até 90% e também dificultar a engenharia reversa do aplicativo. O ProGuard é integrado ao sistema de compilação do Android e você pode habilitá-lo definindo a propriedade minifyEnabled como true no arquivo build.gradle do seu aplicativo. Você também pode personalizar o comportamento do ProGuard usando um arquivo proguard-rules.pro, onde pode especificar regras para manter ou descartar certas classes, métodos, campos ou anotações.
Compacte recursos e imagens usando o formato WebP e gráficos vetoriais
Outra maneira de reduzir o tamanho do aplicativo é compactar os recursos e as imagens que você usa no aplicativo, como arquivos PNG, JPEG ou GIF.Você pode usar várias ferramentas e técnicas para reduzir o tamanho desses arquivos, como cortar, redimensionar, reduzir a intensidade da cor ou aplicar algoritmos de compactação com ou sem perdas. Uma das maneiras mais eficazes de compactar imagens é usar o formato WebP, que é um formato de imagem moderno compatível com compactação com e sem perdas, bem como transparência e animação. As imagens WebP podem ser até 30% menores que as imagens PNG ou JPEG, mantendo a mesma qualidade e recursos.
Para usar imagens WebP em seu aplicativo, você pode converter suas imagens existentes para o formato WebP usando ferramentas como o Image Asset Studio do Android Studio ou a ferramenta de linha de comando cwebp. Você pode então fazer referência a eles em seus layouts XML ou código usando o atributo android:src ou o método setImageResource(). Você também pode usar gráficos vetoriais em vez de imagens bitmap para ícones, logotipos ou formas simples, conforme explicado na seção anterior.
Minimize a sobrecarga de recursos usando ViewStubs e telas iniciais
Outra maneira de reduzir o tamanho do seu aplicativo é minimizar a sobrecarga de recursos que seu aplicativo incorre ao carregar e exibir sua interface de usuário. A sobrecarga de recursos refere-se à quantidade de memória e tempo de CPU que seu aplicativo consome ao inflar e renderizar suas exibições, como layouts, widgets, animações e assim por diante. Uma alta sobrecarga de recursos pode diminuir o tempo de inicialização e o desempenho do seu aplicativo e também aumentar o consumo de bateria e o uso de memória.
Para minimizar a sobrecarga de recursos em seu aplicativo, você pode usar várias técnicas, como o uso de ViewStubs e telas iniciais. Um ViewStub é uma exibição leve que atua como um espaço reservado para outra exibição que é inflada somente quando necessário. Por exemplo, você pode usar um ViewStub para uma exibição que só é visível em determinadas condições ou cenários, como uma mensagem de erro ou uma caixa de diálogo de confirmação. Dessa forma, você pode evitar inflar e renderizar a exibição até que seja realmente necessário, economizando memória e tempo de CPU.
Para usar um ViewStub em seu aplicativo, você precisa criar um elemento ViewStub em seu arquivo de layout XML e especificar o atributo de layout com o ID do recurso de layout que deseja inflar posteriormente. Você também precisa atribuir um ID ao próprio elemento ViewStub, para que possa referenciá-lo em seu código. Você pode então inflar o ViewStub programaticamente chamando o método inflate() no objeto ViewStub, que retorna a exibição inflada. Você também pode definir um ouvinte de visibilidade no objeto ViewStub para executar qualquer ação antes ou depois da inflação.
Uma tela inicial é uma tela que é exibida enquanto seu aplicativo está carregando seu conteúdo principal ou executando algumas tarefas de inicialização. Ele pode melhorar o desempenho percebido do seu aplicativo e a experiência do usuário, fornecendo feedback visual e informações de marca para o usuário. No entanto, uma tela inicial também pode aumentar o tamanho do seu aplicativo se você usar uma imagem ou animação grande para ela. Portanto, é recomendável usar uma tela inicial simples e leve que corresponda ao tema e estilo do seu aplicativo.
Para usar uma tela inicial em seu aplicativo, você precisa criar um recurso desenhável que contenha a imagem ou animação que deseja exibir na tela inicial. Você também precisa criar um tema para sua tela inicial que faça referência a esse recurso desenhável como plano de fundo da janela. Em seguida, você precisa aplicar esse tema à sua atividade principal em seu arquivo de manifesto usando o atributo android:theme. Você também precisa remover quaisquer sinalizadores de janela ou transições que possam interferir na exibição da tela inicial.
Divida o aplicativo em vários APKs para diferentes recursos ou configurações
Outra forma de reduzir o tamanho do app é dividi-lo em vários APKs para diferentes recursos ou configurações. Dessa forma, você pode entregar apenas as partes relevantes do seu aplicativo para o dispositivo de cada usuário, dependendo de suas preferências ou necessidades. Por exemplo, você pode dividir seu aplicativo em vários APKs com base no tamanho da tela, densidade, arquitetura da CPU, idioma ou recurso.Isso pode reduzir o tamanho do download e da instalação do seu aplicativo, bem como o uso de memória e armazenamento no dispositivo. Para dividir seu aplicativo em vários APKs, você pode usar vários métodos, como divisões de APK, módulos de recursos dinâmicos ou aplicativos instantâneos. As divisões de APK permitem que você crie APKs separados para diferentes configurações de dispositivo, como tamanho de tela, densidade, arquitetura de CPU ou idioma. Você pode configurar as divisões do APK no arquivo build.gradle do seu aplicativo usando o bloco splits. Em seguida, você precisa fazer upload de todos os APKs gerados para o Google Play Console, e o Google Play fornecerá o APK apropriado para o dispositivo de cada usuário. Os módulos de recursos dinâmicos permitem que você crie APKs separados para diferentes recursos do seu aplicativo, como um recurso premium ou um nível de jogo. Você pode configurar módulos de recursos dinâmicos no arquivo settings.gradle de seu aplicativo usando o bloco include. Em seguida, você precisa carregar seu pacote de aplicativos para o Google Play Console, e o Google Play gerará e exibirá o APK básico e os APKs de recursos para o dispositivo de cada usuário. Você também pode controlar quando e como baixar e instalar os APKs de recursos sob demanda ou condicionalmente usando a biblioteca Play Core. Os aplicativos instantâneos permitem que você crie APKs separados para diferentes partes do seu aplicativo que podem ser iniciados instantaneamente a partir de um link ou resultado de pesquisa, sem a necessidade de instalação. Você pode configurar apps instantâneos no arquivo build.gradle de seu app usando o bloco instantApp. Em seguida, você precisa fazer upload do seu pacote de aplicativos para o Google Play Console, e o Google Play irá gerar e fornecer os APKs de aplicativos instantâneos para cada dispositivo do usuário. Você também pode fornecer uma opção para os usuários instalarem seu app completo a partir do app instantâneo usando a API de instalação. Use o Lint para identificar e corrigir possíveis problemas com o tamanho do aplicativo
Lint é uma ferramenta que analisa seu código e recursos e identifica possíveis problemas com a qualidade, desempenho, segurança, usabilidade, acessibilidade e compatibilidade do seu aplicativo.Ele também pode ajudá-lo a reduzir o tamanho do seu aplicativo detectando e sugerindo correções para problemas como recursos não utilizados, layouts ineficientes, atributos redundantes, imagens grandes e assim por diante.
Para usar o Lint em seu aplicativo, você pode executá-lo no Android Studio selecionando Analyze > Inspect Code na barra de menus. Você pode visualizar os resultados na janela Resultados da inspeção, onde pode ver a gravidade, categoria, descrição e localização de cada problema. Você também pode aplicar correções rápidas para alguns problemas clicando no ícone de lâmpada ao lado deles.
Você também pode personalizar o comportamento do Lint usando um arquivo lint.xml, onde pode especificar quais problemas ativar ou desativar, alterar seu nível de gravidade ou adicionar regras personalizadas. Você pode então colocar esse arquivo no diretório raiz do seu aplicativo ou em qualquer diretório de conjunto de origem.
Conclusão
Neste artigo, discutimos como reduzir o tamanho do aplicativo Android para 1 MB ou menos usando várias técnicas, como o Android App Bundle, reduzindo a contagem e o tamanho de recursos, usando ProGuard, compactando recursos e imagens, minimizando a sobrecarga de recursos, dividindo o aplicativo em vários APKs e usando Lint. Essas técnicas podem ajudá-lo a otimizar o tamanho e o desempenho do seu aplicativo sem comprometer a qualidade ou a funcionalidade.
Alguns exemplos de aplicativos que reduziram seu tamanho com sucesso usando essas técnicas são:
Google Maps Go: Uma versão leve do Google Maps que ocupa apenas 0,09 MB de espaço e fornece recursos básicos de navegação.
Facebook Lite: Uma versão simplificada do Facebook que usa apenas 1,59 MB de espaço e fornece recursos básicos de rede social.
YouTube Go: uma versão do YouTube com eficiência de dados que usa apenas 9,4 MB de espaço e oferece streaming de vídeo e recursos de download.
Incentivamos você a experimentar esses métodos e compartilhar seus comentários conosco. Esperamos que você tenha achado este artigo útil e informativo.
perguntas frequentes
Qual é o limite máximo de tamanho do aplicativo para o Google Play?
O limite máximo de tamanho do aplicativo para o Google Play é de 150 MB para APKs e pacotes de aplicativos. No entanto, você pode usar arquivos de expansão ou entrega dinâmica de ativos para fornecer ativos adicionais de até 4 GB.
Como posso verificar o tamanho do meu aplicativo em diferentes dispositivos?
Você pode verificar o tamanho do seu aplicativo em diferentes dispositivos usando o relatório de tamanho do aplicativo no Google Play Console. Este relatório mostra como o tamanho do seu aplicativo varia em diferentes configurações de dispositivos e mercados e como ele se compara a aplicativos semelhantes em sua categoria.
Como posso usar Baseline Profiles para melhorar a velocidade de execução do código?
Perfis de linha de base são arquivos que contêm informações sobre a frequência com que cada método em seu código é executado. Eles são gerados por dispositivos Android com base no comportamento do usuário e carregados no Google Play. Você pode baixá-los do Google Play Console e usá-los para otimizar a velocidade de execução do código usando o recurso Profile Guided Optimization (PGO) no Android Studio. O PGO usa os perfis de linha de base para reordenar e recompilar seu código com base na frequência de execução do método, resultando em tempo de inicialização mais rápido e menor uso de memória.
Como posso usar a biblioteca App Startup para evitar a inicialização separada do provedor de conteúdo?
App Startup é uma biblioteca que permite inicializar componentes na inicialização do aplicativo sem usar provedores de conteúdo. Os provedores de conteúdo costumam ser usados para inicializar componentes como bibliotecas ou SDKs, mas podem aumentar o tamanho e o tempo de inicialização do aplicativo, pois são carregados e executados antes do processo principal do aplicativo. A inicialização do aplicativo permite que você declare os componentes que deseja inicializar em seu arquivo de manifesto usando o tag e, em seguida, inicialize-os preguiçosamente ou ansiosamente usando a classe AppInitializer. Dessa forma, você pode reduzir o tamanho e o tempo de inicialização do seu aplicativo, além de evitar possíveis conflitos ou travamentos devido a vários provedores de conteúdo.
Como posso alterar as configurações de animação para acelerar o desempenho do aplicativo?
As animações podem aprimorar a experiência do usuário e o apelo visual do seu aplicativo, mas também podem afetar o desempenho e o consumo de bateria do seu aplicativo, especialmente se forem complexas ou frequentes. Você pode alterar as configurações de animação em seu aplicativo para acelerar seu desempenho usando os seguintes métodos:
Use a aceleração de hardware para renderizar animações com mais rapidez e suavidade usando o atributo android:hardwareAccelerated em seu arquivo de manifesto ou o método setLayerType() em seu código.
Use animações de transição para animar mudanças entre atividades ou fragmentos usando o atributo android:windowAnimationStyle em seu tema ou o método overridePendingTransition() em seu código.
Use transições de elementos compartilhados para animar transições entre exibições que têm um elemento comum usando o atributo android:transitionName em seus layouts XML ou o método setTransitionName() em seu código.
Use ouvintes de animação para executar ações antes, durante ou depois de uma animação usando o método setAnimationListener() em seu objeto Animation ou Animator.
Use interpoladores de animação para controlar a taxa de alteração de uma animação usando o atributo android:interpolator em suas animações XML ou o método setInterpolator() em seu objeto Animation ou Animator.
0517a86e26
Comments