GameActivity Parte di Android Game Development Kit.
GameActivity è una libreria Jetpack progettata
per aiutare i giochi per Android a elaborare i comandi del ciclo di vita dell'app, gli eventi di input e l'input di testo
nel codice C/C++ dell'applicazione. GameActivity è un discendente diretto di
NativeActivity e condivide un'architettura
simile:

Come illustrato nel diagramma precedente, GameActivity svolge le seguenti
funzioni:
- Interagire con il framework Android tramite il componente lato Java.
- Trasferimento di comandi del ciclo di vita dell'app, eventi di input e testo di input al lato nativo.
- Modellazione del codice sorgente C/C++ in tre componenti logici:
- Le funzioni JNI di GameActivity, che supportano direttamente la funzionalità Java di GameActivity e mettono in coda gli eventi in
native_app_glue. native_app_glue, che viene eseguito principalmente nel proprio thread nativo (diverso dal thread principale dell'applicazione) ed esegue le attività con il proprio looper.- Il codice di gioco dell'applicazione, che esegue il polling ed elabora gli eventi in coda
all'interno di
native_app_glueed esegue il codice di gioco all'interno del threadnative_app_glue.
- Le funzioni JNI di GameActivity, che supportano direttamente la funzionalità Java di GameActivity e mettono in coda gli eventi in
Con GameActivity, puoi concentrarti sullo sviluppo del gioco principale ed evitare
di dedicare troppo tempo alla gestione del codice JNI.
Se hai già familiarità con NativeActivity, le principali differenze
tra GameActivity e NativeActivity sono le seguenti:
GameActivityviene visualizzato in unSurfaceView, il che rende molto più semplice l'interazione dei giochi con altri componenti UI.- Per gli eventi di input da tastiera e tocco,
GameActivityha un'implementazione completamente nuova con l'interfacciaandroid_input_buffer, separata daInputQueuecheNativeActivityutilizza. GameActivityè una classe derivata diAppCompatActivity, che ti consente di utilizzare senza problemi altri componenti Jetpack.ActionBar,Fragmente altri sono tutti disponibili.GameActivityaggiunge la funzionalità di inserimento di testo integrando la libreria GameTextInput.- Le app derivate da
GameActivitydevono creare tutte e tre le parti del codice C/C++ in un'unica libreria. D'altra parte, le funzioni JNI diNativeActivityfanno parte del framework (sempre caricate dal sistema operativo). Pertanto, solo il codice C/C++ dinative_app_gluee dell'applicazione deve essere compilato in un'unica libreria. NativeActivityfa parte del framework Android e ne segue il ciclo di rilascio (in genere annuale).GameActivityfa parte della libreria Jetpack, che ha un ciclo di rilascio molto più frequente (in genere ogni due settimane); nuove funzionalità e correzioni di bug possono arrivare molto più rapidamente.
Località di rilascio
La libreria GameActivity è disponibile nei seguenti canali:
- Come parte della libreria Android Jetpack (consigliato)
- Come AOSP codice sorgente
Il codice C/C++ viene fornito come codice sorgente in tutti i canali di rilascio, utilizzando il formato Prefab. GameActivity versione 1.2.2 aggiunge una libreria statica alla distribuzione. A partire da questa versione e da quelle successive, ti consigliamo di utilizzare la libreria statica anziché il codice sorgente.
Contenuti della libreria Jetpack
Con la libreria Jetpack, GameActivity viene rilasciata con un AAR. Questo AAR contiene i seguenti componenti principali:
- Un file JAR per il codice Java
- La libreria statica C/C++
game-activity_staticè inclusa in GameActivity versione 1.2.2 e successive. - Codice sorgente C/C++ (nella cartella
/prefab)
Le istruzioni di integrazione a cui rimanda questa pagina presuppongono che tu possa utilizzare
Prefab nel tuo sistema di build; in caso contrario, puoi copiare il codice sorgente compresso
nella cartella prefab/modules/game-activity/include nel tuo sistema di build
ed eseguire i passaggi di integrazione necessari. Esiste una struttura di file simile per
le release in androidx per la libreria Android Jetpack; per impostazione predefinita,
Gradle decomprime gli AAR nella directory della cache (~/.gradle/caches/...). Puoi trovare
il codice sorgente C/C++ cercando prefab/modules/game-activity/include
e selezionando la posizione nella versione di rilascio che ti interessa.
Per istruzioni sull'integrazione tramite la libreria Jetpack, vedi Guida introduttiva a GameActivity.
Contenuti del codice sorgente AOSP
AOSP contiene sempre il codice sorgente più recente. Segui le [istruzioni di build][Implementazione di GameActivity]{: .external} per creare le tue release o integrare direttamente l'origine nel tuo ambiente di build. Il codice sorgente C/C++ viene salvato in una struttura di file simile alla libreria Jetpack.
Guide all'integrazione
Segui queste guide per integrare GameActivity nelle tue applicazioni:
Risorse aggiuntive
Per scoprire di più su GameActivity, consulta quanto segue:
- Note di rilascio di GameActivity e AGDK.
- Utilizza GameTextInput in GameActivity.
- Guida alla migrazione di NativeActivity.
- Documentazione di riferimento di GameActivity.
- Implementazione di GameActivity.
Feedback
Per segnalare bug o richiedere nuove funzionalità per GameActivity, utilizza lo strumento di monitoraggio dei problemi di GameActivity.