Il motore JavaScript di Facebook (Hermes) potenzia React Native su Android
Pubblicato: 2019-11-18L'introduzione del nuovo strumento JavaScript Facebook per dispositivi Android può migliorare i tempi di avvio, ridurre l'utilizzo della RAM e ridurre le dimensioni dell'applicazione. Al momento, lo strumento è una funzionalità attivabile in React Native. La maggior parte dei prodotti di ultima versione di Facebook React Native Android ha iniziato a utilizzare questo strumento JavaScript.
- Ulteriori informazioni su Facebook per dispositivi Android Motore JavaScript
- Funzionalità del nuovo motore JavaScript di Android
- Come ottenere Ermes
- Reagire
- La principale decisione architettonica del motore JavaScript di Facebook per dispositivi Android
- 1. Precompilazione del codice byte
- 2. Nessun JIT
- 3. Tecnica di raccolta dei rifiuti
- Conclusione
Ulteriori informazioni su Facebook per dispositivi Android Motore JavaScript
Lo strumento JavaScript di Facebook per dispositivi Android è stato creato per migliorare il funzionamento di grandi applicazioni Android. Le applicazioni del telefono continuano ad aumentare di dimensioni, il che è altamente in grado di portare problemi, come quando scarichi l'app di Facebook in gadget che non hanno abbastanza spazio o grandi capacità di elaborazione. Questo è anche il motivo principale per cui Facebook e altre società hanno sviluppato versioni "leggere" di Android per le loro applicazioni.
Ora è possibile per i creatori di applicazioni Android migliorare il funzionamento di qualsiasi applicazione attraverso l'aiuto dello strumento JavaScript. Questo strumento riduce le dimensioni di un download e migliora la funzione di avvio. Questo è ciò che l'aggiornamento di Facebook intende fare per le sue applicazioni utilizzando JavaScript Facebook per il motore dei dispositivi Android.
Il team di Facebook ha analizzato le informazioni sulle prestazioni e ha scoperto che lo strumento JavaScript di Facebook per dispositivi Android era cruciale per quanto riguarda le dimensioni dei download e il funzionamento generale dell'avvio. Sapendo questo, sentivano di dover ottimizzare le normali prestazioni di JavaScript negli ambienti dei dispositivi portatili altamente repressi. L'ambiente desktop, d'altra parte, va bene e la versione desktop di Facebook per Android funziona in modo eccellente.
JavaScript Facebook per lo strumento per dispositivi Android aiuta a migliorare 3 caratteristiche principali. Sono:
- TTI (time to interact): questo è il tempo impiegato per avviare le applicazioni fino al momento in cui si caricano completamente.
- La dimensione dei download.
- Utilizzo della memoria.
Consigliato per te: React Native vs Flutter vs PWA: Battle of Trending Mobile App Frameworks.
Funzionalità del nuovo motore JavaScript di Android
- Il lavoro verrà eseguito al momento della compilazione invece di analizzare e mettere insieme JavaScript sul gadget mentre una persona è in attesa.
- La compilazione in anticipo consente ottimizzazioni più avanzate. Attività simili possono essere visualizzate in un programma e deduplicate. Le stringhe di codice JavaScript verranno assemblate in un buon modo archiviato senza sovraccarico di runtime.
- Una dimensione minuscola dell'APK Android che consente di installare un'app di Facebook o qualsiasi altra app su dispositivi con meno memoria.
- Il bytecode può essere mappato dalla memoria e caricato dalla memoria flash sempre più spesso secondo necessità.
- L'area dell'indirizzo virtuale viene assegnata in blocchi ogni volta che è necessario. Ciò impedisce la necessità di determinare la dimensione dell'heap e riduce al minimo l'overhead.
- Implementazione degli standard di JavaScript utilizzando Hermes indirizzato a ECMAScript2015, noto anche come ES6. Le funzionalità di JavaScript che non vengono spesso applicate nelle applicazioni React Native sono state rimosse.
Come ottenere Ermes
Il motore JavaScript Facebook per dispositivi Android è disponibile per il download. Non puoi scaricarlo da Facebook, per ora è disponibile su GitHub. Le linee guida su come usarlo sono disponibili sul sito di React Native.
Reagire
Ma React Native ha alcuni inconvenienti, motivo per cui alla maggior parte delle persone non piace. Ad esempio: le app di gioco online e altre funzioni delle app Android necessitano di codice nativo come quando devono eseguire il backup dell'integrazione tra la fotocamera e il sensore. Inoltre, gli sviluppatori Android devono sempre progettare ponti per colmare gli spazi tra la struttura e il codice nativo. Questo è stato anche il motivo per cui Airbnb ha deciso di chiuderlo.
Ma JavaScript Facebook per il motore di dispositivi Android potrebbe essere un mezzo di Facebook per dare più vita a React Native e convincere più persone ad accettarlo.
Considerando che il motore JavaScript di Facebook per dispositivi Android si concentra solo sulle app, Facebook ha rivelato che non ha intenzione di integrarlo con server o motori di ricerca.

JavaScript Facebook per il motore di dispositivi Android è il nuovo progetto open source proveniente da Facebook. Altri progetti Android attuali includono:
- Pizia: un framework per il deep learning.
- DLRM: un modello per il deep learning.
- Spettro: un progetto pensato per rendere efficiente il processo di caricamento delle immagini.
Potrebbe piacerti: Introduzione alla programmazione: una breve descrizione di Node JS, Laravel, React, Ruby, Vue e Python.
La principale decisione architettonica del motore JavaScript di Facebook per dispositivi Android
I limiti dei gadget mobili, ad esempio il flash lento e la piccola quantità di RAM, hanno portato Facebook a prendere alcune decisioni architettoniche. Di seguito sono riportate le cose che hanno implementato:
1. Precompilazione del codice byte
Per evitare ciò, il motore JavaScript dei dispositivi Android dell'app di Facebook ha utilizzato il compilatore anticipato che viene eseguito durante il processo di creazione dell'app. Ciò si traduce in più tempo speso nell'ottimizzazione del bytecode. Ciò implica che il codice byte è piccolo e più utile.
È possibile ottimizzare l'intero programma. Ciò include la deduplicazione dell'operazione e l'impacchettamento della tabella delle stringhe.
Il codice byte è costruito in modo tale che durante il runtime venga mappato sulla memoria e interpretato senza richiedere di esaminare l'intero file. La memoria flash migliora la latenza sulla maggior parte dei gadget mobili di media e scarsa qualità. Quindi questo carica il codice byte dal flash quando necessario e l'ottimizzazione del codice byte per le dimensioni porta grandi miglioramenti TTI.
Inoltre, poiché la memoria è mappata solo in lettura e supportata da un file, il sistema operativo che non esegue lo scambio potrebbe comunque rimuovere quelle pagine sotto pressione della memoria. Ciò ridurrà al minimo le uccisioni del processo di memoria esaurita nei gadget che hanno meno memoria.
Un codice byte compresso è leggermente più grande di un codice JavaScript anch'esso compresso. Questo perché JavaScript Facebook per il codice del motore dei dispositivi Android è di piccole dimensioni. Il motore JavaScript di Facebook per dispositivi Android riduce le dimensioni delle app Android.
2. Nessun JIT
L'app di Facebook per dispositivi Android Il motore JavaScript non ha lo strumento JIT, il che implica che non funziona bene soprattutto nei benchmark che si basano sulla CPU. Quella decisione è stata globale. I benchmark nel complesso non rappresentano il carico di lavoro delle applicazioni.
Facebook ha anche fatto vari test con i JIT e sono convinti che non sarà mai facile raggiungere velocità elevate senza peggiorare le loro metriche principali. Le JTI devono prepararsi per prime ogni volta che viene avviata un'app, il che rende difficile migliorare il TTI, può persino danneggiare il TTI. Oltre a ciò, JIT contribuisce alla dimensione del codice nativo e al consumo di memoria. Questo rovina le metriche principali di Facebook. Questo è il motivo per cui Facebook Android ha deciso di ignorarlo e ha invece prestato attenzione alle prestazioni dell'interprete come miglior compromesso per JavaScript Facebook per il motore di dispositivi Android.
3. Tecnica di raccolta dei rifiuti
Durante i test iniziali di Facebook su Android, è stato scoperto che lo spazio degli indirizzi virtuali potrebbe essere limitato nelle grandi app sui gadget a 32 bit.
Per ridurre la memoria e lo spazio degli indirizzi virtuali utilizzati dal motore, Facebook ha progettato un raccoglitore di rifiuti con le seguenti caratteristiche.
- Allocazione su richiesta: lo spazio degli indirizzi virtuali viene assegnato in blocchi quando necessario.
- Non contiguo: lo spazio degli indirizzi virtuali deve trovarsi in un intervallo di memoria per eliminare i limiti delle risorse.
- Spostamento: lo spostamento di oggetti implica che la memoria potrebbe essere frammentata mentre i grumi non necessari vengono riportati a un sistema operativo.
Potrebbe piacerti anche: Angular vs React: quale framework scegliere nel 2019.
Conclusione
Il progetto JavaScript Facebook per dispositivi Android è tra i tanti progetti su cui sta lavorando il team di Facebook. Il team non vede l'ora di creare anche modalità di analisi della memoria e del tempo. In questo modo sarà facile per gli esperti di Android migliorare le proprie applicazioni. Prova JavaScript Facebook per i motori dei dispositivi Android e scopri le sue funzioni. Condividi le tue esperienze con noi e puoi anche farci domande se ne hai.
Questo articolo è stato scritto da Thomas Miller. È un esperto di tecnologia Android che ama informare le persone sulle ultime tecnologie. Thomas adora anche l'idea del motore JavaScript di Facebook per dispositivi Android, lo ha usato e gli è piaciuto il modo in cui funziona. Compila anche le migliori recensioni di esperti per il settore automobilistico su autoexpertguides.com.