mirror of
https://github.com/rust-mobile/android-activity.git
synced 2026-07-09 16:27:28 +00:00
b7f01a43d9
The latest branches for Winit (which update the Android backend to use android-activity) now depend on the android-activity 0.2 release which broke the patching assumption for the Winit examples. (they were patching based on the git url not crates.io) It was also noticed that the latest android-activity-0.27 branch isn't compatible with Egui currently because the (badly named) branch is based on Winit master and there was recently a breaking API change adding new window events which breaks Egui. A note about the badly name branches has been added to the Cargo.toml files for the Winit examples (they can't currently be fixes since the -0.27 branch is part of a pull request). For reference here: - "android-activity" is based on Winit 0.27 (required for Egui compatibility) - "android-activity-0.27" is based on Winit master This patch adds Cargo.lock files for the Winit examples. Fixes: #22
This tests using GameActivity with winit and wgpu.
This is based on a re-worked winit backend here: https://github.com/rib/winit/tree/android-activity
Although it would have been possible to handle the suspend/resume lifecycle events with a simpler approach of destroying and recreating all graphics state, this tries to represent how lifecycle events could be handled in more complex applications, such as within Bevy.
Considering that lifecycle events aren't supported consistently on desktop platforms this test also aims to build and run on desktop - for the sake of testing how more complex applications (that need to be portable) can work. (enable "desktop" feature to build binary)
export ANDROID_NDK_HOME="path/to/ndk"
export ANDROID_HOME="path/to/sdk"
rustup target add aarch64-linux-android
cargo install cargo-ndk
cargo ndk -t arm64-v8a -o app/src/main/jniLibs/ build
./gradlew build
./gradlew installDebug
adb shell am start -n co.realfit.agdkwinitwgpu/.MainActivity