NativeScript / android-runtime

Stan kompilacji

zawiera kod źródłowy środowiska uruchomieniowego Android NativeScript. NativeScript to framework, który umożliwia programistom pisanie prawdziwie natywnych aplikacji mobilnych na Androida i iOS przy użyciu JavaScript i CSS. Każda platforma mobilna ma swój własny ekosystem i oferuje zupełnie inne narzędzia programistyczne i języki-Java dla Androida i Objective C (Swift) dla iOS. Aby przetłumaczyć kod JavaScript na odpowiednie natywne API potrzebny jest jakiś mechanizm proxy. Dokładnie za to odpowiadają części „Runtime” NativeScript. Środowisko uruchomieniowe Androida może być uważane za” most ” między światem JavaScript i Androida. Aplikacja NativeScript dla Androida to standardowy pakiet natywny (apk), który oprócz plików JavaScript osadza również środowisko wykonawcze.

  • główne projekty
  • projekty pomocnicze
  • schemat architektury
  • wymagania wstępne dotyczące budowania
  • jak zbudować
  • jak uruchomić testy
  • różne
  • Uzyskaj pomoc

dodatkowe dokumenty

kilka stron wiki opisuje niektóre wewnętrzne tematy dotyczące środowiska wykonawczego tutaj

główne projekty

repo jest zorganizowane w następujące projekty (uporządkowane według zależności):

  • android-metadata-generator-generuje metadane niezbędne dla środowiska uruchomieniowego systemu Android.
  • android-binding-generator – umożliwia dynamiczne tworzenie typów Java & w środowisku wykonawczym. Potrzebny przez extend.
  • android-runtime-zawiera podstawową logikę stojącą za uruchomieniem NativeScript dla Androida. Ten projekt zawiera natywny kod C++ i potrzebuje Androida NDK do poprawnego zbudowania.
  • android-runtime-testapp-jest to waniliowa aplikacja na Androida, która zawiera testy dla projektu runtime.

projekty pomocnicze

  • android-static-binding-generator – Narzędzie do tworzenia wiązań na podstawie kodu javascript użytkownika.
  • project-template – jest to pusty projekt aplikacji zastępczej na Androida, używany przez NativeScript Cli podczas budowania projektu na Androida.

schemat architektury

NativeScript Android Runtime architecture można podsumować na poniższym diagramie.

Android Runtime diagram

aby uzyskać więcej informacji na temat tego, jak to działa, przeczytaj dokumentację.

wymagania wstępne kompilacji

poniżej znajdują się minimalne wymagania wstępne do zbudowania pakietu wykonawczego.

  • zainstaluj najnowsze Android Studio.
  • z Menedżera SDK (Android Studio -> narzędzia -> Android -> menedżer SDK) zainstaluj następujące komponenty:
    • poziom API Androida 23, 24, 25, 26, 27
    • Android NDK
    • repozytorium wsparcia dla Androida
    • Pobierz narzędzia do budowania
    • CMake
    • LLDB
  • Sklonuj to repozytorium, jak również podmoduły: git clone --recurse-submodules [email protected]:NativeScript/android-runtime.git

praca z uruchomieniem w Android Studio

  • Otwórz folder test-app W Android Studio. Reprezentuje poprawny projekt Androida i jesteś w stanie zbudować i uruchomić aplikację testową pracującą z uruchomieniem ze źródła.

Uwaga: Może być konieczne uruchomienie Android Studio z wiersza poleceń w celu zachowania zmiennych środowiskowych. Dzieje się tak, jeśli pojawią się błędy, takie jak „brak npm”, jeśli uruchomisz studio w zwykły sposób.

jak budować

  • Uruchom polecenie

    Windows:

    gradlew

    Mac / Linux:

    ./gradlew
  • proces kompilacji obejmuje budowanie pakietu uruchomieniowego (zarówno zoptymalizowanego, jak i z niestandardową tabelą symboli v8), a także wszystkich dodatkowych narzędzi używanych do kompilacji Androida: metadata-generator, binding-generator, metadata-generator, static-binding-generator

  • Wynik kompilacji będzie w folderze dist.

    Note:aby skrócić czas kompilacji o połowę i spakować tylko zoptymalizowaną (pozbawioną) wersję pakietu uruchomieniowego skomentuj ” zadania.generateRuntimeAar.execute () ’ w kompilacji.gradle script.

jak uruchomić testy

  • przejdź do podfolderu test-app po zbudowaniu środowiska wykonawczego.

  • Uruchom emulator lub podłącz urządzenie.

    Note: Keep in mind the device or emulator needs to have an sdcard mounted.

  • polecenie Uruchom

gradlew runtest

kochamy PRs! Zapoznaj się z wytycznymi dotyczącymi wkładu. Jeśli chcesz wnieść swój wkład, ale nie wiesz, od czego zacząć-poszukaj spraw oznaczonych help wanted.

różne

  • Implementowanie dodatkowych domen protokołu Chrome DevTools

Uzyskaj pomoc

prosimy używać GitHub issues wyłącznie do zgłaszania błędów lub żądań funkcji. Aby uzyskać ogólne pytania i wsparcie, sprawdź Stack Overflow lub zapytaj naszych ekspertów w NativeScript community slack channel.