Contains the source code for the NativeScript's Android runtime. The android-runtime is a main component used in NativeScript.
The repo is structured in the following projects (ordered by dependencies):
- android-metadata-generator - generates metadata necessary for the Android Runtime.
- android-binding-generator - enables Java & Android types to be dynamically created at runtime. Needed by the
extend
routine. - android-runtime - contains the core logic behind the NativeScript's Android Runtime. This project contains native C++ code and needs the Android NDK to build properly.
- android-runtime-testapp - this is a vanilla Android Application, which contains the tests for the runtime project.
- android-static-binding-generator - build tool that generates bindings based on the user's javascript code.
- project-template - this is an empty placeholder Android Application project, used by the NativeScript CLI when building an Android project.
Following are the minimal prerequisites to build the runtime package.
- Install the latest Android Studio .
- Install Android API Level 22, 23, 24, 25 from Android Studio -> Tools -> Android -> SDK Manager
- Android NDK 15c - NDK Archives or NDK Downloads if you can't find it in the archives.
- Download Android Support Repository through the Android SDK Manager
- Download Build Tools 25.0.2 through the Android SDK Manager.
-
Run command
Windows:
gradlew
Mac/Linux:
./gradlew
-
The build process includes building of the runtime package (both optimized and with unstripped v8 symbol table), as well as all supplementary tools used for the android builds: metadata-generator, binding-generator, metadata-generator, static-binding-generator
-
The result of the build will be in the dist folder.
Note:
To cut the build time in half and package only the optimized (stripped) version of the runtime package comment out 'tasks.generateRuntimeAar.execute()' in the build.gradle script.
-
Go to subfolder test-app after you built the runtime.
-
Start an emulator or connect a device.
Note: Keep in mind the device or emulator needs to have an sdcard mounted.
-
Run command
gradlew runtest