NativeScript / android-runtime

Byggstatus

innehåller källkoden för Nativescript Android Runtime. NativeScript är ett ramverk som gör det möjligt för utvecklare att skriva riktigt inbyggda mobila applikationer för Android och iOS med JavaScript och CSS. Varje mobilplattform har sitt eget ekosystem och erbjuder helt olika utvecklingsverktyg och språk – Java för Android och Objective C(Swift) för iOS. För att översätta JavaScript-kod till motsvarande inbyggda API: er behövs någon form av proxy-mekanism. Det är precis vad” Runtime ” – delarna av NativeScript är ansvariga för. Android Runtime kan betraktas som” Bron ” mellan JavaScript-och Android-världarna. En NativeScript-applikation för Android är ett standard native package (apk) som förutom JavaScript-filerna också bäddar in körtiden.

  • huvudprojekt
  • hjälpprojekt
  • Arkitekturdiagram
  • Bygg förutsättningar
  • hur man bygger
  • hur man kör tester
  • Misc
  • få hjälp

ytterligare dokument

flera Wiki-sidor beskriver några interna ämnen om körtiden här

huvudprojekt

reporäntan är strukturerad i följande projekt (ordnade efter beroenden):

  • android-metadata-generator-genererar metadata som behövs för Android Runtime.
  • android-bindande-generator – gör Java & Android typer som ska skapas dynamiskt vid körning. Behövs av extend rutinen.
  • android-runtime – innehåller kärnlogiken bakom Nativescripts Android Runtime. Detta projekt innehåller inbyggd C++ – kod och behöver Android NDK för att bygga ordentligt.
  • android-runtime-testapp – detta är en vanilj Android-applikation, som innehåller tester för runtime-projektet.

hjälpprojekt

  • android-statisk-bindande-generator – byggverktyg som genererar bindningar baserat på användarens javascript-kod.
  • project-template – detta är en tom platshållare Android Application project, som används av NativeScript CLI när man bygger en Android-projekt.

Arkitekturdiagram

Nativescript Android Runtime architecture kan sammanfattas i följande diagram.

Android Runtime diagram

för mer information om hur det fungerar, läs dokumentationen.

Byggförutsättningar

Följande är de minimala förutsättningarna för att bygga runtime-paketet.

  • installera den senaste Android Studio.
  • från SDK Manager (Android Studio – > verktyg – > Android – > SDK Manager) installera följande komponenter:
    • Android API-nivå 23, 24, 25, 26, 27
    • Android NDK
    • Android Support Repository
    • ladda ner byggverktyg
    • CMake
    • LLDB
  • klona detta arkiv såväl som undermodulerna: git clone --recurse-submodules [email protected]:NativeScript/android-runtime.git

arbeta med Runtime i Android Studio

  • öppna test-app-mappen i Android Studio. Det representerar ett giltigt Android-projekt och du kan bygga och köra ett testapplikation som arbetar med körtiden från källan.

Obs: Du kan behöva köra Android Studio från kommandoraden för att bevara miljövariablerna. Detta är om du får fel som” missing npm ” om du startar studion på vanligt sätt.

hur man bygger

  • Kör kommando

    Windows:

    gradlew

    Mac / Linux:

    ./gradlew
  • byggprocessen omfattar byggandet av runtime paketet (både optimerad och med unstripped V8 symbol tabell), liksom alla kompletterande verktyg som används för android bygger: metadata-generator, bindande-generator, metadata-generator, statisk-bindande-generator

  • resultatet av byggnaden kommer att finnas i dist-mappen.

    Note: för att minska byggtiden i hälften och paketera endast den optimerade (avskalade) versionen av runtime-paketet kommentera uppgifter.generateRuntimeAar.kör ()’ i byggnaden.gradle script.

hur man kör tester

  • gå till undermapp test-app efter att du byggt runtime.

  • starta en emulator eller anslut en enhet.

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

  • Kör kommando

gradlew runtest

bidra

vi älskar PRs! Kolla in de bidragande riktlinjerna. Om du vill bidra, men du är osäker på var du ska börja – leta efter problem märkta help wanted.

Misc

  • implementera ytterligare Chrome DevTools-protokolldomäner

få hjälp

använd GitHub-problem strikt för att rapportera fel eller begära funktioner. För allmänna frågor och support, kolla in Stack Overflow eller Fråga våra experter i NativeScript community Slack channel.