2K снижает частоту ошибок ANR на 35 % с помощью комплекта разработки игр для Android

Фон

Cat Daddy Games — это 2K- студия, находящаяся в полной собственности, расположенная в Киркланде, штат Вашингтон, и разработчик NBA 2K Mobile. Команда хотела улучшить общее качество и стабильность своих игр, в частности, за счет уменьшения количества ошибок «Приложение не отвечает» (ANR). Ошибки ANR возникают, когда поток пользовательского интерфейса приложения Android блокируется слишком долго. Когда это происходит, основной поток приложения, отвечающий за обновление пользовательского интерфейса, не может рисовать или обрабатывать события пользовательского ввода, что вызывает разочарование пользователя. Если приложение работает на переднем плане, система отображает диалоговое окно, позволяющее пользователю принудительно закрыть приложение.

Что они сделали

Снижение количества ошибок ANR было первоочередной задачей Cat Daddy. Команда контроля качества работала не покладая рук и выявила распространенную закономерность ANR: они обнаружили, что, когда приложение было приостановлено, а затем быстро возобновлено, большое количество сенсорных вводов могло вызвать ошибку ANR. Дальнейшее исследование с помощью Firebase Crashlytics показало, что этот ANR имел тип android.os.MessageQueue.nativePollOnce, наиболее распространенный тип ANR для NBA 2K Mobile.

Cat Daddy также увидел, что улучшенная обработка ввода в GameActivity позволяет избежать ошибок ANR этого типа, поэтому они решили перейти на GameActivity.

GameActivity — это компонент пакета разработки игр для Android , который предназначен для помощи играм Android в обработке команд цикла приложений, событий ввода и ввода текста в коде приложения C/C++. GameActivity предлагает ряд улучшений, ориентированных на игры, по сравнению с NativeActivity , таких как Fragment , рендеринг в SurfaceView и другую поддержку популярных библиотек, связанных с разработкой игр.

GameActivity также использует двойную буферизацию в своем входном буфере, что позволяет игре лучше обрабатывать случаи большого объема ввода.

Результаты

Внедрив GameActivity, Cat Daddy смог значительно улучшить обработку ввода в игре, что привело к снижению количества ошибок ANR на 35%. Это улучшило взаимодействие с пользователем и сделало игровой процесс более стабильным.

В качестве дополнительного бонуса, поскольку GameActivity наследует от FragmentActivity , CatDaddy также смог интегрировать EmbeddedWebView и EmbeddedVideoView, которые были необходимы для некоторых наиболее популярных интеграций социальных игр.

Начать

Улучшите свои впечатления от игры с помощью GameActivity и остальных компонентов Android Game Development Kit .