Este artigo fornece um breve guia para algumas coisas importantes que você deveria saber quando usar o emulador Boot to Gecko.
Este guia assume que você já contruiu um dos emuladores; Caso contrário, veja Instalando e compilando o Boot to Gecko!
Sobre os emuladores B2G
Existem dois emuladores B2G. O primeiro construido por meio da configuração de "emulator-x86" quando roda o config.sh
, é um emulador para dispositivos ARM. Apesar de ser mais lento que o executado em um processador x86, é mais estável e tem uma representação mais precisa de como o dispositivo real irá funcionar. Configurando como "emulator-x86" quando executar config.sh
você terá o emulador x86.
Uma vez selecionado, configurado e compilado um emulador, o restante funciona da mesma forma segundo o ponto de vista do usuário. Então o restante desse artigo é comum para ambos os emuladores.
Iniciando o Emulador
Para inicializar o emulador do B2G, digite o seguinte comando:
./run-emulator.sh
Esse comando realiza todas as tarefas de incialização do emulador para você. Você tem que ser paciente enquanto o emulador inicializa e depois a inicialização do Boot to Gecko. Isso pode levar alguns minutos.
Quando o emuladora nao funciona
Algumas vezes o emulador falha na incialização. Bem-vindo ao time! A seguir algumas dicas para resolver os problemas.
Você está tentando executar em uma máquina virutal?
VirtualBox e Parallels possui alguns problemas no suporte ao acelerador gráfico que causa uma falha na inicialização do emulador, algo relacionado com o dispositivo OpenGL. O dispositivo inicia o boot, falah e reinicia em um loop, ou inicia sem mostrar nada no emulador. Infelizmente ainda não há solução disponível (existe uma solução de contorno para VirtualBox) - você precisa usar o VMWare Player (Freeware), Workstation ou Fusion. Para o VirtualBox - não instale Guest Addons, ou desabilite o módulo vboxvideo.
Certifique-se que o servidor adb está executando
Isso geralmente acontece porque o servidor adb que interage com o dispositivo emulado pode não estar rodando com um mal funcionamento.
Nota: Se você está usando o adb
compilado pelo sistema de compilação B2G (o que provavelmente é o usado), ele está localizado no diretório $B2G/out/host/<platform>/bin
. No Mac, o diretório é $B2G/out/host/darwin-x86/bin
, por exemplo.
Para verificar se o adb
está rodando execute:
ps aux | grep adb
Se está rodando, interrompa a execução porque provavelmente ele não está funcionando corretamente.
adb kill-server
Se o serviço não está rodando execute:
adb start-server
Então, tente executar o emulador novamente. Se ainda não funcionar, é hora de ir para o canal IRC #b2g em irc.mozilla.org para conseguir ajuda.
Configurando o emulador
There are several options you can change to adjust the emulator to be more similar to the device you want to emulate. This section provides some basic information on how to do that. You can adjust the emulator's configuration by editing the run-emulator.sh
script (or, ideally, a copy of it). Only a few of the most useful parameters are discussed here; you'll want to look at the qemu site for details on the others.
run-emulator.sh
for each device you want to simulate; this makes it easy to start up with different configurations.Apagar as definições da configuração
Algumas vezes, configurações desatualizadas no seu dispositivo emulado pode causar um comportamento estranho. Você pode apagar o banco de dados IndexDB seguindo as instruções:
- Certifique-se de que o adb está rodando, como descrito em Certifique-se que o servidor adb está executando.
- Inicie o emulador.
- Abra o terminal no computador que executa o emulador, vá para o diretório raiz da compilação do seu emulador e digite:
out/host/<platform>/bin/adb -e shell
; no Mac, o diretório pode serout/host/darwin-x86/bin/adb -e shell
. - Agora que você está no
shell
doadb
você pode executar comandos shell no seu dispositivo emulado. Pare o serviço B2G no dispositivo:stop b2g
. - Apague o banco de dados IndexDB:
rm -rf /data/local/indexedDB
. - Reinicie o B2G no dispositivo emulado:
start b2g
.
É esperado que nesse ponto você chegue na interface do Gaia e tudo corra bem.
Se o emulador começa mas a tela fica preta após a tela inicial "mozilla technology"
Caso isso aconteca, pode ser um bug do drive da máquina que está executando o emulador. Pode acontecer no drive Nouveau Open Source do Linux. A solução mais simples é substituir os drives da máquina. Nesse caso deve-se instalar o drive Nouveau proprietário ("adicional no Ubuntu). No caso do chipset gráfico da Intel, o drive open source pode causar um erro no emulador: 'eglMakeCurrent failed
' que parece suportar uma versão OpenGL inferior ao necessária para a emulação (2.0 GPU). A solução é desativar o GPU através da edição do script run-emulator.sh
(neste caso será mais lento).
Alterando skins
Por padrão, o emulador incia no modo HVGE, que é metade do modo VGA, ou 320x480 pixels. Isso é especificado no parâmetro -skin
que é passado ao emulador ao iniciar. Você pode alterar para um modo diferente alterando o script run-emulator.sh
(ou, de preferência, uma cópia dela). Os skins disponíveis são:
- HVGA (320x480)
- QVGA (240x320)
- WQVGA (240x400)
- WQVGA432 (240x432)
- WSVGA (1024x600)
- WVGA800 (480x800)
- WVGA854 (480x854)
- WXGA720 (1280x720)
- WXGA800 (1280x800)
Os skins ficam armazenados no diretório B2G/development/tools/emulator/skins
. É importante notar que o formato dos skins são muito simples, se você observar vai perceber que são pastas simples com arquivos PNG para os diversos objetos de interface de usuário e um arquivo texto chamado layout
que descreve o layout da interface e a área da tela. É muito simples criar skins personalizados se desejar.
Alterando tamanho de memoria
Outra opção que você pode ou necessita configurar é a memória do dispositivo. O valor padrão é 512 MB, portanto se o dispositivo que você está emulando possui mais ou menos memória, seria importante ajustar o valor para garantir que os aplicativos serão executados em condições similares ao dispositivo. Para fazer isso altere o valor do parâmetro -memory
para o tamanho desejado em megabytes. Além do valor padrão de 512 MB, 256 MB e 1024 são prováveis valores que você queira testar.
Para alterar a capacidade de armazenamento do dispositivo emulado (ou seja, o espaço disponível para dados locais, como cartão de memória num telefone móvel ou disco rígido num computador), altere o valor do parâemtro -partition-size
. O valor padrão é 512 MB, mas você pode especificar qualquer outro valor em MB para simular o dispositivo a ser testado.
Conectividade de Rede
Se por alguma razão você não conseguir conectar seu emulador à internet você pode executar o seguinte comando a partir do terminal:
adb shell setprop net.dns1 10.0.2.3
Se você executar o emulator-jb
ou emulator-kk
, o comando para configurar o servidor NDS é diferente.
Então execute os seguintes comandos:
adb shell ndc resolver setdefaultif eth0 adb shell ndc resolver setifdns eth0 10.0.0.0 10.0.2.3