mozilla
Os seus resultados da pesquisa

    Sistema de Compilação Primário

    Este artigo necessita de uma revisão editorial.

    Esse artigo explica como o sistema de compilação do Gaia funciona, incluindo o makefile, o processo de compilação, as variáveis de ambiente e potenciais customizações.

    A maioria do trabalho significativo das etapas de uma compilação é executado por scripts que estão no subdiretório build/ do Gaia, que são executados usando make, node.js e XPCShell (também conhecido como JS Shell), um ambiente de execução do XULRunner. O sistema de compilação do Gaia contem mutas ferramentas de ajuda que o auxiliam para instalar, testar, localizar e empacotar aplicativos web em um dispositivo real. Também possibilita os desenvolvedores customizar o Gaia, por exemplo, trocando o papel de parede padrão, toques do telefone e configurações.

    Nota: XPCShell e similar ao node.js, mas com a capacidade adicional de executar alguns scripts de JavaScript "Mozilla-flavored". Possibilitando do Gaia compilar scripts para ser executado dentro de uma extensão Firefox.

    O Makefile

    O make file é composto por um grupo de objetivos. Essa seção explica os mais úteis.

    install-gaia

    Instalar todos os aplicativos Gaia para seu dispositivo. Se você quiser trazer somente um aplicativo específico, você pode utilizar o parâmetro APP como descrito a seguir:

    APP=calendar make install-gaia

    Esse diretório deve existir dentro do diretório de aplicativos Gaia (por exemplo., apps).

    reset-gaia

    Funciona da mesma forma que install-gaia mas, primeiro apaga tudo e configura para as permissões padrão depois de instalar todos os aplicativos. Os aplicativos ficarão em /data/local da mesma forma como ocorre nas compilações da engenharia. Isso também traz as aplicações de teste e depuração.

    Cuidado: Utilizando a variável de ambiente APP com reset-gaia aparementemente funciona, mas colocará seu telefone em um estado no qual fica inutilizado (que pode ser recupardo executando esse objetivo novamente sem a variável APP). Assim não faça isso.

    production

    O mesmo que reset-gaia mas instala os aplicativos web em webapps /system/b2g ao invés de /data/local. Esse objetivo basicamente possibilita você emular compilações de usuário. Também traz o mesmo conjunto de de aplicativos instalados na compilação do usuário.

    Cuidado: Utilizando a variável de ambiente APP com production aparementemente funciona, mas colocará seu telefone em um estado no qual fica inutilizado (que pode ser recupardo executando esse objetivo novamente sem a variável APP). Assim não faça isso.

    reference workloads

    Esses objetivos trazem tamanhos variáveis de carga de trabalho para o dispositivo, nos ajudando a corrigir problemas de performance e escalabilidade. Esses objetivos aceitam a variável de ambiente APP, ou APPS que pode conter nomes dos aplicativos separados por espaço, por exemplo:

    APP=sms make reference-workload-light
    APPS="sms communications/contacts" make reference-workload-heavy

    Nota: Para maiores informações, leia Modificando o Gaia: Reference workloads.

    Variáveis de ambiente

    Algumas variáveis de ambiente permitem você controlar alguns aspectios da compilação e instalação em seu dispositivo, por exemplo:

    B2G_SYSTEM_APPS=1

    Essa variável de ambiente permite você enviar um aplicativo para /system/b2g ao invés de /data/local. Você pode usar isso quando você trabalhar com uma compilação de usuário. Essa variável é automaticamente ajustada ao executar make production. Isso pode ser usado para install-gaia ou reset-gaia.

    GAIA_OPTIMIZE=1

    Isso dispara um passo de otimização nos arquivos JavaScript. É automaticamente ajustada ao executar make production. Pode ser utilizada para install-gaia ou reset-gaia.

    PRODUCTION=1

    Basicamente é um alias para make production.

    DEBUG=1

    Gera um perfil de depuaração para ser usado com testes unitários do Gaia ou quando for desenvolver seu aplicativo Firefox OS no Firefox. Você deve apagar o diretório de perfil existente antes de gerar um outro.

    DEVICE_DEBUG=1

    Desabilitar o bloqueio de tela no dispositivo.

    GAIA_DEVICE_TYPE=phone

    Essa variável permite você compilar para um dispositivo específico de uma diferente 'app.list'. Todos os arquivos 'app.list' estão armazenados em subdiretórios de /build/config/$(GAIA_DEVICE_TYPE)/.

    O valor padrão de GAIA_DEVICE_TYPE é phone.

    Nota: para maiores detalhes e mais opções consulte nosso guia de Opções do Make.

    Processo de compilação

    Esse é o processo de compilação quando o make é executado no diretório do Gaia. As regras são executadas na seguinte ordem:

    1. xulrunner-sdk-30: Xulrunner é usado para executar os scripts xpcshell no diretório GAIA_DIR/build/.
    2. preferences: Gera as preferências padrões para o Firefox OS; gera o arquivo user.js e o coloca no dispositivo, onde possa ser lido pelo Gecko. Observer que os valores devem ser alterados com variáveis de ambiente diferentes como DEBUG=1.
    3. webapp-manifests: Gera metadados dos aplicativos web para o process de compilação
    4. keyboard-layouts: Gera a configuração de layout padrão do teclado
    5. svoperapps: Baixa os aplicativos e gera os arquivos de configuração para a instalação dos aplicativos dependendo do país e operadora
    6. webapp-shared: Pega os arquivos que são usados em cada aplicativo do diretório compartilhado para o diretório build_stage.
    7. app-makefiles: Makefiles no diretório app: São executados se existirem. Para os aplicativos que não possuírem um Makefile associado, o Makefile do Gaia copia o diretório do aplicativo para build_stage, e executa [app-directory]/build/build.js. Caso exista veja Build script for apps para detalhes.
    8. test-agent-bootstrap & test-agent-config: inclui duas regras de make, test-agent-config e test-agent-bootstrap-apps, que são usadas para configurar ambientes de teste para os aplicativos.
    9. webapp-optimize: Esse script contém vários procedimentos de otimização incluindo minificação de JavaScript, concatenação de localização de arquivos de recursos em arquivos JSON e geração de arquivos HTML para o idioma padrão se necessário.
    10. webapp-zip: Comprime cada aplicativo em arquivos zip separados e os coloca no diretório profile/. Arquivos no diretório shared/ declarados nos arquivos HTML dos aplicativos web são incluídos nessa etapa.
    11. optimize-clean: optimize-clean apaga os arquivos HTML para o idioma padrão
    12. settings.json (settings.js): Esse JavaScript gera as configurações padrão para o Firefox OS, que serão lidos pelo Gaia.
    13. contacts: Copia um arquivo de contatos pré-carregado para o seu perfil, se existir em GAIA_DISTRIBUTION_DIR.
    14. extensions: Copia as extensões de GAIA_DIR/tools/extensions para o seu diretório do perfil, configurações diferentes permitem especificar a cópia de extensões diferentes.
    15. create-default-data: Copia os dados padrão para o seu diretório de perfil.
    16. installed-extensions.json (additional-extensions.js): Finalmente, esse script baixa algumas extensões adicionais para o seu perfil.

    Diagrama de dependência do makefile do Gaia:

    Build Script para os aplicativos

    Por padrão, o Makefile do Gaia copiará todos os aplicativos para o diretório build_stage e executará [app directory]/build/build.js se existir. Se o aplicativo possuir um Makefile para compilá-lo, você precisa publicar um comando no Makefile para copiar os arquivos do aplicativo para o diretório build_stage e executar build/build.js caso necessário.

    Por exemplo, o aplicativo Camera precisa do arquivo r.js para require.js e também executar um script de compilação JavaScript para customizar a máxima resolução, assim existe um Makefile e um arquivo build/build.js no diretório do aplicativo Camera para customizar o processo de compilação:

    Abaixo um fluxograma para ilustrar como o app-makefiles funciona:

    Customizando as preferências

    Se você tiver um conjunto de preferências customizadas e precisar configurá-las toda vez que fazer um flash para seu dispositivo, você pode criar um arquivo chamado custom-prefs.js dentro do diretório build/config. Isso o protege de ser sobrescrito.

    Abaixo algumas preferências úteis:

    // this enables marionette which lets you run performance tests
    // see https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/Gaia_performance_tests
    user_pref("marionette.defaultPrefs.enabled", true);
    
    // this sets the port for remote debugging your application on the device
    user_pref("devtools.debugger.remote-port", 60000);
    
    // this enables the remote debugger
    user_pref("devtools.debugger.remote-enabled", true);
    
    // this outputs debug information about the Radio Interface Layer in logcat
    user_pref("ril.debugging.enabled", true);

    Esse arquivo é lido a cada vez que um perfil é gerado. A maneira mais segura de garantir que tudo será gerado é apagar o seu perfil antes de iniciar o processo:

    rm -rf profile && make profile

    Então você pode usar o objetivo install-gaia.

    Perguntas frequentes

    O dispositivo permanece preto depois de um flash

    Isso pode acontecer se você fizer um flash no seu dispositivo enquanto ele estiver no modo "idle". Para consertar isso apenas reinice o B2G usando o seguinte comando a partir do terminal:

    adb shell stop b2g && adb shell start b2g

     

     

    Etiquetas do documento e colaboradores

    Contribuíram para esta página: rbrandao
    Última atualização por: rbrandao,
    Esconder painel