GameActivity Composant d'Android Game Development Kit.
GameActivity est une bibliothèque Jetpack conçue pour aider les jeux Android à traiter les commandes de cycle d'application, les événements d'entrée et la saisie de texte dans le code C/C++ de l'application. GameActivity est un descendant direct de NativeActivity avec lequel il partage une architecture semblable :

Comme illustré dans le diagramme ci-dessus, GameActivity exécute les fonctions suivantes :
- Interaction avec le framework Android par le biais du composant côté Java
- Transmission des commandes de cycle d'application, des événements d'entrée et du texte saisi au côté natif
- Modélisation du code source C/C++ sous forme de trois composants logiques :
- Fonctions JNI de GameActivity, qui prennent directement en charge la fonctionnalité Java de GameActivity et mettent les événements en file d'attente dans
native_app_glue native_app_glue, qui s'exécute principalement dans son propre thread natif (différent du thread principal de l'application), et exécute des tâches avec son looper- Code de jeu de l'application, qui interroge et traite les événements mis en file d'attente dans
native_app_glueet exécute le code de jeu dans le threadnative_app_glue.
- Fonctions JNI de GameActivity, qui prennent directement en charge la fonctionnalité Java de GameActivity et mettent les événements en file d'attente dans
GameActivity vous permet de vous concentrer sur le développement de base de votre jeu et d'éviter de perdre beaucoup de temps à gérer le code JNI.
Si vous connaissez déjà NativeActivity, les principales différences entre GameActivity et NativeActivity sont les suivantes :
GameActivityeffectue le rendu dans unSurfaceView, ce qui facilite l'interaction des jeux avec d'autres composants de l'UI.- Pour les événements tactiles et de saisie au clavier,
GameActivitydispose d'une implémentation entièrement nouvelle avec l'interfaceandroid_input_bufferdistincte de l'InputQueueutilisée parNativeActivity. GameActivityest une classe dérivée d'AppCompatActivity, qui vous permet d'utiliser facilement d'autres composants Jetpack.ActionBar,Fragmentet autres sont tous disponibles.GameActivityajoute une fonctionnalité de saisie de texte en intégrant la bibliothèque GameTextInput.- Les applications dérivées de
GameActivitysont censées créer les trois parties du code C/C++ dans une même bibliothèque. Les fonctions JNI deNativeActivity, quant à elles, font partie du framework (toujours chargées par l'OS). Par conséquent, seuls le composantnative_app_glueet le code C/C++ de l'application doivent être intégrés dans la même bibliothèque. NativeActivityest un composant du framework Android, dont il suit le cycle de publication (généralement annuel).GameActivityest un composant de la bibliothèque Jetpack, dont le cycle de publication est beaucoup plus fréquent (généralement bimensuel). De nouvelles fonctionnalités et des corrections de bugs peuvent être publiées beaucoup plus rapidement.
Emplacements de publication
La bibliothèque GameActivity est accessible via les canaux suivants :
- En tant que composant de la bibliothèque Android Jetpack (canal recommandé)
- En tant que code source AOSP
Le code C/C++ est fourni sous forme de code source dans tous les canaux de distribution, au format Prefab. La version 1.2.2 de GameActivity ajoute une bibliothèque statique à la distribution. À partir de cette version, nous vous recommandons d'utiliser la bibliothèque statique au lieu du code source.
Contenu de la bibliothèque Jetpack
Par le biais de la bibliothèque Jetpack, GameActivity est publié avec un fichier AAR. Ce fichier AAR contient les composants suivants :
- Un fichier JAR pour le code Java
- La bibliothèque statique C/C++
game-activity_staticest incluse dans GameActivity version 1.2.2 ou ultérieure. - Le code source C/C++ (dossier
/prefab)
Les instructions d'intégration accessibles depuis cette page partent du principe que vous êtes en mesure d'utiliser Prefab dans votre système de compilation. Sinon, vous pouvez copier le code source contenu dans le dossier prefab/modules/game-activity/include vers votre système de compilation et suivre les étapes d'intégration nécessaires. Une structure de fichiers similaire existe pour les versions sous androidx de la bibliothèque Android Jetpack. Par défaut, Gradle décompresse les fichiers AAR dans son cache (~/.gradle/caches/...). Pour accéder au code source C/C++, recherchez prefab/modules/game-activity/include et récupérez l'emplacement sous la version souhaitée.
Pour obtenir des instructions sur l'intégration à l'aide de la bibliothèque Jetpack, consultez Premiers pas avec GameActivity.
Contenu du code source AOSP
AOSP contient toujours le code source le plus récent. Suivez les [instructions de compilation][GameActivity implementation]{: .external} pour créer vos propres versions ou intégrez directement la source dans votre environnement de compilation. Le code source C/C++ est enregistré dans une structure de fichiers semblable à celle de la bibliothèque Jetpack.
Guides d'intégration
Suivez les guides ci-dessous pour intégrer GameActivity dans vos applications :
Ressources supplémentaires
Pour en savoir plus sur GameActivity, consultez :
- Notes de version de GameActivity et d'AGDK
- Utiliser GameTextInput dans GameActivity
- Guide de migration de NativeActivity
- Documentation de référence sur GameActivity
- Implémentation de GameActivity
Commentaires
Pour signaler des bugs ou demander de nouvelles fonctionnalités dans GameActivity, utilisez l'outil Issue Tracker de GameActivity.