Expand description
Android backend.
Note: This module is only available on Android with the “backend-android-activity-06” feature
Slint uses the android-activity crate as a backend.
For convenience, Slint re-exports the content of the android-activity
under slint::android::android_activity
.
As with every application using the android-activity crate, the entry point to your app will be the android_main
function.
From that function, you can call slint::android::init
or slint::android::init_with_event_listener
§Example
This is a basic example of an Android application.
Do not forget the #[no_mangle]
#[no_mangle]
fn android_main(app: slint::android::AndroidApp) {
slint::android::init(app).unwrap();
// ... rest of your code ...
slint::slint!{
export component MainWindow inherits Window {
Text { text: "Hello World"; }
}
}
MainWindow::new().unwrap().run().unwrap();
}
That function must be in a cdylib
library, and you should enable the “backend-android-activity-06”`
feature of the slint crate in your Cargo.toml:
[lib]
crate-type = ["cdylib"]
[dependencies]
slint = { version = "1.6", features = ["backend-android-activity-06"] }
§Building and Deploying
Building a Rust application requires the target toolchain to be installed. You can install it via rustup
. For example, to target AArch64 Android, use the following command:
rustup target add aarch64-linux-android
Make sure that you have the Android NDK and SDK installed and set up in your development environment. For detailed instructions on how to set up the Android NDK and SDK, please refer to the Android Developer’s guide. The following environment variables need to be set:
ANDROID_HOME
: The directory in which your Android SDK is located. Usually$HOME/Android/Sdk
.ANDROID_NDK_ROOT
: The directory in which your Android NDK is located. Usually$HOME/Android/Sdk/ndk/${NDK_VERSION}
. ${NDK_VERSION} is the version of the NDK you have installed.JAVA_HOME
: The directory in which your Java compiler (javac
) is located. This variable is optional if ajavac
is found in your$PATH
. Otherwise you can setJAVA_HOME
to thejavac
installation shipped with Android Studio inandroid-studio/jbr
.
To build and deploy your application, we suggest the usage of cargo-apk, a cargo subcommand that allows you to build, sign, and deploy Android APKs made in Rust.
You can install it and use it with the following command:
cargo install cargo-apk
Build and run your application with the following command:
cargo apk run --target aarch64-linux-android --lib
Note Slint does not require a specific build tool and can work with others, such as xbuild.
Re-exports§
pub use android_activity::AndroidApp;
Modules§
- Re-export of the android-activity crate.
Functions§
- Initializes the Android backend.
- Similar to
init()
, which allow to listen to android-activity’s event