2K riduce la percentuale di ANR del 35% con Android Game Development Kit

Premessa

Cat Daddy Games è uno studio di proprietà di 2K con sede a Kirkland, Washington, e sviluppatore di NBA 2K Mobile. Il team voleva migliorare la qualità e la stabilità complessive dei giochi, in particolare riducendo gli errori "L'applicazione non risponde" (ANR). Gli errori ANR si verificano quando il thread dell'interfaccia utente di un'app Android viene bloccato troppo a lungo. In questi casi, il thread principale dell'app, responsabile dell'aggiornamento dell'interfaccia utente, non può disegnare o elaborare eventi di input utente, causando frustrazione all'utente. Se l'app viene eseguita in primo piano, il sistema mostra una finestra di dialogo che consente all'utente di chiudere manualmente l'app.

Cosa hanno fatto

La riduzione degli errori ANR è stata una priorità assoluta per Cat Daddy. Il team addetto al QA ha lavorato incessantemente e ha individuato un modello ANR comune: ha scoperto che, quando l'app veniva messa in pausa e poi ripresa rapidamente, una grande quantità di input tocco potrebbe causare un errore ANR. Ulteriori indagini con Firebase Crashlytics hanno mostrato che questo errore ANR era di tipo android.os.MessageQueue.nativePollOnce, il tipo più comune di ANR per NBA 2K Mobile.

Cat Daddy ha anche notato che la migliore gestione dell'input in GameActivity poteva evitare questo tipo di errore ANR, quindi ha deciso di passare a GameActivity.

GameActivity è un componente del Game Development Kit di Android, progettato per aiutare i giochi Android a elaborare comandi per il ciclo delle app, inserire eventi e inserire testo nel codice C/C++ dell'applicazione. GameActivity offre una serie di miglioramenti incentrati sui giochi rispetto a NativeActivity, ad esempio Fragment, rendering in un SurfaceView e altro supporto per librerie note relative allo sviluppo di giochi.

GameActivity utilizza anche il doppio buffering nel buffer di input, consentendo al gioco di gestire meglio questo caso di volume di input elevato.

Risultati

Con l'implementazione di GameActivity, Cat Daddy è stato in grado di migliorare notevolmente la gestione dell'input del gioco, con una riduzione del 35% degli errori ANR. Ciò ha migliorato l'esperienza utente e creato un'esperienza di gameplay più stabile.

Come bonus extra, poiché GameActivity eredita da FragmentActivity, CatDaddy ha potuto anche integrare EmbeddingWebView e IncorporatoVideoView, che erano necessari per alcune delle integrazioni di social game più popolari.

Inizia

Migliora la tua esperienza di gioco con GameActivity e il resto dell'Android Game Development Kit.