Arka plan
Cat Daddy Games, Kirkland, Washington'da bulunan ve NBA 2K Mobile'ın geliştiricisi olan, tamamıyla sahibi olduğu 2K stüdyodur. Ekip, özellikle "Uygulama Yanıt Vermiyor" hatalarını (ANR'ler) azaltarak oyunlarının genel kalitesini ve kararlılığını iyileştirmek istiyordu. ANR'ler, bir Android uygulamasının kullanıcı arayüzü iş parçacığı çok uzun süre engellendiğinde meydana gelir. Böyle bir durumda, uygulamanın kullanıcı arayüzünü güncellemekten sorumlu olan ana iş parçacığı kullanıcı girişi etkinliklerini çizemez veya işleyemez ve bu durum kullanıcıyı hayal kırıklığına uğratır. Uygulama ön planda çalışıyorsa sistem, kullanıcının uygulamadan zorla çıkmasına izin veren bir iletişim kutusu görüntüler.
Ne yaptılar?
ANR'leri azaltmak Cat Daddy için yüksek öncelikli bir konudur. KG ekibi durmadan çalıştı ve yaygın bir ANR kalıbı tespit etti. Uygulama duraklatılıp hızlı bir şekilde devam ettirildiğinde yüksek miktarda dokunma girişinin ANR'ye neden olabileceğini tespit ettiler. Firebase Crashlytics ile yapılan ek araştırmalar, bu ANR'nin NBA 2K Mobile için en yaygın ANR türü olan android.os.MessageQueue.nativePollStep türünde olduğunu göstermiştir.
Cat Daddy, GameActivity'deki iyileştirilmiş giriş işleme yönteminin bu tür ANR'leri önleyebileceğini de gördü ve bu nedenle GameActivity'ye geçmeye karar verdi.
GameActivity, Android oyunlarının uygulama döngüsü komutlarını, giriş etkinliklerini ve uygulamanın C/C++ kodundaki metin girişlerini işlemesine yardımcı olmak için tasarlanmış Android Oyun Geliştirme Kiti'nin bir bileşenidir. GameActivity, NativeActivity
özelliğine kıyasla Fragment
gibi oyun odaklı iyileştirmeler, SurfaceView
oluşturma ve oyun geliştirmeyle ilgili popüler kitaplıklar için diğer destek olanakları sunuyor.
GameActivity, giriş arabelleğinde çift arabelleğe alma yöntemini de kullanarak oyunun yüksek giriş hacmi durumunda daha iyi çalışmasını sağlar.
Sonuçlar
Cat Daddy, GameActivity'yi uygulayarak oyunun giriş işlemini önemli ölçüde iyileştirerek ANR hatalarında% 35 azalma sağladı. Bu, kullanıcı deneyimini iyileştirdi ve daha kararlı bir oyun deneyimi oluşturdu.
Buna ek olarak, GameActivity alanı FragmentActivity
'ten devraldığı için CatDaddy, en popüler sosyal oyun entegrasyonlarından bazıları için gerekli olan YerleşikWebView ve EmbedVideoView'u da entegre etmeyi başardı.
Başlayın
GameActivity ve Android Oyun Geliştirme Kiti'nin geri kalanıyla kendi oyun deneyiminizi iyileştirin.