# Delta 0.1.0-2-beta.1.fix.3 ## Base Base déclarée : `0.1.0-2-beta.1.fix.2`. ## Échecs observés sur AVD API 36 Le gameplay Reflex et Snake fonctionne en x86_64, mais : - le bouton Back de l'AVD ne ferme pas le runtime ; - `logcat` ne montre aucun événement `tracing` du moteur. ## Back Android 16 Le projet cible API 36. Sur Android 16, `onBackPressed()` et `KEYCODE_BACK` ne constituent plus la voie de référence. Le common Android enregistre désormais `OnBackInvokedCallback` sur API 33+. La chaîne devient : ```text Android Back -> SaseGameActivity -> NativeBridge.requestPlatformBack() -> JNI nativeRequestPlatformBack() -> engine-v1-sdl::request_platform_back() -> QuitSource::PlatformBack -> EngineGame::quit_requested() ``` Le mapping SDL `AcBack` reste accepté comme événement SDL générique, mais Android ne dépend plus du hint `SDL_ANDROID_TRAP_BACK_BUTTON`. ## Logging Android `game-android-entrypoint` initialise désormais `game-logging-lib`. Sur Android, `game-logging-lib` utilise `tracing-android` pour écrire directement vers logcat avec le tag : ```text games.sasedev ``` Desktop et Tauri conservent le writer stderr existant. ## Contrat JNI Le contrat Java/JNI passe de `1` à `2`. Nouvel export autorisé et audité : ```text Java_com_sasedev_games_common_NativeBridge_nativeRequestPlatformBack ``` ## Validation statique/Rust ```bash cargo fmt --all cargo fmt --all -- --check python3 scripts/audit_rust_workspace_rules.py python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates Android deltas history python3 scripts/audit_distribution_layout.py cargo check --workspace cargo clippy --workspace --all-targets --all-features -- -D warnings cargo test -p engine-v1-sdl --all-targets --all-features cargo test -p game-logging-lib --all-targets --all-features ``` ## Android ARM64 ```bash python3 scripts/build_android_rust.py reflex --abi arm64-v8a python3 scripts/build_android_rust.py snake --abi arm64-v8a cd Android gradle :game-reflex-poc:assembleDebug gradle :game-snake-poc:assembleDebug cd .. ``` ## Android x86_64 ```bash python3 scripts/build_android_rust.py reflex --abi x86_64 python3 scripts/build_android_rust.py snake --abi x86_64 cd Android gradle :game-reflex-poc:assembleDebug gradle :game-snake-poc:assembleDebug cd .. ``` ## Smoke logcat correct Vider logcat avant le lancement : ```bash adb -s emulator-5554 logcat -c adb -s emulator-5554 shell am start -n com.sasedev.games.reflex/.ReflexActivity adb -s emulator-5554 logcat | grep -iE 'games\.sasedev|com\.sasedev\.games|SDL|AndroidRuntime|FATAL|panic' ``` Attendu : - événement d'initialisation tracing Android ; - événement `SDL3 runtime started` ; - sur Back, événement `SDL3 platform Back requested` ; - événement `SDL3 runtime stopped`. Répéter pour Snake et, après validation AVD, refaire un smoke court ARM64 réel.