wake-up-neo.com

Kompiliert React Native JavaScript für Android in Java?

Wenn ich Hybrid-Apps mit React Native entwickle. Wandelt sich der von mir geschriebene JavaScript-Code in Java-Code oder Java-Bytecode für die Dalvik/ART-Laufzeitumgebung um, wenn ich eine Android-App aus meinem React Native-Code erstelle? Oder werden nur die UI-Komponenten in native UI-Komponenten kompiliert? Oder kompiliert eine Bibliothek wie die Fetch-API den JavaScript-Code in Java-Code oder Java-Bytecode?

33
unlimited101

Grundsätzlich schreiben Sie Javascript. Das Javascript kommuniziert mit nativen Komponenten (Java unter Android, Objective C unter iOS, C # unter Windows).

Die Kommunikation erfolgt über die sogenannte "Brücke". Wenn Sie zu irgendeinem Zeitpunkt der Meinung sind, dass diese Kommunikation die Dinge zu sehr verlangsamt, können Sie die Javascript-Funktionalität in Java, Objective C oder C # implementieren, um eine native Ausführung zu ermöglichen. In diesem Fall schreiben Sie direkt in nativem Code, sodass für die native Übersetzung kein Javascript erforderlich ist.

Dies wird die Kompatibilität für die Leistung beeinträchtigen. Normalerweise ist dies nicht notwendig.

47
Marc

Der Code bleibt der native JavaScript-Code und wird nicht in ein anderes Format konvertiert. Die Hybrid-Apps werden in der nativen Container-App ausgeführt, die die JavaScript-Laufzeit-Engine aufruft, die die Ausführung des JavaScript-Codes übernimmt. Ich hoffe, das klärt die Frage.

17
Gurdev Singh

reat native funktioniert als Wrapper. Wenn Sie beispielsweise einen Button in Ihr Layout einfügen möchten, setzen Sie einfach Button-Tag in das Layout. Dieser Button stammt jedoch von einem Android-Button und Sie verwenden nur eine spezifische API des UI-Moduls namens Reactative. Sie können Ihr benutzerdefiniertes natives Modul erstellen und problemlos in Ihrem reaktiven nativen Projekt verwenden.

0
N.SH

Basierend auf "React Made Native Easy" Buch:

React Native kann im Wesentlichen als ein Satz von React .__ betrachtet werden. Komponenten, wobei jede Komponente das entsprechende native .__ darstellt. Ansichten und Komponenten.

In React Native gibt es auch zwei Teile:

  1. Native Code/Modules: Der meiste native Code für iOS ist in Objective C oder Swift geschrieben, im Fall von Android jedoch in Java geschrieben. Aber für das Schreiben unserer React Native-App würden wir kaum Müssen Sie nativen Code für iOS oder Android schreiben.

  2. Javascript VM: Die JS Virtual Machine, auf der der gesamte JavaScript-Code ausgeführt wird. Auf iOS/Android-Simulatoren und -Geräten React Native verwendet JavaScriptCore, die JavaScript-Engine, die .__ unterstützt. Safari. JavaScriptCore ist eine Open-Source-JavaScript-Engine gebaut für WebKit. Im Falle von iOS verwendet React Native den JavaScriptCore bereitgestellt von der iOS-Plattform. Es wurde erstmals in iOS 7 zusammen mit .__ eingeführt. mit OS X Mavericks.

Und für die Kommunikation zwischen diesen Teilen:

React Native Bridge: React Native Bridge ist eine C++/Java-Bridge mit der Bezeichnung verantwortlich für die Kommunikation zwischen Native und Javascript Faden. Ein benutzerdefiniertes Protokoll wird für die Nachrichtenübergabe verwendet.

0