# Architecture Android ## Principe Android est un frontend de plateforme autour du jeu natif Rust/SDL3. Java est retenu comme langage de glue par défaut. ```text Android application ├── Java common layer │ ├── SaseGameActivity │ ├── NativeBridge │ └── futurs Ads/Billing/Haptics managers ├── Java game-specific layer ├── SDL3 Android AAR ├── native Rust game library ├── common assets └── game-specific assets ``` SDL3 documente un shim Java/JNI et recommande de dériver sa propre activité de `SDLActivity`. L'utilisation de l'AAR SDL3 doit être privilégiée lorsque l'intégration concrète démarre afin d'éviter de recopier les sources SDL dans chaque jeu. ## Modules Gradle `Android/common` est destiné à devenir une Android Library réutilisable. Les modules `Android/game-*` deviennent des applications distinctes produisant chacune leur APK/AAB. Le squelette initial ne fige volontairement pas la version d'Android Gradle Plugin ni celle de SDL3 : ces dépendances seront introduites dans le premier delta Android réellement exécutable, avec versions vérifiées au moment de l'intégration. ## JNI Le contrat JNI doit rester petit. Les services envisagés sont notamment : - affichage d'une publicité récompensée ; - affichage d'un interstitiel ; - achats intégrés ; - partage Android ; - haptique ; - événements lifecycle utiles au moteur. Une rupture interne de `engine-v1` vers `engine-v2` ne doit pas imposer une nouvelle couche Java si ce contrat reste compatible.