2K réduit le taux d'erreurs ANR de 35% avec Android Game Development Kit

Arrière-plan

Cat Daddy Games est un studio détenu à 100 % par 2K et basé à Kirkland, dans l'État de Washington. Il est le développeur de NBA 2K Mobile. L'équipe souhaitait améliorer la qualité et la stabilité globales de ses jeux, en particulier en réduisant les erreurs ANR (l'application ne répond pas). Les erreurs ANR se produisent lorsque le thread UI d'une application Android est bloqué trop longtemps. Dans ce cas, le thread principal de l'application, qui est responsable de la mise à jour de l'UI, ne peut pas dessiner ni traiter les événements d'entrée utilisateur, ce qui génère de la frustration pour l'utilisateur. Si l'application s'exécute au premier plan, le système affiche une boîte de dialogue permettant à l'utilisateur de forcer la fermeture de l'application.

Ce qu'ils ont fait

La réduction des erreurs ANR est une priorité pour Cat Daddy. L'équipe de contrôle qualité a travaillé sans relâche et a identifié un schéma ANR courant: elle a constaté que lorsque l'application était mise en pause, puis reprise rapidement, une grande quantité de saisie tactile pouvait entraîner une erreur ANR. Une enquête plus approfondie avec Firebase Crashlytics a montré que cette erreur ANR était de type android.os.MessageQueue.nativePollOnce, le type d'erreur ANR le plus courant pour NBA 2K Mobile.

Cat Daddy a également constaté que l'amélioration de la gestion des entrées dans GameActivity pouvait éviter ce type d'erreurs ANR. Il a donc décidé de passer à GameActivity.

GameActivity est un composant d'Android Game Development Kit, qui est conçu 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 offre un certain nombre d'améliorations axées sur les jeux par rapport à NativeActivity, telles que Fragment, le rendu dans un SurfaceView et d'autres fonctionnalités de compatibilité avec les bibliothèques populaires liées au développement de jeux.

GameActivity utilise également la double mise en tampon dans son tampon d'entrée, ce qui permet au jeu de mieux gérer ce cas de volume d'entrée élevé.

Résultats

En implémentant GameActivity, Cat Daddy a pu améliorer considérablement la gestion des entrées du jeu, ce qui a permis de réduire de 35% les erreurs ANR. Cela a amélioré l'expérience utilisateur et créé une expérience de jeu plus stable.

En outre, comme GameActivity hérite de FragmentActivity, CatDaddy a également pu intégrer EmbeddedWebView et EmbeddedVideoView, qui étaient nécessaires pour certaines des intégrations de jeux sur les réseaux sociaux les plus populaires.

Premiers pas

Améliorez votre propre expérience de jeu avec GameActivity et le reste d'Android Game Development Kit.