2015-04-04

Emuladores Android para Windows!

Existem vários cenários nos quais virtualizar o Android é interessante, tanto para quem desenvolve ou testa aplicações, quanto para quem joga ou simplesmente prefere rodar suas aplicações em telas maiores.

No meu caso, não tenho tablet ou smartphone, meu conhecimento destes sistemas em grande parte vem da minha experiência de virtualizações de versões do Android. E ainda tenho me interessado em instalar ou emular sistemas em meu computador. Mais que jogar, tenho me divertido muito mais em fazer os emuladores funcionarem em qualquer máquina que eu tenha acesso que de fato jogar nelas.

Para a confecção deste tópico, todas as ferramentas foram instaladas e testadas no meu computador pessoal com o intuito de rodar Clash of Clans.


Como pura referência listarei as características físicas do meu computador pessoal. Fica claro que para obter uma boa emulação de Android não é necessário hardware extravagante ou recente.

CPU.....: Intel Celeron E3400 (lançado em 2010)
CLOCK...: 2.60 GHz
CACHE...: 1 MB L2
CORES...: dual core
FEATURES: MMX, SSE, SSE2, SSE3, SSSE3, EM64T, VT-x, DEP
MEM.....: 4GB DDR3 800 MHz, dual channel
GPU.....: NVIDIA GeForce 9500 GT (lançada em 2008)
V-BUS...: 128 bits, PCI-E x16
V-RAM...: 1024 MB
HD......: 1TB, SATA 300, 32MB, NCQ, 5.400 rpm
SO......: Windows 7 Home Basic, 32 bits


O processador tem mais de 5 anos, a placa de vídeo mais de 7 e o desempenho da emulação foi mais que satisfatório. Portanto, qualquer computador recente, mesmo os mais baratos e de entrada são capazes de realizarem virtualizações completamente fluídas, sem lentidões ou prejuízos.

Entretanto, você terá mais desempenho utilizando sistemas operacionais de 64 bits com 4 GB ou mais de RAM, drivers atualizados e processadores com suporte a instruções de virtualização, desde que ativadas na BIOS/UEFI. Algumas sugestões de softwares virtualizadores são exclusivas para processadores Intel. Porém, usuários AMD poderão perfeitamente rodar as sugestões principais.

Para ajustes finos é fundamental conhecer seu sistema. Principalmente, seu processador e instruções suportadas. Para tal tarefa 4 programas, todos gratuitos, podem lhe ajudar: Speccy, CPU-Z, GPU-Z, HWiNFO. Eles não serão explicados aqui, mas, possuem funcionamento quase intuitivo. Fique tranqüilo.

Antes de apresentar as ferramentas convém explicar que elas foram separadas em vários grupos e todas aquelas que fazem uso do VirtualBox terão explicações completas apenas no final do tópico, quando estiver tratando exclusivamente dele, para evitar redundância.

Das ferramentas testadas, três se destacam: BlueStacks, Genymotion e Droid4X. BlueStacks e Genymotion não são freeware, mas permitem utilização gratuita. Ambas ferramentas podem muito bem rodar simultaneamente. Droid4X é freeware mas usa uma versão alterada do VirtualBox e portanto incompatível com o Genymotion. Ainda sua instalação compromete as instalações existentes do Genymotion ou demais instalações do VirtualBox.

Para quem não possuí muitos conhecimentos em emulação, gosta de soluções simples e não quer perder tempo com instalações ou configurações, a dica é BlueStacks.

Para quem quer jogar com alto desempenho, gosta de instalações simples e ainda não trabalha com o VirtualBox, a dica é Droid4X.

Para quem não precisa de alto desempenho, pois, modesto é o bastante, para quem já trabalha com o VirtualBox e não quer ver suas máquinas virtuais inoperantes, para quem é capaz de resolver problemas de instalação e configuração sozinho e ainda quer ter a possibilidade de emular várias máquinas Android ao mesmo tempo, a dica é única e exclusiva: Genymotion.

Adiante listarei diversas ferramentas e muitas delas podem fazer uso do Intel Hardware Accelerated Execution Manager (Intel HAXM). Claro, o recurso é exclusivo para processadores Intel. Não tem praticamente configuração, basta informar o quanto de memória quer usar em virtualização e pronto.

Digite no terminal sc query intelhaxm para saber o estado do serviço. Use sc stop intelhaxm para fechá-lo e sc start intelhaxm para iniciá-lo. Apenas os comandos para mudar o estado do serviço Intel HAXM exigem privilégios administrativos.

Vamos agora apresentar as ferramentas em resumo!

RECOMENDADOS TESTADOS

BlueStacks

Usa VirtualBox..................: não
Exige VirtualBox Atualizado.....: não
Exige VirtualBox Dedicado.......: não
Usa Intel HAXM..................: não
Exige HAXM......................: não
Exige Cadastro..................: não
Full Download...................: não
Exige Oracle JDK................: não
Possui Play Store...............: sim
Deixa Programas em Segundo Plano: sim
Licença.........................: Freemium

Vantagens:
 a) Fácil e rápida instalação.
 b) Sem configurações adicionais, pronto para uso.
 c) Excelente desempenho.
 d) Seu uso não interfere com outras soluções de virtualização.

Desvantagens:
 a) Aumenta o número de serviços iniciados automaticamente pelo Windows.
 b) Virtualiza apenas um Android.
 c) A versão grátis exige a instalação de aplicativos em sua conta Android.


Droid4X

Usa VirtualBox..................: sim
Exige VirtualBox Atualizado.....: não
Exige VirtualBox Dedicado.......: sim
Usa Intel HAXM..................: não
Exige HAXM......................: não
Exige Cadastro..................: não
Full Download...................: não
Exige Oracle JDK................: não
Possui Play Store...............: sim
Deixa Programas em Segundo Plano: não
Licença.........................: Freeware

Vantagens:
 a) Fácil e rápida instalação.
 b) Sem configurações adicionais, pronto para uso.
 c) Excelente desempenho.

Desvantagens:
 a) Algumas vezes deixa um serviço ativo mesmo após o fechamento do programa.
 b) Virtualiza apenas um Android.
 c) Exige VirtualBox dedicado, prejudicando as demais instalações.


Genymotion
Download: Genymotion.com (w/ VirtualBox 117.47MB; w/o, 25.39MB)
Info: pricingfaq

Usa VirtualBox..................: sim
Exige VirtualBox Atualizado.....: não
Exige VirtualBox Dedicado.......: não
Usa Intel HAXM..................: não
Exige HAXM......................: não
Exige Cadastro..................: sim
Full Download...................: não
Exige Oracle JDK................: não
Possui Play Store...............: não
Deixa Programas em Segundo Plano: sim
Licença.........................: Freemium

Vantagens:
 a) Permite utilizar VirtualBox pré-instalado e configurado.
 b) Permite virtualizar vários Androids ao mesmo tempo.
 c) Bom desempenho.

Desvantagens:
 a) Deixa um serviço ativo mesmo após o fechamento do programa.
 b) Exige cadastro prévio com endereço de email.
 c) Exige instalação manual da Play Store. <veja mais próximo do final do tópico>


RECOMENDADOS NÃO-TESTADOS

AndY OS

Usa VirtualBox..................: sim
Exige VirtualBox Atualizado.....: sim
Exige VirtualBox Dedicado.......: <desconhecido>
Usa Intel HAXM..................: não
Exige HAXM......................: não
Exige Cadastro..................: não
Full Download...................: não
Exige Oracle JDK................: não
Possui Play Store...............: sim
Deixa Programas em Segundo Plano: <desconhecido>
Licença.........................: Freeware

Vantagens:
 a) Instalação e configuração simples.
 b) Seus usuários o recomendam pelo bom desempenho.

Desvantagens:
 a) Exige instalação da versão atual do VirtualBox.


NÃO-RECOMENDADOS TESTADOS

Windroy*
Info: *Não confundir com Windroye (v.2.7.8f/2.8)
Dica: Após a instalação abra o aplicativo pelo terminal, digitando antes de abri-lo o comando: "SET WINDROY_RESOLUTION=800x600", sem aspas.

Usa VirtualBox..................: não
Exige VirtualBox Atualizado.....: não
Exige VirtualBox Dedicado.......: não
Usa Intel HAXM..................: não
Exige HAXM......................: não
Exige Cadastro..................: não
Full Download...................: sim
Exige Oracle JDK................: não
Possui Play Store...............: não
Deixa Programas em Segundo Plano: não
Licença.........................: Freeware

Vantagens:
 a) Muito rápido.
 b) Não exige e nem prejudica outros programas de virtualização.

Desvantagens:
 a) Baseado em versão antiga do Android, 4.0.3.
 b) Extremamente perigoso, bastante instável e capaz de derrubar o sistema.


Android Studio
Download: JDK
Info: HAXMIntel-helpIntel-help

Usa VirtualBox..................: não
Exige VirtualBox Atualizado.....: não
Exige VirtualBox Dedicado.......: não
Usa Intel HAXM..................: sim
Exige HAXM......................: não
Exige Cadastro..................: não
Full Download...................: não
Exige Oracle JDK................: sim
Possui Play Store...............: não
Deixa Programas em Segundo Plano: <desconhecido>
Licença.........................: Freeware

Vantagens:
 a) Alta fidelidade de emulação.

Desvantagens:
 a) Lento.
 b) Lento.
 c) Exige um pouco de configuração e download antes de usar.
 d) Já falei que é lento?
 e) Exige instalação do JDK 7.
 f) JDK 7. Não tente com o 8.
 g) Len...


NÃO-RECOMENDADOS NÃO-TESTADOS

Jar of Beans (abandonado)
Info: número da última versão desconhecido
Download: version 4.8.2 w/ Android 4.1

Usa VirtualBox..................: <desconhecido>
Exige VirtualBox Atualizado.....: <desconhecido>
Exige VirtualBox Dedicado.......: <desconhecido>
Usa Intel HAXM..................: sim
Exige HAXM......................: sim
Exige Cadastro..................: não
Full Download...................: sim
Exige Oracle JDK................: <desconhecido>
Possui Play Store...............: <desconhecido>
Deixa Programas em Segundo Plano: sim, malware
Licença.........................: Ad-Supported

Vantagens:
 a) Usuários elogiavam seu desempenho.

Desvantagens:
 a) As últimas versões continham malware.
 b) Só funciona em processadores Intel.


Intel Integrated Native Developer Experience (Intel INDE)
Info: 1.5GB

Usa VirtualBox..................: não
Exige VirtualBox Atualizado.....: não
Exige VirtualBox Dedicado.......: não
Usa Intel HAXM..................: sim
Exige HAXM......................: sim
Exige Cadastro..................: sim
Full Download...................: sim
Exige Oracle JDK................: <desconhecido>
Possui Play Store...............: <desconhecido>
Deixa Programas em Segundo Plano: <desconhecido>
Licença.........................: Freeware

Vantagens:
 a) Provavelmente tem desempenho melhor que Android Studio.

Desvantagens:
 a) Produto exclusivo para processadores Intel recentes.
 b) Mesmo sem testá-lo, não acredito que tenha bom desempenho.


SOLUÇÕES PAGAS NÃO-TESTADAS

AMIDuOSYouWaveXamarin Android Player*

Info: *Xamarin exige VirtualBox 4.3.18 ou superior e Intel HAXM.

MÁQUINAS VIRTUAIS

VMware Player
Download: VMware Player 7.1.0 for Windows 64 bits
Download: VMware Player 6.0.5 for Windows 32 bits

Vantagens:
 a) Bom desempenho em emulações x86.
 b) Fácil configuração.
 c) Possui pacote de expansão que permite algumas automatizações.

Desvantagens:
 a) Aumenta o número de serviços iniciados automaticamente pelo Windows.
 b) Baixo desempenho com imagens Android.


VirtualBox
Download: VirtualBox.orgOracle.com
Download: old versionsversion 4.3.12
Download: Portable-VirtualBox

Vantagens:
 a) Bom desempenho em emulações x86.
 b) Possui pacote de expansão que aumenta recursos e melhora o desempenho.
 c) Não aumenta o número de serviços iniciados automaticamente pelo Windows.

Desvantagens:
 a) Pode ser difícil, trabalhoso e demorado encontrar a versão compatível com seu sistema.
 b) Baixo desempenho com imagens Android.


CONFIGURAÇÕES DO VIRTUALBOX

Como já mencionei anteriormente, o VirtualBox apesar de ser um bom emulador apresenta um grande número de empecilhos na hora de instalar. Para o desespero de seus usuários, seus erros são normalmente genéricos, dizendo pouco ou quase nada sobre os problemas ou possíveis soluções.

A maior parte dos problemas se resolve escolhendo uma versão compatível com seu sistema. Como regra geral, instale sempre a versão atual, mais recente, e teste-a! Os erros dificilmente acontecem durante a instalação. Normalmente, os problemas não permitem que se abra o VirtualBox após instalado ou que não se abra uma máquina virtual após configurada.

Caso tudo funcione, maravilha. Caso contrário, se prepare para o martírio. Desinstale a versão problemática, apague todas suas pastas e re-inicie o computador. Baixe uma versão mais antiga, instale, configure e teste. Repita o processo até encontrar a versão estável para seu computador.

A versão atual, mais recente, hoje, é a 4.3.26. Ela não funciona no meu computador. Tenho sucesso com versões iguais ou anteriores à 4.3.12. A versão que funcionará no seu pc? Só Deus sabe, salva, é fiel e lhe ama, :D

Após encontrar a tampa da panela - quero dizer: a versão funcional! -, case-se com ela. Baixe sua versão correspondente da Oracle VM VirtualBox Extension Pack e instale-a. O pacote de extensões da máquina virtual não funciona para o sistema operacional Android original, mas funciona em quase todos os outros sistemas e perceberá que funciona para algumas versões alteradas do Android disponíveis em uma ou outra solução de emulação aqui apresentada.

Na verdade, sua instalação é um processo de 2 passos. É preciso primeiro instalar o pacote de extensão à sua instalação do VirtualBox e depois dentro de um sistema virtualizado instalar seus drivers via script. Ainda não existem scripts oficiais para Android. mas, como dito, algumas ferramentas listadas aqui fazem uso do pacote de expansão, o qual aumenta significativamente o desempenho do sistema.

Após esta breve introdução apenas listarei as configurações em uso no meu pc para efeito de referência. Como as versões dos programas podem variar e como seu computador se difere do meu, tanto em hardware quanto em software, as opções que aumentam o desempenho aqui podem não melhorar o desempenho aí.

As imagens abaixo representam a instalação padrão quase inalterada do Droid4X, o qual utiliza uma versão alternativa do VirtualBox. Algumas opções aqui dispostas não fazem qualquer sentido numa instalação do VirtualBox oficial. Atenção nos comentários.

Opções gerais do VirtualBox:


Na imagem acima, em Default Machine Folder escolhemos o diretório padrão para os discos virtuais. Escolha sua unidade de disco com o maior espaço livre disponível. Máquinas Virtuais muito facilmente ocupam 8 GB ou mais.




As duas imagens acima não fazem qualquer sentido numa instalação original do VirtualBox. Entretanto este é o comportamento esperado da instalação padrão do Droid4X.

Em redes exclusivas do host na instalação padrão temos a presença de uma rede NAT, com DHCP ativado e configurado de modo extremamente simples e funcional. Se a instalação do seu VirtualBox ocorreu sem erros, se está utilizando uma versão completamente compatível com sua máquina, então, a configuração padrão é ideal na maioria dos cenários.

Vemos muitas pessoas reclamando desta configuração em fóruns, porém, saiba que ela é de fato a ideal na maioria dos casos e principalmente a solução mais simples para o público leigo. Se sua rede nas máquinas virtuais não estiver funcionando é muito provável que houve algum problema durante a instalação do VirtualBox ou com a instalação de driver e reconhecimento de rede na sua máquina virtual ou com as configurações necessárias da máquina emulada e não com o conceito de redes NATs. Elas são ótimas, sólidas, confiáveis, simples, transparentes.


Como dito anteriormente, o pacote de expansão pode ser bem interessante na maioria dos casos. A instalação padrão do Droid4X faz uso delas!

Opções de uma máquina virtual específica:


Normalmente, estas são as melhores opções para máquinas virtuais para Android. Tipo: Linux. Versão: Outros Linux (32 bit).


Normalmente não uso nem o compartilhamento de memória de transferência e nem o arrastar e soltar. Porém, ambos podem lhe agradar, convém, portanto, testá-los. Também não uso o lembrar alterações em tempo de execução da opção mídias removíveis, mas como fazem parte da instalação padrão do Droid4X, as deixei inalteradas.


Para quem não tem experiência com máquinas virtuais preciso fazer algumas orientações. Em memória base é preciso cautela. Quanto mais memória você dedica à máquina virtual, menos memória você terá disponível para seu sistema operacional em uso. Assim, sem cuidado, seu sistema poderá ficar instável. Em Sistemas Operacionais 32 bits não se compartilha mais de 2GB. Em SOs 64 bits emulando sistemas também de 64 bits  pode-se compartilhar bem mais memória. Na prática, para emulação de Android 512MB está de ótimo tamanho. É memória o suficiente para a máquina virtual e afetará pouco o desempenho do seu próprio sistema.

Em ordem de boot, você escolhe quais unidades serão acessadas primeiro, de cima pra baixo, durante a inicialização da máquina virtual. As unidades serão configuradas adiante. Agora só se define a ordem de boot.

Em chipset, em 99% das vezes, usaremos PIIX3. A opção ICH9 é considerada instável e para uso exclusivo de virtualização de MacOS ou para outros poucos sistemas que não rodarem com o PIIX3.

Em dispositivo de apontamento, normalmente usaremos PS/2 Mouse ou USB Tablet. USB Multi-Touch Tablet ainda não consegui fazer funcionar.

Habilitar I/O APIC normalmente só é necessário quando se quer emular mais de um processador na máquina virtual. Em emulações de processador único desativando-o normalmente se tem mais desempenho.

Habilitar EFI pode ser útil para emular sistemas recentes como Windows 8 ou 10. Nos demais casos, convém deixá-lo desativado.

Tempo de Relógio em UTC deve ser ativado sempre que se emular máquinas linux e desativado nos demais casos.


Em processadores escolhemos a quantidade de processadores virtuais que estarão disponíveis. Sempre use uma quantidade igual ou menor que a quantidade de núcleos presente em seu computador real, físico. Aumentar o número de processadores virtuais não necessariamente melhora o desempenho da virtualização. Para usar mais de um processador a opção I/O APIC da aba anterior precisa estar ativada.

Em capacidade de execução podemos controlar a quantidade de processamento destinado à máquina virtual. Se a opção anterior estiver bem dimensionada, 100% não trará prejuízos ao seu sistema real e terá bom desempenho no sistema virtual.

Habilitar PAE/NX só funciona em computadores reais com sistema operacional 64 bits, e com NX/DEP habilitado na BIOS/UEFI. PAE é uma forma de aumentar a quantidade de memória máxima acessível em máquinas virtuais 32 bits, e DEP é um recurso que aumenta a segurança e estabilidade do sistema proibindo algumas operações perigosas. Se seu SO real é 32 bits como o meu ou se NX/DEP não estiver habilitada na BIOS/EUFI do seu sistema real tal opção mesmo quanto habilitada não tem função alguma.


Habilitar VT-x/AMD-V permite aumentar o desempenho das máquinas virtuais quando executados em processadores reais que possuam uma das duas instruções e quanto as permissões de virtualização estão habilitadas na BIOS/UEFI destes sistemas. As duas instruções são bastante comuns em processadores novos tanto Intel quanto AMD. Mas não em processadores VIA. Na verdade, com processadores VIA você não tentará virtualizar coisa alguma, :p

Habilitar Paginação Aninhada permite aumentar o desempenho quando se utiliza processadores reais bastante recentes, tanto Intel quanto AMD. Se seu processador suporta esta instrução então convém habilitá-la. No meu computador, por exemplo, tenho mais desempenho desativando-o.


Chegamos em outro cenário interessante. Entenda que quanto estamos virtualizando uma máquina, menos recursos virtuais podem significar mais desempenho em virtualização. É por isso que você poderá muitas vezes ter mais desempenho em máquinas virtuais emulando apenas 1 processador que 4 ou 8. Como o processador é na verdade virtual, ele é um desafio para seu computador físico, quanto mais simples, em menor quantidade e em menor clock melhor! Assim, menos é mais.

Em memória de vídeo você pode escolher o quanto de memória destinará para a máquina virtual. É preciso, na verdade, testar e escolher. Com 64 MB de memória de vídeo podemos produzir telas reais de 1920x1080 e 32 bits de cor, sem qualquer aceleração. Lembre-se que estamos trabalhando com emulação e não com máquinas reais. Telas de 1920x1080 em 32 bits de cor - o padrão FullHD - já são um desafio para os hardwares atuais, é, portanto, um desafio muito maior num cenário de virtualização. Faça testes e escolha o melhor valor que alia funcionalidade de virtualização com desempenho. Mas não se assuste se descobrir que menos é mais, :p

Em habilitar acelerações 3D podemos aumentar o desempenho do sistema ao habilitá-lo pois a opção ao invés de produzir mais código simulado, o diminui. Quando ativado todo o código utilizado na máquina virtual que use instruções OpenGL ou Direct3D 8/9 será tratado como código real e acelerado. De modo geral, convém habilitá-lo, porém, como já dito, só funcionará para instruções OpenGL ou Direct3D 8/9, sendo inerte nos demais casos.

Habilitar acelerações 2D infelizmente é ainda mais limitado que a opção anterior. O recurso ativado só funciona quando a máquina virtual é Windows XP ou outro Windows mais recente, quando o pacote de expansão está instalado no VirtualBox e quando os scripts deste pacote estão instalados na máquina virtual em execução, chamados de Guest Additions. Para este tópico sobre emulação Android, infelizmente, não tem função alguma.


Novamente, mais um recurso interessante. Apesar de não utilizar a opção de acesso remoto, é comum ter mais desempenho com ela ativada. Porém, neste caso o acesso à máquina virtual será de programas de acesso remoto (remote desktop, rdp) e não mais através da interface padrão do VirtualBox. É um recurso interessante e talvez seja útil usá-lo apesar de aumentar um pouco a complexidade da emulação.



É aqui que configuramos os discos disponíveis na máquina virtual. É interessante notar que nas soluções de virtualização de alto desempenho e alta fidelidade têm-se 3 discos virtuais. Porém, quando se instala imagens x86, a instalação padrão normalmente trabalha com apenas uma unidade de disco. Por fim, convém habilitar I/O Cache para melhorar o desempenho. 


O interessante aqui é que a documentação oficial do Android-x86 recomenda o uso do SoundBlaster 16 como controlador de áudio mas todas as máquinas virtuais de alto desempenho que testei utilizavam o ICH AC97.





Como pode ser observado nas imagens acima, o VirtualBox na instalação padrão permite a emulação de 4 placas de rede simultaneamente em suas máquinas virtuais. Nas imagens acima estão apresentadas as configurações nativas do Droid4X, com 3 interfaces em uso. Outros programas de emulação utilizam 2 interfaces. Porém, quando você estiver trabalhando com imagens x86 uma única interface é necessária e suficiente.

O alto número de interfaces não produz elevação do desempenho de rede, até pelo contrário. Normalmente, as soluções de emulação Android utilizam duas ou três interfaces de rede para simularem as redes 3G, WiFi e Bluetooth. Quando se trabalha diretamente com imagens x86, basta uma única interface, que será responsável pela simulação de redes 3G e sua navegação será perfeitamente rápida como seria uma interface WiFi, e, claro, sem qualquer uso de planos de dados reais.

Em configurações manuais para Android-x86 ou outros Sistemas Operacionais a configuração de rede é muito simples. Estando a rede NAT nativa do VirtualBox instalada e operante, utilizaremos apenas uma placa de rede com as seguintes opções:

Habilitar adaptador de rede: ativado.

Conectado ao: NAT.

Tipo de adaptador: poderá usar praticamente todas as opções em todas as máquinas virtuais desde que mantidas a mesma opção durante a execução da máquina virtual da opção escolhida durante a instalação da mesma máquina virtual. A opção virtio-net, no entanto, é mais compatível de todas.

Endereço MAC: use o que o VirtualBox lhe indicar.

Cabo conectado: ativado.

Re-encaminhamento de portas: normalmente não alteramos suas opções nativas.


Habilitar controlador USB: deverá estar sempre ativado na maioria dos cenários. Se desativado apenas a opção PS/2 Mouse em dispositivo apontador já comentado anteriormente funcionará.

Habilitar controlador USB 2.0 EHCI: é bastante útil em sistemas que façam uso do pacote de expansão do VirtualBox e que já estejam instalados os scripts de adição do convidado (guest additions) na máquina virtual em uso. Como estamos trabalhando com o Android, convém esta opção estar desativada, e, em meus testes completamente subjetivos e exclusivamente em meu sistema, ele desativado também produziu mais desempenho na emulação de várias versões do Android-x86.

HABILITANDO PLAY STORE NO GENYMOTION

Existem várias estratégias na construção de processadores. A discussão se um processador deve ser capaz de oferecer um número maior ou menor de instruções se mantém ainda hoje. Didaticamente um processador será RISC, CISC ou ambos.

Em outras palavras, se queremos manter um baixo número de instruções e por consequência baixa complexidade de construção ao prejuízo dos custos de desenvolvimento de software para tal arquitetura, optamos pelo modelo RISC. Em tal modelo o consumo elétrico costuma ser baixo e o custo da fabricação do hardware barato.  É o modelo preferido pelas empresas que vendem dispositivos embarcados, dedicados, tablets, celulares e smarphones. Comercialmente são conhecidos como processadores MIPS ou ARM, sendo o segundo mais popular que o primeiro.

Mas se quisermos ao contrário oferecer dispositivos capazes de processar um elevado número de instruções e portanto exigindo uma grande complexidade de construção ao benefício da simplificação e barateamento do desenvolvimento de software para tal arquitetura, então, optaremos pelo modelo CISC. Em tal modelo o consumo elétrico e o custo de fabricação do hardware são elevados. É o modelo dos mainframes, computadores pessoais e notebooks. Comercialmente são conhecidos como i386, i486, x86, x86_64, entre outros, e são produzidos por empresas como AMD, Intel e VIA.

O desafio da emulação de um smartphone num notebook, por exemplo, passa, pelo menos, por este desafio: transformar o conjunto de instruções (ISA) ARM em outro conjunto de instruções (ISA) x86. Tal transformação é bastante trabalhosa e portanto ao invés de serem convertidos em tempo de execução prefere-se converter em tempo de compilação. Assim, a imensa maioria dos sistemas Androind que serão emulados por seu computador são na verdade versões convertidas em x86.

Porém, a maioria dos programas e jogos para Android são escritos em ARM puro exigindo conversão em código x86 em tempo de execução. Para habilitar esta conversão em tempo de execução é preciso instalar uma ferramenta que por omissão dos desenvolvedores do Genymotion não é fornecida nativamente. Devem existir algumas alternativas, no entando, só conheço uma: ARM Translation Installer v1.1.

Para terminar estas longas explicações há ainda um último detalhe: a Play Store não vem presente em todos os softwares de emulação. A justificativa é simplesmente burocrática. A Google exige que a Play Store seja vinculada a um aparelho e não me assustaria se tal vinculação se desse através do pagamento de taxas de licenciamento. Não sei se existem Play Stores oficiais em código x86. Uso apenas um repositório de Play Stores não oficial, com inúmeras versões, todas escritas para ARM, e, por isso, exigem a instalação do ARM Translation antes do GAPPS (Play Store) para funcionarem.

O ARM Translation é único, mas, as GAPPS não. Elas são disponibilizadas em inúmeras versões, cada uma para uma versão (codename) Android específica e portanto devem ser escolhidas de acordo com a versão em uso pela sua virtualização. Aprofundando um pouco mais, a melhor opção é baixar a versão mais antiga destinada à sua versão Android, instalar, aguardar os erros e deixar o Android atualizar automaticamente para a versão correta, corrigindo a instalação para você.

Como dito, erros são esperados. Sempre que você instalar a versão mais antiga dentro das opções para a sua família (codename) Android, a Play Store apresentará erros e fechamentos contínuos até ser atualizada e corrigida automaticamente. Sempre que você instalar uma versão mais nova que a esperada ou uma versão para uma família diferente da sua família em uso, então, além dos erros a Play Store apresentará uma mensagem de "sem conexão" e não funcionará. Neste caso, não haverá correção automática. Re-inicie a emulação e instale a versão "correta" como já explicado.

De modo geral uma imagem de instalação Android é representada através de três formas distintas. Através dos codinomes oficiais, dos números de versão ou das siglas informais.

[Codinome]       [Sig.][Versão]     [Curiosidades]
-------------------------------------------------------
Lollipop           LP   5.0-5.1
-------------------------------------------------------
KitKat             KK   4.4.x-4.4.4
-------------------------------------------------------
Jelly Bean         JB   4.1.x-4.3.x
-------------------------------------------------------
Ice Cream Sandwich ICS  4.0.x-4.0.4
-------------------------------------------------------
Honeycomb               3.0.x-3.     Sem GAPPS
-------------------------------------------------------
Gingerbread        GB   2.3.x-2.3.7
-------------------------------------------------------
Froyo              *DPI 2.2.x        "Frozen Yogurt"
-------------------------------------------------------
Eclair             DS   2.0.x-2.1
-------------------------------------------------------
Donut              BASE 1.6
-------------------------------------------------------
Cupcake                 1.5
-------------------------------------------------------
(no code name)          1.1          Beta/"Petit-Four"
-------------------------------------------------------
(no code name)          1.0          Alpha
-------------------------------------------------------


Agora você já tem uma certa base para se virar sozinho e escolher a melhor versão compatível com sua imagem Android. Mas falta ainda falar da forma da instalação. Estávamos discutindo apenas o conteúdo.

O Android tanto instalado num dispositivo quanto emulado permite a criação de uma conexão de baixo nível e alto privilégio que permite-nos realizar ajustes finos, instalações, remoções, transferências, podendo inclusive prejudicar o sistema. Tal recurso chama-se Android Debug Bridge (ADB) e precisa tanto estar habilitado no dispositivo ou máquina virtual Android quanto precisa estar instalado em seu computador para que exista comunicação.

Não tenho o menor intuito de explicar seu funcionamento, nem como conectar-se através dele e nem apresentar qualquer linha de comando aqui. No momento preciso apenas que você saiba que ele existe, e como estamos explicando a instalação do ARM Translation e do GAPPS no Genymotion preciso que saiba que é através do ADB, ou mais precisamente através do adb.exe, que estará instalado em sua máquina que a magia funciona.

Com todos os arquivos em mãos, com a máquina virtual instalada e configurada, o processo é muito simples.

00 - Complete a instalação do Android.

01 - Mande o Android desligar.
02 - Aguarde o desligamento.
03 - Feche o Genymotion.
04 - Feche qualquer instância do adb.exe aberta.
05 - Inicie novamente a Genymotion.
06 - Abra a máquina Android.
07 - Aguarde o término do processo de boot.
08 - Arraste o arquivo zipado #1 para o Android.
09 - Aguarde a instalação.
10 - Aceite qualquer solicitação.

11 - Mande o Android desligar.
12 - Aguarde o desligamento.
13 - Feche o Genymotion.
14 - Feche qualquer instância do adb.exe aberta.
15 - Inicie novamente a Genymotion.
16 - Abra a máquina Android.
17 - Aguarde o término do processo de boot.
18 - Arraste o arquivo zipado #2 para o Android.
19 - Aguarde a instalação.
20 - Aceite qualquer solicitação.

21 - Mande o Android desligar.
22 - Aguarde o desligamento.
23 - Feche o Genymotion.
24 - Feche qualquer instância do adb.exe aberta.
25 - Inicie novamente a Genymotion.
26 - Abra a máquina Android.
27 - Aguarde o término do processo de boot.
28 - Configure a Play Store para auto-atualizar.
29 - Aguarde a atualização.
30 - Aceite qualquer solicitação.

Pronto!

Os arquivos necessários zipados em ordem são esses:
#1 - ARM-Translation_v1.1.zip
#2 - gapps-<signal>-<fulldate>-signed.zip


O processo real de instalação é feito através do ADB e seus comandos. Porém, o modo apresentado aqui é completamente gráfico, usando apenas o mouse, e também funciona. Caso precise instalar qualquer software em outras máquinas virtuais você sabe ao menos a direção a pesquisar: ADB. Mas como já disse, não tenho o menor interesse de descrever ou orientar seu uso.

Como é levemente chato e pode ser meio difícil encontrar os melhores arquivos para cada máquina virtual que experimentar, pesquise também nos seguintes sites: ItVends.comAndroidFileHost.comCyanogenMod.orgRootzWiki.comTeamAndroid.com.

IMAGENS ANDROID X86

AndEX
Download: Android 5.0.2 (Lollipop)
Comentário: No dia que baixei ainda era grátis.  Se soubesse que se tornaria pago teria guardado a imagem de disco só para compartilhar depois de hoje, :p Mas não se entusiasme. É bem lentinho.

Android-x86
Download: Android-x86.org
Info: HowToVirtualBoxHowToQEMU
Comentário: possui várias versões do Android disponíveis. De modo geral, quanto mais novo, mais exigente em recursos e mais pesado para emular.

Intel
Download: Android 4.4 (KitKat)
Download: Android 4.3 (Jelly Bean), Android 4.2, Android 4.1.1
Download: Android 4.0.4 (Ice Cream Sandwich)
Download: Android 2.3.7 (Gingerbread)
Comentário: Estas imagens são otimizadas para processadores Intel e para uso exclusivo com o Android Studio e Intel INDIE. Talvez até seja possível usá-las através do VMware Player ou VirtualBox, porém, dada a forma como são disponibilizadas, em imagens de sistemas pré-instalados, sem imagens instaladoras, o desafio é um pouco elevado para iniciantes Android, como eu, ou para iniciantes em virtualização, como o público alvo deste tópico.

ToySbox-ScratchboxLivecd
Download: CyanogenMod-4.1.2-Livehybrid.iso
Comentário: Esta imagem é a mais curiosa das presentes. Enquanto as outras imagens são versões do Android compiladas em x86, esta versão é uma distribuição GNU/Linux com um emulador Android embutido e preparado para ser executado automaticamente assim que se entra em modo gráfico.

Sim, sim. É uma emulação dentro de outra emulação! Já assistiu Inception (2010)?




abraços!

12 comentários:

  1. Fui baixar o droid4x, mas não consegui instalar, pq meu win é 7x64 e não 7x32, vc sabe se há uma versão para esse sistema?

    ResponderExcluir
    Respostas
    1. Anônimo, apesar de nunca ter instalado o Droid4X em sistemas 64 bits, os desenvolvedores afirmam que o programa é compatível com ambas plataformas.

      Um outro repositório é este:
      http://www.softpedia.com/get/Mobile-Phone-Tools/Others/Droid4X.shtml

      Infelizmente, não achei muita informação a respeito também. Talvez se informar as mensagens de erro durante a instalação possa lhe ajudar mais.

      Caso queira publicar print das telas de erro, este site é muito bom: http://prnt.sc/

      abraços

      Excluir
  2. Oi Fernando Di Ramos, obrigado pela atenção e por responder tão rápido. Consegui instalar o Droid4x pelo repositório que vc indicou, dessa vez sem nenhum problema.
    Obrigada novamente!

    ResponderExcluir
  3. Baixei o Oracle VM VirtualBox Manager e logo em seguida o droid4x. Os aplicativos foram instalados sem nenhum problema, porém o droid4x trava muito, muito msm, demorou praticamente o dia inteiro para baixar um jogo. Como resolvo esse problema?
    -Laís.

    ResponderExcluir
    Respostas
    1. Boa tarde, Laís.

      O Droid4x possui uma VirtualBox dedicada, instalada por padrão. O ideal é que você NÃO use outras instalações do VirtualBox.

      Quando testei o Droid4x, eu já utilizava o VirtualBox e perdi todas minhas máquinas virtuais anteriores.

      O melhor seria remover os ambos programas, reiniciar a máquina e instalar somente o Droid4x.

      Reiniciar é importante pois muitos serviços só podem ser removidos durante a inicialização.

      abraços

      Excluir
  4. Fiz o q vc falou, mas na hora de instalar o droid4x apareceu a seguinte frase: "C:\Users\Administrador\Downloads\Droid4xInstaller.exe não é um aplicativo Win32"
    Meu pc é um Win 7 64 bit.
    O q faço?
    - Laís

    ResponderExcluir
    Respostas
    1. Laís, o mais provável é que o instalador tenha se corrompido. Apague-o e tente baixa-lo novamente.

      Sempre que se baixa um instalador é bom clicar com o botão direito sobre o arquivo, escolher "Propriedades" e então escolher a opção "Desbloquear", se existir.

      Depois, clicar novamente com o botão direito sobre o instalador e escolher a opção "Executar como administrador".

      Mas o mais provável é só que o arquivo esteja corrompido.

      abraços

      Excluir
    2. Consegui instalar, obrigada pela ajuda.
      -Laís

      Excluir