1.6 KiB
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.
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.