NativeScript / android-runtime

Build Status

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.

Android-Laufzeitdiagramm

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.