android readme and flags

This commit is contained in:
Alexi Chepura
2023-10-18 13:43:23 +03:00
parent 28c847244a
commit a9bf0eeffe
3 changed files with 51 additions and 3 deletions

View File

@@ -29,7 +29,7 @@ target_sdk_version = 32
# label = "Bevy Example"
[dependencies]
bevy_openxr = { path = "../.." }
bevy_openxr = { path = "../..", default-features = false }
bevy = { git = "https://github.com/bevyengine/bevy.git" }
openxr = { git = "https://github.com/Ralith/openxrs", features = ["mint"] }

View File

@@ -1,6 +1,46 @@
# Bevy OpenXR Android example
Running on Meta Quest can be done with https://github.com/rust-mobile/cargo-apk and requires disabling default features.
## Setup
Get libopenxr_loader.so from the Oculus OpenXR Mobile SDK and add it to `examples/android/runtime_libs/arm64-v8a`
https://developer.oculus.com/downloads/package/oculus-openxr-mobile-sdk/
`examples/android/runtime_libs/arm64-v8a/libopenxr_loader.so`
Running on Meta Quest can be done with https://github.com/rust-mobile/cargo-apk.
```sh
cargo apk run --release
```
```
## Notes
### Relase mode
More optimisations enabled in Cargo.toml for the release mode.
This gives more performance but longer build time.
```toml
[profile.release]
lto = "fat"
codegen-units = 1
panic = "abort"
```
### Cargo apk
If you see error like `Error: String `` is not a PID`, try to install cargo apk with a fix in branch.
```sh
cargo install --git https://github.com/rust-mobile/cargo-apk --branch=adb-logcat-uid
```
### Temporary JNIEnv log
This message is logged every frame. It's not yet fixed.
```sh
I JniUtils-inl: Creating temporary JNIEnv. This is a heavy operation and should be infrequent. To optimize, use JNI AttachCurrentThread on calling threa
```
### Android keystore
Release mode requires keystore. See Cargo.toml `package.metadata.android.signing.release`.
When creating your own apps, make sure to generate your own keystore, rather than using our example one!
You can use `keytool` like so:
```sh
keytool -genkey -v -keystore my-release-key.keystore -keyalg RSA -keysize 2048 -validity 10000
```
For more information on key signing and why it's so important, check out this article:
https://developer.android.com/studio/publish/app-signing