Este artigo aborda o download ou a compilação do Firefox OS para desktop, bem como a forma de usá-lo.
Nota: A forma mais fácil de usar o Firefox OS é usando o Simulador Firefox OS, pois não requer que você próprio compile o cliente desktop.
Baixe uma compilação do nightly
Assim como Firefox Nightly, o Firefox OS cliente de desktop é lançado a cada dia a partir do código fonte mais recente. A versão mais recente está disponível no servidor FTP da Mozilla. Certifique-se de escolher a versão mais recente e o arquivo certo para o seu sistema operacional. Com isso você não precisa compilar, além disso, não é necessário fazer download da Gaia .
Certifique-se de instalar o aplicativo em um local com permissões de gravação. O aplicativo precisa ser capaz de atualizar o perfil incluído do Gaia.
Agora você pode pular para a execução do cliente de desktop.
Compilar o cliente desktop
A primeira coisa que precisamos fazer é configurar um ambiente de compilação padrão Mozilla. Assim que tivermos isso, nós podemos baixar o código necessário, e configurar para compilar o Firefox OS cliente desktop.
Baixando o código pela primeira vez
Em um diretório onde gostaria que ficasse o código-fonte, vamos clonar o repositório mozilla-central que contém o Gecko:
hg clone https://hg.mozilla.org/mozilla-central
Alternativamente, você pode baixar o mesmo código do Github:
git clone https://github.com/mozilla/gecko-dev
Atualizar o código
Ao longo do tempo, você vai querer certificar-se de que o código esteja na sua última versão. Para isso execute:
cd mozilla-central
hg pull -u
ou
cd gecko-dev
git pull
Criar um mozconfig
Em seguida, você precisa criar um arquivo chamado mozconfig
no diretório mozilla-central
, para configurar o sistema de compilação do cliente Boot para Gecko cliente em vez do Firefox. Esse arquivo deve conter o seguinte conteúdo:
. "$topsrcdir/b2g/config/mozconfigs/common"
mk_add_options MOZ_OBJDIR=../build
mk_add_options MOZ_MAKE_FLAGS="-j9 -s"
ac_add_options --enable-application=b2g
ac_add_options --disable-libjpeg-turbo
# This option is required if you want to be able to run Gaia's tests
ac_add_options --enable-tests
# turn on mozTelephony/mozSms interfaces
# Only turn this line on if you actually have a dev phone
# you want to forward to. If you get crashes at startup,
# make sure this line is commented.
#ac_add_options --enable-b2g-ril
Você também precisa incluir a linha ENABLE_MARIONETTE=1
no arquivo se você quiser executar Mochitests no cliente B2G Desktopin (seja no mochitest-b2g-desktop
ou mochitest-plain
) ou se você quiser executar Testes unitários do Gaia.
Compilando
Agora estamos prontos para compilar o cliente B2G desktop com o seguinte comando a partir do diretório mozilla-central
:
./mach build
O resultado da compilação será colocado no diretório ../build/dist
(baseado no valor da variável MOZ_OBJDIR
no arquivo mozconfig
).
Baixando o Gaia
Por padrão, o cliente de desktop vai mostrar uma tela vazia, porque não sabe qual aplicativo web deve ser carregado inicialmente como o aplicativo do sistema. A coleção de aplicativos do sistema e os aplicativos padrão que vêm com o Firefox OS — Gaia — deve ser baixado.
Para baixar o Gaia pela primeira vez clono o repositório de código fonte no GitHub:
git clone https://github.com/mozilla-b2g/gaia cd gaia
Para atualizar um clone já existente de Gaia, podemos puxar as últimas alterações do GitHub:
cd gaia git pull
Criando um arquivo custom-settings.json
Se você sabe o que está fazendo e quer criar diversas opções de configuração, você pode criar o arquivo gaia/build/config/custom-settings.json
e adicioná-lo no repositório, por exemplo:
{
"lockscreen.enabled": false,
"lockscreen.locked": false,
"devtools.debugger.remote-enabled": true
}
Gerando um perfil
Em seguida, precisamos criar aplicativos Gaia para o cliente desktop. Isso inclui o acondicionamento dos aplicativos de Gaia da mesma forma como eles seriam instalados no dispositivo, bem como configurar as permissões para os aplicativos do sistema privilegiados. Fazemos isso através da geração de um perfil. O seguinte comando irá cuidar de que: O novo perfil contenha uma extensão personalizada e outra configuração necessária para fazer B2G executado corretamente. Então, fazer isso no diretório gaia:
DESKTOP_SHIMS=1 NOFTU=1 DEBUG=1 make
Isso deve criar o diretório profile-debug
abaixo do diretório gaia
. O novo perfil contém uma exensão personalizada e outros detalhes da configuração necessários para executar o B2G corretamente.
Executando o cliente de desktop
Uma vez que você compilou o cliente e Gaia baixado (ou baixado e instalado o aplicativo de Nightly desktop), você está pronto para executar o Firefox OS cliente desktop.
Executando no Linux
Para executar o cliente de desktop no Linux usando o perfil de Gaia embutido, basta executar o arquivo executável b2g
. O binário está no pacote que você baixou anteriormente ou no diretório ../build/dist/bin
, caso você tenha compilado o cliente.
.../b2g-bin -profile gaia/profile
Você pode ter problemas irritantes de renderização. Para evitá-los, adicione a seguinte linha ao seu arquivo gaia/profile/prefs.js
:
user_pref("layers.acceleration.disabled", true);
Executando no Mac
Se você baixou a compilação Nightly, você pode simplesmente lançá-lo a partir do Finder, como de costume. Qualquer saída do console é visível executando programa utilitário padrão do console que acompanha o Mac.
Se você quiser especificar um perfil diferente do Gaia diferente, você precisa ignorar o programa que "empacot" o b2g
e executar o binário b2g
. A linha de comando é um pouco mais complicada, devido à localização do binário B2G-bin e a necessidade de caminhos absolutos quando especificar o diretório de perfil:
.../B2G.app/Contents/MacOS/b2g -profile /full/path/to/gaia/profile-debug
Executando no Windows
Para executar o Nightly no Windows basta executar o b2g.exe
. Se você quiser personalizar a execução, você pode fazer isso executando b2g.exe
. Feito isso, o programa ignora o invólucro que automaticamente usa o pacote de Gaia.
Opções de linha de comando
Há uma série de opções de linha de comando que você pode usar para ajustar a experiência de tempo de execução ao usar o cliente de desktop. Você pode obter uma lista usando a opção -help
. Esta seção cobre alguns das opções mais interessantes.
Especificando o tamanho da tela
Você pode especificar o tamanho da tela do dispositivo que você deseja simular usando a opção --screen:
b2g --screen=<width>x<height>@<dpi>
Onde <width>, <height> e <dpi> são parametros auto-explicativos parâmetros: a largura e altura da tela do dispositivo em pixels e a resolução do dispositivo em DPI. Por exemplo:
b2g --screen 320x480
b2g --screen 320x480@160
Opcionalmente, você pode especificar determinados dispositivos pelo nome para simular seu tamanho de tela e resolução:
iphone
ipad
nexus_s
galaxy_nexus
galaxy_tab
wildfire
tattoo
salsa
chacha
Abrindo o console JavaScript
Você pode abrir o console JavaScript, ao lançar o cliente desktop a partir da linha de comando com a o flag -jsconsole
. Após compilar, basta executar o comando:
.../b2g -jsconsole -profile /path/to/your/profile
Se você tiver instalado o Nightly em um Mac, você pode fazer o seguinte:
/Applications/B2G.app/Contents/MacOS/b2g -jsconsole -profile /path/to/your/profile
Nota
: Em compilações de produção do Firefox OS, log de console (por examplo console.log()
) é desabilitado por padrão. Para habilitá-lo, vá em Configurações do Desenvolvedor e habilite a opção Console Habilitado.
Lançando uma aplicação específica na inicialização
Agora você pode especificar um aplicativo a ser lançado automaticamente quando B2G começa a funcionar no cliente de desktop. Isto é feito, assim como o resto do sistema é feito o carregamento para cima. Para fazer isso, é só usar a opção --runapp
que toma como parâmetro o nome do aplicativo para ser executado. Por exemplo:
.../b2g -profile /path/to/your/gaia/profile --runapp email
Nota: O nome especificado é normalizado convertendo para letras minúsculas e removendo os traços e espaços. Esse nome normalizado é comparado com nomes similares dos manifestos de aplicativos disponíveis. Por exemplo, o nome do aplicativo de email é "E-mail", mas --runapp email
funcionará corretamente devido à normalização.
Se você especificar a opção --runapp
sem um argumento, ou com um argumento vazio, o cliente B2G irá imprimir ao seu terminal uma lista das aplicações conhecidas.
Nota: Ao usar a opção --runapp
a tela de bloqueio é desativada não sendo possível reativá-la. É assumido que você não vai usar este comando em um perfil no qual você estará testando a tela de bloqueio, ou você vai ligá-lo novamente manualmente. Sinta-se livre para contribuir com um patch para mudar esse comportamento se isso é um problema.
Dicas de uso
Esta seção fornece algumas dicas úteis para o uso do cliente de desktop B2G.
A tecla ESC executa a mesma função que o botão "voltar".
- A tecla Esc executa a mesma função que o botão "voltar".
- A tecla Home executa a mesma função que o botão "home", se você estiver no Mac, a tecla Home é disponível pressionando ao mesmo tempo as teclas Fn + ← (Fn + Seta para esquerda).
- A tecla End executa a mesma função que o botão "Power", se você estiver no Mac, a tecla End é disponível pressionando ao mesmo tempo as teclas Fn + → (Fn + Seta para direita).
- As telas Page Up e Page Down executa as mesmas funções que "Volume Up" e "Volume Down" respectivamente, se você estiver no Mac, as teclas Page Up e Page Down são disponíveis pressionando ao mesmo tempo as teclas Fn + ↑ (Fn + Seta para cima) e Fn + ↓ (Fn + Seta para baixo) respectivamente.
- Pressionando longamente a tecla Home abre a "Visão de Cartas", se você estiver no Mac, Cmd + Fn + ← (Cmd + Fn + seta para esquerda) abre a "Visão de Cartasopens the "Visão de Cartas".
Resolução de Problema: Uma tela branca quando o B2G Desktop inicia
Quando você inicia o b2g usando b2g -profile gaia/profile
uma tela branca pode aparecer juntamente com o erro "Cannot reach app://system.gaiamobile.org". Para resolver isso uma série coisas devem ser verificadas:
- Recompile o perfil do Gaia usando
DEBUG=1 make
profile no diretório gaia. - Execute b2g novamente.
- Se isso não resolver, verifique se existe outro processo conectado na porta 8080. O perfil padrão do Gaia executa
httpd.js
, que escuta a porta 8080. Ao executar um perfil de depuração, B2G conecta alocalhost:8080
. Se algum outro processo estiver executando na porta 8080, b2g falha e não mostra a tela inicial do gaia.- Para descobrir se esse é o caso, você pode habilitar o log em
httpd.js
. Ohttpd.js
no perfil reside emgaia/profile/extensions/httpd/content/httpd.js
. Abra esse arquivo para editá-lo. - Altere a linha
var DEBUG=false;
paravar DEBUG=true;
- Salve o arquivo e reinicie B2G. No console você conseguirá ver os logs do
httpd
.
- Para descobrir se esse é o caso, você pode habilitar o log em
Próximos passos
Agora que você tem uma área de trabalho de compilação de Boot para Gecko, você pode testar, desenvolver e realizar outras tarefas: