پس زمینه
Cat Daddy Games یک استودیوی کاملاً متعلق به 2K است که در کرکلند، واشنگتن و توسعهدهنده NBA 2K Mobile است. این تیم میخواست کیفیت و ثبات کلی بازیهای خود را بهبود بخشد، بهویژه با کاهش خطاهای «برنامه پاسخ نمیدهد» (ANR). ANR زمانی رخ میدهد که رشته رابط کاربری یک برنامه Android برای مدت طولانی مسدود شود. وقتی این اتفاق میافتد، رشته اصلی برنامه که مسئول بهروزرسانی رابط کاربری است، نمیتواند رویدادهای ورودی کاربر را ترسیم یا پردازش کند و باعث ناامیدی کاربر میشود. اگر برنامه در پیش زمینه در حال اجرا باشد، سیستم گفتگویی را نمایش می دهد که به کاربر اجازه می دهد برنامه را به اجبار ترک کند.
کاری که آنها انجام دادند
کاهش ANR برای Cat Daddy اولویت بالایی داشته است. تیم QA بی وقفه کار کرد و یک الگوی رایج ANR را مشخص کرد: آنها متوجه شدند که وقتی برنامه متوقف می شود و سپس به سرعت از سر گرفته می شود، مقدار زیادی از ورودی لمسی می تواند باعث ANR شود. بررسی بیشتر با Firebase Crashlytics نشان داد که این ANR از نوع android.os.MessageQueue.nativePollOnce، رایج ترین نوع ANR برای NBA 2K Mobile بود.
Cat Daddy همچنین دید که مدیریت ورودی بهبود یافته در GameActivity می تواند از این نوع ANR جلوگیری کند، بنابراین آنها تصمیم گرفتند به GameActivity بروند.
GameActivity جزئی از کیت توسعه بازی اندروید است که برای کمک به بازی های اندروید در پردازش دستورات چرخه برنامه، رویدادهای ورودی و ورودی متن در کد C/C++ برنامه طراحی شده است. GameActivity چندین پیشرفت مبتنی بر بازی را نسبت به NativeActivity
ارائه می دهد، مانند Fragment
، رندر کردن به SurfaceView
، و سایر پشتیبانی ها برای کتابخانه های مرتبط با توسعه بازی محبوب.
GameActivity همچنین از بافر مضاعف در بافر ورودی خود استفاده می کند، که به بازی اجازه می دهد تا با حجم ورودی بالا بهتر مدیریت کند.
نتایج
با اجرای GameActivity، Cat Daddy توانست به طور قابل توجهی مدیریت ورودی بازی را بهبود بخشد و منجر به کاهش 35 درصدی خطاهای ANR شود. این باعث بهبود تجربه کاربر و ایجاد یک تجربه گیم پلی پایدارتر شد.
به عنوان یک امتیاز اضافی، چون GameActivity از FragmentActivity
به ارث میرسد، CatDaddy همچنین توانست EmbeddedWebView و EmbeddedVideoView را که برای برخی از محبوبترین ادغامهای بازیهای اجتماعی مورد نیاز بودند، ادغام کند.
شروع کنید
تجربه بازی خود را با GameActivity و بقیه کیت توسعه بازی اندروید بهبود بخشید.