NativeScript / android-runtime
Enthält den Quellcode für die Android-Laufzeit von NativeScript. NativeScript ist ein Framework, mit dem Entwickler mithilfe von JavaScript und CSS wirklich native mobile Anwendungen für Android und iOS schreiben können. Jede mobile Plattform verfügt über ein eigenes Ökosystem und bietet völlig unterschiedliche Entwicklungstools und Sprachen – Java für Android und Objective C (Swift) für iOS. Um JavaScript-Code in die entsprechenden nativen APIs zu übersetzen, ist eine Art Proxy-Mechanismus erforderlich. Genau dafür sind die „Laufzeit“ -Teile von NativeScript verantwortlich. Die Android-Laufzeit kann als „Brücke“ zwischen der JavaScript- und der Android-Welt betrachtet werden. Eine NativeScript-Anwendung für Android ist ein standardmäßiges natives Paket (apk), in das neben den JavaScript-Dateien auch die Laufzeit eingebettet ist.
- Hauptprojekte
- Hilfsprojekte
- Architekturdiagramm
- Build-Voraussetzungen
- Erstellen
- Ausführen von Tests
- Verschiedenes
- Hilfe erhalten
Zusätzliche Dokumente
Mehrere Wiki-Seiten beschreiben hier einige interne Themen zur Laufzeit
Hauptprojekte
Das Repo ist in folgende Projekte unterteilt (sortiert nach Abhängigkeiten):
- android-metadata-generator – generiert Metadaten, die für die Android-Laufzeit erforderlich sind.
- android-binding-generator – ermöglicht die dynamische Erstellung von Java & Android-Typen zur Laufzeit. Benötigt von der
extend
Routine. - android-runtime – enthält die Kernlogik hinter der Android-Runtime von NativeScript. Dieses Projekt enthält nativen C ++ – Code und benötigt das Android NDK, um ordnungsgemäß zu erstellen.
- android-runtime-testapp – Dies ist eine Vanille-Android-Anwendung, die die Tests für das Laufzeitprojekt enthält.
Hilfsprojekte
- android-static-binding-generator – Build-Tool, das Bindungen basierend auf dem Javascript-Code des Benutzers generiert.
- project-template – Dies ist ein leeres Platzhalter-Android-Anwendungsprojekt, das von der NativeScript-CLI beim Erstellen eines Android-Projekts verwendet wird.
Architekturdiagramm
Die NativeScript Android Runtime-Architektur kann im folgenden Diagramm zusammengefasst werden.
Weitere Informationen zur Funktionsweise finden Sie in der Dokumentation.
Build-Voraussetzungen
Im Folgenden finden Sie die Mindestvoraussetzungen zum Erstellen des Laufzeitpakets.
- Installieren Sie das neueste Android Studio.
- Installieren Sie im SDK-Manager (Android Studio -> Tools -> Android -> SDK-Manager) die folgenden Komponenten:
- Android API-Ebene 23, 24, 25, 26, 27
- Android NDK
- Android-Unterstützungs-Repository
- Build-Tools herunterladen
- CMake
- LLDB
- Klonen Sie dieses Repository sowie die Submodule:
git clone --recurse-submodules [email protected]:NativeScript/android-runtime.git
Arbeiten mit der Laufzeit in Android Studio
- Öffnen Sie den Ordner test-app in Android Studio. Es stellt ein gültiges Android-Projekt dar und Sie können eine Testanwendung erstellen und ausführen, die mit der Laufzeit aus der Quelle arbeitet.
Hinweis: Möglicherweise müssen Sie Android Studio über die Befehlszeile ausführen, um die Umgebungsvariablen beizubehalten. Dies ist der Fall, wenn Sie Fehler wie „fehlendes npm“ erhalten, wenn Sie das Studio wie gewohnt starten.
Wie man baut
-
Befehl ausführen
Windows:
gradlew
Mac / Linux:
./gradlew
-
Der Build-Prozess umfasst die Erstellung des Runtime-Pakets (sowohl optimiert als auch mit ungestreifter v8-Symboltabelle) sowie aller zusätzlichen Tools, die für die Android-Builds verwendet werden: Metadata-Generator, Binding-Generator, metadata-Generator, static-Binding-Generator
-
Das Ergebnis des Builds befindet sich im Ordner dist.
Note:
Um die Erstellungszeit zu halbieren und nur die optimierte (entfernte) Version des Laufzeitpakets zu verpacken, kommentieren Sie die Aufgaben aus.In: generateRuntimeAar.execute()‘ im Build.gradle-Skript.
Wie man Tests durchführt
-
Wechseln Sie nach dem Erstellen der Laufzeit in den Unterordner test-app.
-
Starten Sie einen Emulator oder schließen Sie ein Gerät an.
Note: Keep in mind the device or emulator needs to have an sdcard mounted.
-
Befehl ausführen
gradlew runtest
Beitragen
Wir lieben PRs! Schauen Sie sich die Beitragsrichtlinien an. Wenn Sie einen Beitrag leisten möchten, aber nicht sicher sind, wo Sie anfangen sollen, suchen Sie nach Problemen mit der Bezeichnung help wanted
.
Verschiedenes
- Implementieren zusätzlicher Chrome DevTools-Protokolldomänen
Hilfe erhalten
Bitte verwenden Sie github issues ausschließlich, um Fehler zu melden oder Funktionen anzufordern. Für allgemeine Fragen und Unterstützung, schauen Sie sich Stack Overflow an oder fragen Sie unsere Experten im NativeScript Community Slack Channel.