Facebook JavaScript Engine (Hermes) impulsiona React Native no Android
Publicados: 2019-11-18A introdução da nova ferramenta JavaScript do Facebook para dispositivos Android pode melhorar o tempo de inicialização, diminuir o uso de RAM e reduzir o tamanho do aplicativo. No momento, a ferramenta é um recurso opcional no React Native. A maioria dos produtos da versão mais recente do Facebook Native Android começaram a usar esta ferramenta JavaScript.
- Mais informações sobre o mecanismo JavaScript do Facebook para dispositivos Android
- Recursos do novo mecanismo JavaScript do Android
- Como obter Hermes
- Reagir
- A principal decisão arquitetônica do mecanismo JavaScript do Facebook para dispositivos Android
- 1. Pré-compilação de código de byte
- 2. Sem JIT
- 3. Técnica de coleta de resíduos
- Conclusão
Mais informações sobre o mecanismo JavaScript do Facebook para dispositivos Android
A ferramenta JavaScript Facebook para dispositivos Android foi criada para aprimorar o funcionamento de grandes aplicativos Android. Os aplicativos de telefone continuam aumentando de tamanho, o que é altamente capaz de trazer problemas, como quando você baixa o aplicativo do Facebook em gadgets que não têm espaço suficiente ou grande capacidade de processamento. Essa também é a principal razão pela qual o Facebook e outras empresas desenvolveram versões “lite” do Android para seus aplicativos.
Agora é possível para os criadores de aplicativos Android aprimorar o funcionamento de qualquer aplicativo com a ajuda da ferramenta JavaScript. Esta ferramenta reduz o tamanho de um download e melhora a função de inicialização. É isso que a atualização do Facebook pretende fazer para seus aplicativos usando o motor JavaScript do Facebook para dispositivos Android.
A equipe do Facebook analisou as informações de desempenho e descobriu que a ferramenta JavaScript do Facebook para dispositivos Android era crucial no tamanho dos downloads e no funcionamento geral da inicialização. Sabendo disso, eles sentiram que precisavam otimizar o desempenho normal do JavaScript nos ambientes de dispositivos portáteis altamente reprimidos. O ambiente de área de trabalho, por outro lado, é bom e a versão de área de trabalho do Facebook para Android funciona de maneira excelente.
A ferramenta JavaScript do Facebook para dispositivos Android auxilia na melhoria de 3 recursos principais. Eles são:
- TTI (tempo para interagir): É o tempo que leva para iniciar os aplicativos até o momento em que eles carregam completamente.
- O tamanho dos downloads.
- Utilização de memória.
Recomendado para você: React Native vs Flutter vs PWA: Battle of Trending Mobile App Frameworks.
Recursos do novo mecanismo JavaScript do Android
- O trabalho será executado no tempo de compilação, em vez de analisar e reunir JavaScript no gadget enquanto uma pessoa está esperando.
- A compilação antecipada permite otimizações mais aprimoradas. Atividades semelhantes podem ser vistas em um programa e desduplicadas. As strings de código JavaScript serão reunidas de maneira bem armazenada, sem sobrecarga de tempo de execução.
- Um tamanho minúsculo de APK Android que permite instalar um aplicativo do Facebook ou qualquer outro aplicativo em dispositivos com menos memória.
- O bytecode pode ser mapeado pela memória e carregado da memória flash conforme necessário.
- A área de endereço virtual é atribuída em blocos sempre que necessário. Isso evita a necessidade de determinar o tamanho do heap e também minimiza a sobrecarga.
- Implementando os padrões de JavaScript usando Hermes visando ECMAScript2015, também conhecido como ES6. Os recursos do JavaScript que não são frequentemente aplicados em aplicativos React Native foram removidos.
Como obter Hermes
O mecanismo JavaScript do Facebook para dispositivos Android está disponível para download. Você não pode baixar do Facebook, por enquanto, está disponível no GitHub. As orientações sobre como usá-lo estão disponíveis no site do React Native.
Reagir
Mas o React Native tem algumas desvantagens, e é por isso que a maioria das pessoas não gosta dele. Por exemplo: aplicativos de jogos online e outras funções de aplicativos Android precisam de código nativo, como quando precisam fazer backup da integração entre a câmera e o sensor. Além disso, os desenvolvedores Android sempre precisam projetar pontes para preencher os espaços entre a estrutura e o código nativo. Essa também foi a razão pela qual o Airbnb decidiu sair.
Mas o mecanismo JavaScript do Facebook para dispositivos Android pode ser um meio do Facebook para dar mais vida ao React Native e convencer mais pessoas a aceitá-lo.
Considerando que o mecanismo JavaScript do Facebook para dispositivos Android se concentra apenas em aplicativos, o Facebook revelou que não planeja integrá-lo a servidores ou mecanismos de pesquisa.

O mecanismo JavaScript do Facebook para dispositivos Android é o mais novo projeto de código aberto do Facebook. Projetos Android mais atuais incluem:
- Pythia: Uma estrutura para aprendizado profundo.
- DLRM: Um modelo para aprendizado profundo.
- Spectrum: Um projeto destinado a tornar o processo de upload de fotos eficiente.
Você pode gostar de: Introdução à programação: um resumo do Node JS, Laravel, React, Ruby, Vue e Python.
A principal decisão arquitetônica do mecanismo JavaScript do Facebook para dispositivos Android
As limitações dos dispositivos móveis, por exemplo, flash lento e pequena quantidade de RAM, fizeram com que o Facebook tomasse algumas decisões arquitetônicas. Abaixo estão as coisas que eles implementaram:
1. Pré-compilação de código de byte
Para evitar isso, o mecanismo JavaScript para dispositivos Android do aplicativo do Facebook utilizou o compilador avançado que é executado no processo de criação do aplicativo. Isso resulta em mais tempo sendo gasto na otimização de bytecode. Isso implica que o código de byte é pequeno e mais útil.
A otimização de todo o programa pode ocorrer. Isso inclui desduplicação da operação e compactação da tabela de strings.
O código de byte é construído de forma que, durante o tempo de execução, seja mapeado na memória e seja interpretado sem a necessidade de passar por todo o arquivo. A memória flash melhora a latência na maioria dos dispositivos móveis de média e baixa qualidade. Portanto, isso carrega o código de byte do flash quando necessário e a otimização do código de byte para tamanho traz grandes aprimoramentos de TTI.
Além disso, como a memória é mapeada apenas para leitura e suportada por um arquivo, o sistema operacional que não troca ainda pode remover essas páginas sob pressão de memória. Isso minimizará as interrupções do processo de falta de memória em gadgets com menos memória.
Um código de byte compactado é um pouco maior que um código JavaScript que também é compactado. Isso ocorre porque o código do mecanismo JavaScript do Facebook para dispositivos Android é pequeno. O mecanismo JavaScript do Facebook para dispositivos Android reduz o tamanho dos aplicativos Android.
2. Sem JIT
Aplicativo do Facebook para dispositivos Android O mecanismo JavaScript não possui a ferramenta JIT, o que implica que ele não funciona bem principalmente em benchmarks que dependem da CPU. Essa decisão foi global. Os benchmarks em geral não representam a carga de trabalho dos aplicativos.
O Facebook até fez vários testes com JITs e está convencido de que nunca será fácil atingir alta velocidade sem piorar suas principais métricas. Os JTIs precisam se preparar primeiro sempre que um aplicativo for iniciado, o que dificulta o aprimoramento do TTI, podendo até prejudicar o TTI. Além disso, o JIT contribui com o tamanho do código nativo e com o consumo de memória. Isso arruína as principais métricas do Facebook. É por isso que o Facebook Android decidiu ignorá-lo e, em vez disso, prestou atenção ao desempenho do interpretador como a melhor compensação para o mecanismo JavaScript do Facebook para dispositivos Android.
3. Técnica de coleta de resíduos
Durante os testes iniciais do Android do Facebook, descobriu-se que o espaço de endereço virtual pode ser limitado em grandes aplicativos nos gadgets de 32 bits.
Para reduzir a memória e o espaço de endereço virtual utilizado pelo mecanismo, o Facebook projetou um coletor de lixo com os recursos abaixo.
- Alocação sob demanda: o espaço de endereço virtual é atribuído em blocos quando necessário.
- Não contíguo: o espaço de endereço virtual deve estar em um intervalo de memória para eliminar os limites de recursos.
- Mover: Mover objetos implica que a memória pode ficar fragmentada enquanto pedaços desnecessários são levados de volta para um sistema operacional.
Você também pode gostar: Angular vs React: qual framework escolher em 2019.
Conclusão
O projeto JavaScript do Facebook para dispositivos Android está entre os muitos projetos nos quais a equipe do Facebook está trabalhando. A equipe está ansiosa para criar formas de análise de memória e tempo também. Isso tornará mais fácil para os especialistas em Android aprimorar seus aplicativos. Teste o JavaScript do Facebook para mecanismos de dispositivos Android e veja suas funções. Compartilhe suas experiências conosco e você também pode nos fazer perguntas, se tiver alguma.
Este artigo foi escrito por Thomas Miller. Ele é um especialista em tecnologia Android que adora informar as pessoas sobre as tecnologias mais recentes. Thomas também adorou a ideia do mecanismo JavaScript do Facebook para dispositivos Android e o usou e gostou de como funciona. Ele também compila as melhores análises de especialistas do setor automotivo em autoexpertguides.com.