Você já teve um daqueles dias que queria jogar o computador na parede por causa do Android Studio? Que já pensou em desistir de programar para Android porque não aguenta mais a lerdeza da ferramenta?
Pois é, eu também já tive dias assim.
No entanto, aprendi a contornar estes problemas e hoje programo apps Android profissionalmente em um notebook que comprei em 2010. Sim, 7 anos de idade na data que escrevo este post e embora eu pretenda trocar ele em breve por um modelo mais novo, consigo trabalhar de maneira idêntica à experiência que tenho com outras IDEs como NetBeans e Visual Studio. Sim, elas também são relativamente pesadas, mas menos que isso meu amigo, só o Notepad++, hehehe.
A ideia deste post é trazer uma luz sobre os problemas de performance do Android Studio e como você pode contorná-los e/ou melhorar a sua experiência atual. Algumas dicas vão envolver algum tipo de investimento, outras não. Fica a seu critério investir ou não dinheiro mas uma coisa é certa: se quer desenvolver apps profissionalmente, vale a pena!
Vamos às dicas:
- Por que o Android Studio é lento?
- Priorize a IDE na sua máquina
- Mantenha tudo atualizado
- Tenha uma conexão com a Internet adequada ou use o modo offline
- Configure-o corretamente
- Tenha um disco adequado
- Tenha um processador adequado
- Como testar mais rápido
- Modularize seu projeto e compile-os separadamente
- Se nada mais der certo
#1 – Por que o Android Studio é lento?
Se olharmos no site oficial da ferramenta, veremos os seguintes requisitos mínimos:
- versões atualizadas de Windows, Mac ou Linux;
- 3GB RAM mínima, 8GB recomendada;
- 1GB RAM adicional apenas para o simulador Android;
- 2GB de espaço em disco sobrando (mínimo), 4GB recomendado;
- resolução mínima de 1280×800;
Se você não tem ao menos estas configurações recomendadas, você automaticamente estará em sérios apuros e não tenho certeza se o restante deste post vai te ajudar. No entanto, continue lendo, não perca as esperanças ainda.
No entanto, o que acontece quando você possui estes requisitos e ainda assim ele é lento?
Diversos são os fatores e o restante deste post vai elucidar cada um destes problemas individualmente uma vez que você pode estar sofrendo de mais de um deles. Mas basicamente temos:
- se o seu HD for lento, o Android Studio também será;
- se não tiver RAM sobrando, vai ficar lento, principalmente nos testes;
- se a sua conexão com a Internet for lenta, tudo fica lento;
- se você está com atualizações pendentes da IDE e do SDK, pode ficar lento;
- se seu processador é muito antigo, ele pode não dar conta das instruções atuais;
E obviamente, podem existir outros fatores que não os supracitados. Elenquei estes pois vi por experiência própria estes fatores atrapalhando a produtividade de quem quer usar o Android Studio para criar apps.
O que quero dizer é: não existe apenas uma razão, mas sim várias. Sugiro encarar os demais tópicos deste post como um checklist. Passe cada um deles verificando onde você pode estar com mais problemas hoje e resolva o mais rápido possível.
#2 – Priorize a IDE na sua máquina
Primeiro ponto: se você vai programar Android, abra apenas o Android Studio.
Ele é uma ferramenta pesada e exige muitos recursos de hardware. Se você tentar fazer com que a sua máquina tenha de trabalhar com mais de uma IDE ao mesmo tempo ou mesmo com vários Android Studios abertos, esqueça, não vai rolar a menos que você tenha um note na faixa de uns R$5 mil.
Feche tudo que pode estar consumindo CPU, IO de disco, Internet e RAM, principalmente RAM. Deixe no máximo uma aba do Chrome pra poder fazer pesquisas na Internet e/ou ir acompanhando algum conteúdo online que está usando como estudo, preferencialmente que não seja vídeo pois exige mais da máquina do que páginas estáticas.
Posso estar parecendo chato aqui, mas além disso dar mais poder computacional para o Android Studio rodar, você vai estar mais focado em seus estudos, é uma situação onde você só tem a ganhar. Lembre-se que você tem de rodar dois sistemas operacionais em cima da mesma máquina: o seu SO nativo e o simulador do Android, que é bem pesado. Com menos de 8GB realmente você corre o risco de não dar conta.
Outra coisa: se estiver trabalhando em um notebook, mantenha a sua máquina energizada, na tomada, sempre. O desempenho de notebooks, dependendo do plano de energia, do sistema operacional e da tecnologia de bateria pode reduzir o seu desempenho computacional em até 70% se estiver operando apenas na bateria, para economizar energia. Usar Android Studio com bateria de note nunca é uma boa ideia.
E por fim, desabilite seu antivírus enquanto estiver programando Android. Ele e o Android Studio brigam bastante em background se ambos estiverem ativados.
#3 – Mantenha tudo atualizado
Principalmente o Android Studio pois é uma ferramenta com atualizações constantes e muitas delas relacionadas à performance. Quer um exemplo? Instant Run é um recurso recente que agiliza e muito as compilações de apps posteriores à primeira vez. Ou seja, a primeira compilação é super lenta, mas as demais são mais rápidas pois são diferenciais. Agora se você não tem o Android Studio com este recurso, vai ser sempre lento cada uma das compilações.
Ainda usando o Instant Run como exemplo, ele exige que você use versões atualizadas do SDK do Android. Sendo assim, se você estiver programando Android para versões muito antigas como 2.0, não vai poder se beneficiar destes ganhos de velocidade. Segundo o Google, versões mais recentes dos SDKs tendem a compilar mais rápido devido a melhorias na plataforma.
Para manter o Android Studio atualizado é bem simples, pois a própria ferramenta te avisa quando saem novas atualizações dela própria, bastando aceitar o download e reiniciar a mesma quando solicitado. Ainda assim, você pode mandar verificar atualizações manualmente, usando a opção Android Studio > Check for updates.
É importante manter sua ferramenta atualizada para evitar exploits de segurança que possam ser usados por pessoas maliciosas e até mesmo para que a performance da ferramenta (que não é lá grande coisa) fique um pouco melhor.
A versão 3 do Android Studio promete ser ainda mais rápida e estou aguardando ansioso por ela, bem como ao suporte ao Kotlin.
Aproveitando o gancho, se o seu sistema operacional também está com atualizações pendentes, é uma boa atualizar todo ele antes de abrir o Android Studio. Geralmente atualizações pendentes consomem recursos em background que podem lhe ser preciosos.
#4 – Tenha uma conexão com a Internet adequada ou use o modo offline
O Android Studio já foi pior, mas ele ainda tem uma dependência muito grande de Internet seja para manter o Gradle atualizado, o SDK atualizado, ele próprio atualizado e muito mais. Se estiver tentando programar usando uma conexão 3G por exemplo, vai sofrer com as demoras constantes para fazer qualquer coisa em que ele faça alguma verificação de versão antes, como compilação por exemplo.
Um jeito de minimizar este problema é habilitar o modo offline nas Preferences do Android Studio, como mostra a imagem abaixo.
Além disso, na área Compiler dentro de Build, Execution e Deployment, adicione o comando “–offline” na caixa “Command-line Options”, caso venha a utilizar o terminal de linha de comando do Android.
#5 – Configure-o corretamente
Assim como citei no final da dica anterior, sobre a configuração do modo Offline do Android Studio melhorar sua performance, existem outras configurações que você pode fazer para diminuir o peso da ferramenta. Cada uma delas não faz uma grande diferença (talvez com exceção das configurações da dica anterior mesmo), mas juntas, dão um ganho relativamente interessante que pode ser uma grande ajuda para quem não pode investir em hardware como várias dicas à seguir vão sugerir.
Todas as dicas a seguir devem ser acessadas na tela inicial a partir do menu Configure > Preferences ou mais tarde no interior da ferramenta.
Uma vez dentro dessa área da ferramenta, existem diversos ajustes que podem ser feitos. Primeiro entre em Appearance & Behavior > Appearance.
As funções de Antialiasing oneram bastante seu chip de vídeo. Você pode trocar de Subpixel para Greyscale ou No-antialiasing para diminuir esse consumo de GPU. Em Window Options, pode usar a configuração acima, onde a mais importante é a Animate Windows estar desabilitada, por causa da GPU também. Sim, a IDE vai ficar mais feia, mas também mais rápida.
Ainda dentro de Appearance & Behavior, entre em System Settings.
A configuração acima é uma boa sugestão para Synchronization, evitando salvamos desnecessários no disco. Nesse caso, apenas lembre-se de salvar o seu projeto conforme for programando usando Ctrl+S ou clicando no ícone de Save ou ainda no menu superior da ferramenta, pois acabamos de desabilitar o salvamento automático que consome muito IO.
Ainda em System Settings, entre em Updates e desabilite a opção de verificar updates automaticamente, pois eles atrasam a inicialização da ferramenta enormemente, ainda mais se tiver uma conexão ruim com a Internet. Apenas lembre-se de uma vez por semana mandar verificar manualmente usando o botão “Check Now” nesta tela.
Ainda em System Settings, entre em Usage Statistics e desmarque a opção de enviar dados de uso para o Google. Ok, você não estará ajudando eles a melhorar a ferramenta, mas estará se ajudando economizando processamento e Internet, hehehe.
Em Build, Execution, Deployment vá na opção Compiler e desmarque “Make project automatically” para liberar seu disco de ficar sendo utilizado automaticamente. Assim, quando mandar executar seu projeto, ele vai ser compilado, ou quando quiser fazê-lo manualmente, vá no menu Project > Make.
Para completar, abra o arquivo gradle.properties e adicione as seguintes linhas:
1 2 3 |
org.gradle.daemon=true |
Isso deixará o Gradle rodando sempre na máquina (modo daemon), não sendo necessário que ele seja inicializado do zero a cada build. Claro, irá consumir um pouco mais de recursos, mas não muito, e sugiro que teste para ver se vale a pena.
#6 – Tenha um disco adequado
A primeira vez que vi um aluno meu usando um notebook com SSD minha percepção sobre o preço desses discos flash mudou completamente. Eu os achava muito caros e não encontrava boas justificativas para comprar um. Esse aluno em questão mandava executar um projeto em um AVD que estava desligado e o mesmo tempo que o meu notebook levava para executar o mesmo projeto em um AVD ligado, o dele fazia em um desligado. Ou seja, subia uma VM e bootava o Android nele, além de instalar o app e mandar executá-lo. Era absurdo!
Rapidamente providenciei um SSD para mim e com certeza foi o que manteve o meu notebook ainda competitivo por mais alguns anos. Claro, só um SSD não vai resolver todos seus problemas se tiver um computador muito velho como o meu. Minha controladora SATA é antiga e não consegue tirar todo o proveito do meu Kingston 240GB que comprei em 2016. Mas alie um SSD a uma CPU recente e uma boa memória RAM e você estará muito bem servido.
Se não tiver como comprar um SSD, tente usar um computador tradicional ao invés de um notebook, pois eles possuem discos mais rápidos, de 7200rpm contra os 5400rpm tradicionais dos notes. Existem também discos 7200rpm para notes, embora raros, mas não recomendo comprar.
Além da velocidade do disco, é importantíssimo que tenha espaço sobrando. Jamais trabalhe com o Android Studio se você está no “vermelho” do seu HD pois a performance da máquina como um todo cai bastante e o Android Studio se arrasta. Esses tempos eu estava com menos de 1GB de espaço sobrando em meu note e simplesmente não conseguia fazer rodar um olá mundo em Android.
#7 – Tenha um processador adequado
Aqui temos dois problemas: processadores fracos (Core Duo, i3, Sempron, Celeron, Pentium, etc) não dão conta de rodar o Android Studio e pior ainda, de rodar os simuladores do Android. Prefira Intel i5 ou i7, Core 2 Duo, Athlon, Phenom e Xeon. Só pra você ter uma ideia, a diferença de performance do melhor Core 2 Duo do mercado (com maior frequência, ultrapassando 3GHz) é 30% MENOR do que a do pior i5 do mercado (na faixa de 2.5GHz). Existe muita diferença entre CPUs aparentemente com a mesma potência, se olharmos apenas a frequência deles.
Outro ponto importante é se o processador do seu computador for antigo (2014 ou anterior) ou não for Intel em geral, use AVDs com arquitetura ARM, conforme mencionei na dica #3 deste outro post. Jamais crie AVDs com arquitetura Intel se tiver uma CPU que não seja Intel ou que seja mais antiga que 2014.
Já se o processador do seu computador for Intel recente (2014 ou mais), instale o Acelerador HAXM no SDK Manager e use somente AVDs com arquitetura X86 (Conforme dica #3 deste post).
Se quiser que eu seja ainda mais específico, use processadores com suporte a Intel VT-x, Intel EM64T e funcionalidade Execute Disable (XD) Bit, conforme recomendações da própria Google.
#8 – Como testar mais rápido
A melhor dica de performance é usar o seu próprio smartphone para os testes, conforme mencionado na dica #3 deste outro post aqui, focado em testes. Caso não seja possível, use a dica #4 do mesmo post para conhecer VMs concorrentes ao Android emulator padrão.
Não me estenderei aqui, procure o referido post que está bem completo.
#9 – Modularize seu projeto e compile-os separadamente
Essa dica é para quem tem projetos muito grandes e sofre com os builds.
Primeiro, verifique suas classes e verifique quais poderiam ser transformadas em bibliotecas externas, em módulos mais independentes, como ensina esse tutorial. Dá mais trabalho, mas a parte boa de fazer isso é que o Android Studio só compila módulos que foram alterados, sendo assim, os builds vão ser bem mais curtos pois você não mexe no projeto todo o tempo todo, certo?
Outra dica é configurar o build dos módulos para rodar em paralelo, assim conseguimos aproveitar melhor os múltiplos processadores da sua máquina. Para fazer isso, vá no arquivo gradle.properties e coloque a seguinte linha:
1 2 3 |
org.gradle.parallel=true |
O mesmo resultado pode ser obtido indo no menu de preferências, seção Build, Execution, Deployment, opção Compiler e marque a opção “Compile modules in parallel”, o que agiliza a compilação de projetos divididos em módulos (projetos grandes geralmente) que usarão melhor os múltiplos cores do seu processador.
#10 – Se nada mais der certo
Não desista, continue estudando e praticando. Com as dicas acima eu consegui reduzir o tempo de compilação de meus projetos Android de 13 segundos para 4 segundos, o que é bem interessante, mas talvez você obtenha resultados diferentes. Até que você tenha uma máquina boa o suficiente ou que o Android Studio se torne mais leve, procure ir usando o NetBeans ou o Eclipse, por exemplo, que podem ser alternativas mais viáveis para você.
É difícil, mas vale a pena!
E você, tem alguma dica de performance para o Android Studio que eu não tenha coberto aqui?
Olá, tudo bem?
O que você achou deste conteúdo? Conte nos comentários.