0.1.0-2-beta.1.fix.3
This commit is contained in:
117
deltas/0.1.0/2-beta.1.fix.3.md
Normal file
117
deltas/0.1.0/2-beta.1.fix.3.md
Normal file
@@ -0,0 +1,117 @@
|
||||
<!-- file: deltas/0.1.0/2-beta.1.fix.3.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# 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.
|
||||
Reference in New Issue
Block a user