Facebook JavaScript Engine (Hermes) steigert React Native auf Android

Veröffentlicht: 2019-11-18
Facebook hat eine erstaunliche JavaScript-Engine namens Hermes entwickelt, um den Betrieb von React Native-Anwendungen auf Android-Gadgets zu verbessern. Die Engine von Facebook für Android-Geräte eignet sich gut für einen schnellen Start, nutzt dicht gepackten Bytecode und optimiert vorzeitig.

Die Einführung des neuen JavaScript-Facebook-Tools für Android-Geräte kann die Startzeit verkürzen, die RAM-Nutzung verringern und zu einer geringeren Anwendungsgröße führen. Im Moment ist das Tool eine Opt-in-Funktion in React Native. Die Mehrheit der Facebook React Native Android-Produkte der neuesten Version haben begonnen, dieses JavaScript-Tool zu verwenden.

Inhaltsverzeichnis anzeigen
  • Weitere Informationen über Facebook für Android-Geräte JavaScript-Engine
  • Funktionen der neuen Android-JavaScript-Engine
  • So erhalten Sie Hermes
    • Reagieren
  • Die wichtigste architektonische Entscheidung der Facebook-JavaScript-Engine für Android-Geräte
    • 1. Bytecode-Vorkompilierung
    • 2. Kein JIT
    • 3. Abfallsammeltechnik
  • Fazit

Weitere Informationen über Facebook für Android-Geräte JavaScript-Engine

AI-Künstliche-Intelligenz-Code-Script-Design-Entwicklung

JavaScript Facebook für Android-Geräte wurde entwickelt, um die Funktionsweise großer Android-Anwendungen zu verbessern. Telefonanwendungen werden immer größer, was zu Problemen führen kann, z. B. wenn Sie die Facebook-App in Gadgets herunterladen, denen genügend Speicherplatz oder hervorragende Verarbeitungskapazitäten fehlen. Dies ist auch der Hauptgrund, warum Facebook und andere Unternehmen „Lite“-Android-Versionen für ihre Anwendungen entwickelt haben.

Jetzt ist es Entwicklern von Android-Anwendungen möglich, die Funktionsweise beliebiger Anwendungen mithilfe des JavaScript-Tools zu verbessern. Dieses Tool verringert die Größe eines Downloads und verbessert die Startfunktion. Das ist, was Facebook Update beabsichtigt, für seine Anwendungen mit JavaScript Facebook für Android-Geräte-Engine zu tun.

Das Facebook-Team analysierte Leistungsinformationen und fand heraus, dass das JavaScript-Facebook-Tool für Android-Geräte entscheidend für die Größe der Downloads und die allgemeine Startfunktion war. Nachdem sie dies erkannt hatten, hielten sie es für notwendig, die normale Leistung von JavaScript in Umgebungen mit stark unterdrückten tragbaren Geräten zu optimieren. Die Desktop-Umgebung hingegen ist in Ordnung und die Facebook-Desktop-Version für Android funktioniert hervorragend.

JavaScript Facebook für Android-Geräte hilft bei der Verbesserung von 3 Hauptfunktionen. Sie sind:

  1. TTI (Interaktionszeit): Dies ist die Zeit, die zum Starten von Anwendungen bis zum vollständigen Laden benötigt wird.
  2. Die Größe der Downloads.
  3. Nutzung des Gedächtnisses.
 Für Sie empfohlen: React Native vs. Flutter vs. PWA: Battle of Trending Mobile App Frameworks.

Funktionen der neuen Android-JavaScript-Engine

Mobile-App-Anwendungsmarketing-Entwicklung

  • Die Arbeit wird zur Build-Zeit ausgeführt, anstatt JavaScript auf dem Gadget zu analysieren und zusammenzustellen, während eine Person wartet.
  • Das rechtzeitige Kompilieren im Voraus ermöglicht erweiterte Optimierungen. Ähnliche Aktivitäten können in einem Programm gesehen und dedupliziert werden. JavaScript-Code-Strings werden in einer gut gespeicherten Weise ohne Laufzeit-Overhead zusammengesetzt.
  • Eine kleine Android-APK, die es ermöglicht, eine Facebook-App oder andere Apps auf Geräten mit weniger Speicher zu installieren.
  • Bytecode kann vom Speicher abgebildet und je nach Bedarf zunehmend aus dem Flash-Speicher geladen werden.
  • Der virtuelle Adressbereich wird bei Bedarf in Blöcken zugewiesen. Dies vermeidet die Notwendigkeit, die Größe des Heaps zu bestimmen, und minimiert außerdem den Overhead.
  • Implementieren der JavaScript-Standards mit Hermes für ECMAScript2015, das auch als ES6 bezeichnet wird. Die Funktionen von JavaScript, die in React Native-Anwendungen nicht oft angewendet werden, wurden entfernt.
Außerdem öffnet die Facebook-App für Samsung-Geräte zusätzlich Quellen für die Integration von Hermes mit React Native. Das bedeutet, dass Android-Entwickler Hermes sofort nutzen können.

So erhalten Sie Hermes

Stellen Sie sich drei Fragen, um die Ergebnisse zu beurteilen

Die Engine für JavaScript-Facebook für Android-Geräte steht zum Download bereit. Sie können es derzeit nicht von Facebook herunterladen, es ist auf GitHub verfügbar. Richtlinien zur Verwendung sind auf der React Native-Website verfügbar.

Reagieren

React-JavaScript-Bibliothek Es ist wichtig zu beachten, dass JavaScript-Engines von Facebook für Android-Geräte nur mit Android-Anwendungen funktionieren, die mit React Native (einer von Facebook erstellten App-Struktur) entwickelt wurden. Das Hauptverkaufsargument dieser Struktur ist, dass Codes auf den meisten Plattformen nativ ausgeführt werden.

Aber React Native hat ein paar Nachteile, weshalb es die meisten Leute nicht mögen. Zum Beispiel: Online-Gaming-Apps und andere Android-App-Funktionen benötigen nativen Code, wenn sie die Integration zwischen Kamera und Sensor sichern müssen. Außerdem müssen Android-Entwickler immer Brücken entwerfen, um die Lücken zwischen der Struktur und dem nativen Code zu schließen. Das war auch der Grund, warum sich Airbnb entschieden hat, aufzuhören.

Aber die JavaScript-Engine von Facebook für Android-Geräte könnte ein Mittel von Facebook sein, um React Native mehr Leben einzuhauchen und mehr Menschen davon zu überzeugen, es zu akzeptieren.

In Anbetracht dessen, dass sich die JavaScript-Engine von Facebook für Android-Geräte nur auf Apps konzentriert, gab Facebook bekannt, dass sie nicht planen, sie mit Servern oder Suchmaschinen zu integrieren.

JavaScript Facebook für Android-Geräte ist das neueste Open-Source-Projekt von Facebook. Weitere aktuelle Android-Projekte sind:

  • Pythia: Ein Framework für Deep Learning.
  • DLRM: Ein Modell für Deep Learning.
  • Spectrum: Ein Projekt, das das Hochladen von Bildern effizient gestalten soll.
 Das könnte Ihnen gefallen: Einführung in die Programmierung: Ein Überblick über Node JS, Laravel, React, Ruby, Vue & Python.

Die wichtigste architektonische Entscheidung der Facebook-JavaScript-Engine für Android-Geräte

Android

Die Einschränkungen mobiler Gadgets, zum Beispiel langsamer Flash und geringe RAM-Menge, veranlassten Facebook, einige architektonische Entscheidungen zu treffen. Unten sind die Dinge, die sie implementiert haben:

1. Bytecode-Vorkompilierung

Facebook JavaScript Engine steigert React Native auf Android - Punkt 1 JavaScript Die Engine von Facebook für Android-Geräte parst automatisch die JavaScript-Quelle beim Laden. Dadurch wird ein Bytecode erstellt. Diese Aktivität verzögert den Beginn der JavaScript-Ausführung

Um dies zu vermeiden, nutzte die JavaScript-Engine der Facebook-App für Android-Geräte den Ahead-of-Time-Compiler, der im Rahmen des App-Erstellungsprozesses ausgeführt wird. Dies führt dazu, dass mehr Zeit für die Bytecode-Optimierung aufgewendet wird. Dies impliziert, dass der Bytecode kleiner und nützlicher ist.

Eine Optimierung des gesamten Programms kann stattfinden. Dies umfasst die Deduplizierung des Vorgangs und das Packen der Zeichenfolgentabelle.

Der Bytecode ist so aufgebaut, dass er während der Laufzeit im Speicher abgebildet und interpretiert wird, ohne dass die gesamte Datei durchlaufen werden muss. Der Flash-Speicher verbessert die Latenz bei den meisten mobilen Geräten mittlerer und schlechter Qualität. Dies lädt bei Bedarf Bytecode aus dem Flash, und die Optimierung des Bytecodes für die Größe bringt großartige TTI-Verbesserungen.

Da der Speicher außerdem nur zum Lesen abgebildet und von einer Datei unterstützt wird, kann das Betriebssystem, das nicht auslagert, diese Seiten unter Speicherdruck immer noch entfernen. Dadurch werden Prozessabbrüche aufgrund von Speichermangel in Gadgets mit weniger Speicher minimiert.

Ein komprimierter Bytecode ist etwas größer als ein ebenfalls komprimierter JavaScript-Code. Dies liegt daran, dass der Engine-Code von JavaScript Facebook für Android-Geräte klein ist. JavaScript Facebook für Android-Geräte verringert die Größe von Android-Apps.

2. Kein JIT

Facebook JavaScript Engine steigert React Native auf Android - Punkt 2 Um die Ausführung zu beschleunigen, könnten viele häufig verwendete JavaScript-Engines mit dem JIT-Tool (Just-in-Time) schlecht interpretierte Codes in Maschinencodes kompilieren.

Die JavaScript-Engine der Facebook-App für Android-Geräte verfügt nicht über das JIT-Tool, was bedeutet, dass sie hauptsächlich in Benchmarks, die auf der CPU basieren, nicht gut abschneidet. Diese Entscheidung war global. Die Benchmarks bilden insgesamt nicht die Auslastung von Anwendungen ab.

Facebook hat sogar verschiedene Tests mit JITs durchgeführt und sie sind überzeugt, dass es nie einfach sein wird, hohe Geschwindigkeiten zu erreichen, ohne ihre Hauptmetriken zu verschlechtern. JTIs müssen sich zuerst vorbereiten, wenn eine App gestartet wird, was es schwierig macht, TTI zu verbessern, es kann sogar dem TTI schaden. Außerdem trägt JIT zur Größe des nativen Codes und zum Speicherverbrauch bei. Dies ruiniert die wichtigsten Metriken von Facebook. Aus diesem Grund entschied sich Facebook Android, es zu ignorieren und achtete stattdessen auf die Leistung des Interpreters als den besten Kompromiss für die Engine von JavaScript Facebook für Android-Geräte.

3. Abfallsammeltechnik

Facebook JavaScript Engine steigert React Native auf Android - Punkt 3 Eine gute Speichernutzung ist bei mobilen Android-Gadgets von entscheidender Bedeutung. Minderwertige Gadgets haben weniger Speicher, das Wechseln von Betriebssystemen ist nicht möglich und das OS killt Apps, die viel Speicherplatz verbrauchen. Beim Beenden von Anwendungen ist ein langsamer Neustart erforderlich und die Funktion des Hintergrunds wird beeinträchtigt.

Bei den ersten Facebook-Android-Tests wurde festgestellt, dass der virtuelle Adressraum in großen Apps auf den 32-Bit-Gadgets begrenzt sein kann.

Um den von der Engine genutzten Speicher und virtuellen Adressraum zu reduzieren, hat Facebook einen Abfallsammler mit den folgenden Funktionen entwickelt.

  • Zuweisung nach Bedarf: Virtueller Adressraum wird bei Bedarf in Blöcken zugewiesen.
  • Nicht zusammenhängend: Der virtuelle Adressraum sollte sich in einem Speicherbereich befinden, um Ressourcenbeschränkungen zu beseitigen.
  • Verschieben: Das Verschieben von Objekten impliziert, dass der Speicher fragmentiert werden kann, während unnötige Klumpen in ein Betriebssystem zurückgebracht werden.
 Das könnte Ihnen auch gefallen: Angular vs. React: Welches Framework Sie 2019 wählen sollten.

Fazit

Facebook JavaScript Engine steigert React Native auf Android – Fazit

Das JavaScript-Facebook-Projekt für Android-Geräte gehört zu den vielen Projekten, an denen das Facebook-Team arbeitet. Das Team freut sich darauf, auch Möglichkeiten zur Gedächtnis- und Zeitanalyse zu schaffen. Dies wird es Android-Experten leicht machen, ihre Anwendungen zu verbessern. Testen Sie die JavaScript-Engines von Facebook für Android-Geräte und sehen Sie sich ihre Funktionen an. Teilen Sie Ihre Erfahrungen mit uns und Sie können uns auch Fragen stellen, wenn Sie welche haben.

 Dieser Artikel wurde von Thomas Miller geschrieben. Er ist ein Experte für Android-Technologie, der es liebt, Menschen über die neuesten Technologien zu informieren. Thomas liebt auch die Idee der JavaScript-Facebook-Engine für Android-Geräte und hat sie verwendet und mochte, wie sie funktioniert. Außerdem stellt er auf autoexpertguides.com die besten Expertenbewertungen für die Automobilbranche zusammen.