segunda-feira, 19 de setembro de 2011

Android-x86: uma alternativa ao emulador do Android



Eu já desenvolvo com Android há algum tempo, e não aguentava mais ter que esperar o emulador carregar... no Linux é lento, mas no Windows é muuuuito lento!

Então chegou o momento de buscar solução uma alternativa, que funcione, sem a necessidade de usar o seu aparelho Android.

Bem, como vamos fazer isso?

Você conhece o projeto Android-x86 , não?  Você não sabe o que está perdendo cara!

Uma das melhores soluções para trabalhar com desenvolvimento Android é usar o Android-x86 para depurar e testar sua app. Essa afirmação é feita por um Desenvolvedor que após sofre muito com o maldito emulador Android, conseguiu uma alternativa viável para testar suas Apps.

Nossa estratégia é rodar o Android-x86 virtualizado, usaremos o VirtualBox para isso.

Como montar o ambiente de desenvolvimento para usar o Android-x86?

Primeiramente vamos baixar o Android-x86 do link, de preferência as versões mais novas, pois são mais rápidas. Eu estou usando a versão 2.2 (android-x86-2.2-r2-eeepc), por ainda ser muito utilizada pelo mercado.

Se você não tem o VirtualBox instalado, baixe ele do link. A versão deve ser escolhida conforme o seu sistema operacional (Windows, Linux e etc).

Após instalar o VirtualBox, crie uma máquina virtual com a seguinte configuração: Linux / Other,  512MB RAM, Network: usar a opção Placa em modo Bridge.



Após a configuração do VirtualBox, chegou o grande momento de instalar o Android-x86. Com o ARMAZENAMENTO do VirtualBox apontando para a mídia do Android-x86, que foi baixada anteriormente. Execute (INICIAR) a VM do Android-86, a seguinte tela abrirá:



Selecione a opção "Install Android to harddisk", conforme tela apresenta acima. Agora é necessário criar uma partição para o Android-x86, conforme a seguir:
Tela 1 - criar partição
Tela 2 - criar partição
Tela 3 - criar partição


Após a criação da partição, a seguinte tela será apresenta.  Selecione a opção sda1:



Agora será necessário escolher o tipo de filesystem para instalar o Android-x86, ressaltando que se você escolher a opção fat32 os dados serão perdidos após reiniciar a VM. Eu sempre uso a opção ext3.



Na próxima tela você terá que escolher entre instalar ou o GRUB. Ele gerencia o bootloader da máquina.



Se tudo ocorreu bem, a seguinte tela aparecerá e você poderá rodar suas apps diretamente no Android-86:


Perai galera, ainda falta um detalhe importante. Após entrar no Android-x86, pressione as teclas ALT+F1 e digite o comando netcfg, aparecerá o IP da VM, anote o endereço IP pois precisaremos dele para configurar o ADB (ANDROID-SDK/platform-tools). Para voltar ao Android, pressione ALT+F7.

Não esqueça de entrar nas configurações do Android-x86 e habilitar as opções FONTES DESCONHECIDAS e DEPURAÇÃO USB.

Agora é só iniciar o adb da sua estação via terminal e conectar a VM criada: 
sudo ./adb connect <ip_do_android_x86>

Para ver o seu Android-x86 pelo ADB:
./adb devices

List of devices attached
11.11.111.11:5555    device

Onde 11.11.111.11 é o IP da VM.


Agora sim!! Inicie o Eclipse, abra as configurações de execução ("Run configurations") e desmarque os "targets" (aba TARGET) que estejam marcados, em seguida, selecione o radio Manual. Isto fará com que o Eclipse selecione o seu Android-x86.

Segue o resultado do BlackJack no Android-x86:



Algumas dicas importantes:

- O Android-x86 não reconhece o mouse de primeira, tem que navegar via teclado.  Para habilitar o mouse, no VirtualBox, vá em Maquina / Desabilitar integração de Mouse.

Seguem as principais teclas para facilitar sua navegação no Android-x86:

Home = tecla Windows
Back = tecla Esc
Menu = tecla Windows menu
ALT+F1 para mudar para console ou ALT+F7 retorna para a tela.
F6 = permite executar as operações: desligar, reiniciar, modo silencioso e modo avião.


- No Linux, você terá que incluir o seu usuário no grupo vboxusers, em Usuários e Grupos / gerenciar grupos.


Autor: Francisco Rodrigues

9 comentários:

  1. Valewww a dica, segui conesegui fazer funcionar só tem duas coisas que nao consegui fazer ... girar a tela e mudar a resolução, consegui instalar aplicativos via apk e rodar minhas apps pelo eclipse mas nao consegui nem girar a tela nem mudar a resolução ... tem alguma forma de fazer isso .. de qualquer forma ... tks pela dica

    ResponderExcluir
  2. Mais uma coisa rs, nao consigo utilizar som tem alguma conf. que precisa fazer

    ResponderExcluir
  3. Para mudar a resolução, vai no DIR onde está instalado o VirtualBox (VirutalBox VM),
    costuma ficar no home do user. Edite o arquivo .vbox (nomeDaVM.vbox), no item ExtraData, adiciona mais um item, conforme a seguir:

    <ExtraData>
    <ExtraDataItem name="CustomVideoMode1" value="480x320x16" >
    <ExtraDataItem name="GUI/LastCloseAction" value="powerOff" >
    <ExtraDataItem name="GUI/LastGuestSizeHint" value="480,320" >
    <ExtraDataItem name="GUI/LastNormalWindowPosition" value="742,67,480,362" >
    <ExtraData >

    Quando entrar na tela de boot, pressione a tecla "e", em seguida, "e" novamente. Aparacerá uma linha, procura o atributo DPI=240 e muda para 160. No final da linha digita vga=ask, pressione ENTER e na próxima tela pressione a tecla b.
    Na última tela vc escolhe o número da resolução que vc criou, por exemplo:360, que o número da resolução criada por mim CustomVideoMode1.

    Infelizmente, o android-x86 tem algumas limitações: GPS, Câmera, mas ele ajuda muito no desenvolvimento das apps. E vc ainda se livra do maldito emulador

    ResponderExcluir
  4. Poderia explicar melhor o seu comentario anterior para mudar o tamanho da tela. "Quando entrar na tela de boot, pressione a tecla "e", em seguida, "e" novamente." desta parta em diante, não consegui mais. Obrigado.

    ResponderExcluir
  5. Muito legal! Consegui instalar e rodar a versão 2.3, mas me perdi neste ponto do post:

    "Agora é só iniciar o adb da sua estação via terminal e conectar a VM criada:
    sudo ./adb connect "

    Não entendi o que devo fazer aqui.

    E quando aperto ALT + F1 no VirtualBox e digito "netcfg" o que obtenho é isso:

    "lo UP 127.0.0.1 255.0.0.0 0x00000049"

    Está correto isso? Pq pelo que sei 127.0.0.1 é padrão para local.

    Obrigado.

    ResponderExcluir
  6. Existe alguma versão do android x86 2.3?

    ResponderExcluir
  7. Sim, já tem até a versão 4.0 (ICS).

    http://code.google.com/p/android-x86/downloads/list?can=1&q=android-x86&colspec=Filename+Summary+Uploaded+ReleaseDate+Size+DownloadCount

    ResponderExcluir
  8. alguem sabe como faço para virar a tela? as vezes alguns apps viram ela de lado e quando saio ela não volta ao normal

    ResponderExcluir