JetSki is an AAR, or Android Library, that compiles Skia's native code, 
JNI bindings, and Java wrapper classes into a shared library.

BUILDING

1) Through Android Studio
-  Start a project by opening skia/platform_tools/android/apps with Android Studio.
-  Ensure that you're local.properties file is filled out with paths to your 
   Skia out directories. It should look like this:

   sdk.dir=[sdk file path]
   depot_tools.dir=[depot tools file path]
   x86.out.dir=[out file for x86]
   x64.out.dir=[out file for x64]
   arm64.out.dir=[out file for xarm64]
   arm.out.dir=[out file for arm]

-  Click on JetSki on the project tree, click Build in the toolbar, and select
   " Make Module 'apps.jetski' "
-  The AAR will be under the build/outputs/aar directory.

2) Through the terminal
-  Run: platform_tools/android/bin/android_build_app -C  out/[out_dir] jetski
-  If it builds with no errors, you’ll find the AAR in the out directory you were building from


LOADING

Before using JetSki classes, client applications must explicitly load the native library.
This is usually accomplished via a static class initializer, e.g.

  public class MyApp {
      static {
          System.loadLibrary("jetski");
      }

      ...
  }

