When we use Crux to build Android apps, the Core API bindings are generated in Java using Mozilla's Uniffi.
The shared core (that contains our app's behavior) is compiled to a dynamic library, using Mozilla's Rust gradle plugin for Android and the Android NDK. The library is loaded at runtime using Java Native Access.
The shared types are generated by Crux as Java packages, which we can add to our
Android project using
sourceSets. The Java code to serialize and deserialize
these types across the boundary is also generated by Crux as Java packages.
This section has a guide for building Android apps with Crux: