Facebook JavaScript Engine (Hermes) impulsiona o React Native no Android
Publicados: 2019-11-18A introdução da nova ferramenta JavaScript 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 react 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 do 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 melhorar 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 possuem 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 que os criadores de aplicativos Android melhorem 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 mecanismo JavaScript do Facebook para dispositivos Android.
A equipe do Facebook analisou as informações de desempenho e descobriu que a ferramenta JavaScript 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 desktop, por outro lado, é bom e a versão desktop do Facebook para Android funciona de forma excelente.
A ferramenta JavaScript Facebook para dispositivos Android auxilia na melhoria de 3 recursos principais. Eles estão:
- TTI (tempo para interagir): Este é o tempo necessário para iniciar os aplicativos até o momento em que eles carregam completamente.
- O tamanho dos downloads.
- Utilização da 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 em 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 Android APK 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 cada vez mais 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, que 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 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 desistir.
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 vindo 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 imagens eficiente.
Você pode gostar: 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 o Facebook tomar algumas decisões de arquitetura. Abaixo estão as coisas que eles implementaram:
1. Pré-compilação do código de byte

Para evitar isso, o mecanismo JavaScript dos dispositivos Android do aplicativo do Facebook utilizou o compilador antecipado que é executado no processo de criação do aplicativo. Isso resulta em mais tempo 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 a desduplicação da operação e o empacotamento da tabela de strings.
O código de byte é construído de uma maneira que, durante o tempo de execução, será mapeado na memória e interpretado sem a necessidade de percorrer 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 o tamanho traz grandes aprimoramentos de TTI.
Além disso, como a memória é mapeada apenas lida 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á o processo de falta de memória em dispositivos 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 em tamanho. 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 chegou a fazer 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 é iniciado, o que dificulta o aprimoramento do TTI, podendo até prejudicar o TTI. Além disso, o JIT contribui para o tamanho do código nativo e 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 troca para o mecanismo de dispositivos JavaScript do Facebook para Android.
3. Técnica de coleta de resíduos

Durante os testes iniciais do Facebook Android, 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 resíduos com os recursos abaixo.
- Alocação sob demanda: o espaço de endereço virtual é atribuído em partes 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.
- Movendo: 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 Facebook para dispositivos Android está entre os muitos projetos em que a equipe do Facebook está trabalhando. A equipe está ansiosa para criar maneiras de análise de memória e tempo também. Isso tornará mais fácil para os especialistas em Android aprimorarem seus aplicativos. Teste os mecanismos JavaScript do Facebook para 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 é escrito por Thomas Miller. Ele é um especialista em tecnologia Android que adora informar as pessoas sobre as tecnologias mais recentes. Thomas também adora a ideia do mecanismo JavaScript do Facebook para dispositivos Android e o usou e gostou de como ele funciona. Ele também compila as melhores análises de especialistas para o setor automotivo em autoexpertguides.com.
