This crate provides easy Rust access to Android state (native Java objects) managed by UI toolkits.
This crate exists for two kinds of downstream users:
- The UI toolkit that exposes its key internal states that hold the current Android activity being displayed and the Java VM / JNI environment. Either the UI toolkit or the app itself should set these states on startup, either by using ndk-context or by activating a feature for a specific UI toolkit.
- The platform feature "middleware" crates that need to access the current activity and JNI environment from Rust code in order to interact with the Android platform.
- Makepad: enable the
makepad
Cargo feature. - UI toolkits compatible with ndk-context: supported by default.
- Others coming soon! (in the meantime, see below)
For any other UI toolkits that support ndk-context, you don't need to enable any cargo features.
However, either your application code or the UI toolkit must manually initialize the Android context
owned by ndk-context, i.e., by invoking initialize_android_context()
.
Some UI toolkits automatically do this for you, typically via the ndk-glue crate.