2K ลดอัตรา ANR ลง 35% ด้วย Android Game Development Kit

ฉากหลัง

Cat Daddy Games เป็นสตูดิโอของ 2K ที่อยู่ในเมืองคิลลันด์ รัฐวอชิงตัน และเป็นบริษัทพัฒนาเกม NBA 2K Mobile ทีมต้องการปรับปรุงคุณภาพและความเสถียรโดยรวมของเกม โดยเฉพาะอย่างยิ่งการลดข้อผิดพลาด "แอปพลิเคชันไม่ตอบสนอง" (ANR) ANR จะแสดงขึ้นเมื่อเธรด UI ของแอป Android ถูกบล็อกนานเกินไป เมื่อเกิดกรณีเช่นนี้ เธรดหลักของแอปซึ่งมีหน้าที่อัปเดต UI จะวาดหรือประมวลผลเหตุการณ์อินพุตของผู้ใช้ไม่ได้ ซึ่งทำให้ผู้ใช้ไม่พอใจ หากแอปทำงานอยู่เบื้องหน้า ระบบจะแสดงกล่องโต้ตอบที่อนุญาตให้ผู้ใช้บังคับปิดแอป

สิ่งที่พวกเขาทำ

การลด ANR เป็นสิ่งที่ Cat Daddy ให้ความสำคัญสูง ทีม QA ทํางานอย่างไม่หยุดหย่อนและระบุรูปแบบ ANR ที่พบบ่อยได้ ซึ่งก็คือเมื่อแอปหยุดชั่วคราวแล้วกลับมาทํางานต่ออย่างรวดเร็ว อินพุตการสัมผัสจํานวนมากอาจทําให้เกิด ANR จากการตรวจสอบเพิ่มเติมด้วย Firebase Crashlytics พบว่า ANR นี้เป็นประเภท android.os.MessageQueue.nativePollOnce ซึ่งเป็น ANR ประเภทที่พบบ่อยที่สุดสำหรับ NBA 2K Mobile

Cat Daddy ยังพบว่าการจัดการอินพุตที่ปรับปรุงแล้วใน GameActivity ช่วยหลีกเลี่ยง ANR ประเภทนี้ได้ จึงตัดสินใจเปลี่ยนไปใช้ GameActivity

GameActivity เป็นส่วนประกอบของ Android Game Development Kit ซึ่งออกแบบมาเพื่อช่วยเกม Android ในการจัดการกับคำสั่งรอบการทำงานของแอป เหตุการณ์อินพุต และการป้อนข้อความในโค้ด C/C++ ของแอปพลิเคชัน GameActivity มีการปรับปรุงที่มุ่งเน้นเกมจํานวนมากเมื่อเทียบกับ NativeActivity เช่น Fragment การแสดงผลเป็น SurfaceView และการสนับสนุนอื่นๆ สําหรับไลบรารีที่เกี่ยวข้องกับการพัฒนาเกมยอดนิยม

นอกจากนี้ GameActivity ยังใช้บัฟเฟอร์คู่ในบัฟเฟอร์อินพุต ซึ่งช่วยให้เกมจัดการกับกรณีที่มีอินพุตจำนวนมากได้ดียิ่งขึ้น

ผลลัพธ์

การใช้ GameActivity ทำให้ Cat Daddy ปรับปรุงการจัดการอินพุตของเกมได้อย่างมาก ซึ่งส่งผลให้ข้อผิดพลาด ANR ลดลง 35% ซึ่งช่วยปรับปรุงประสบการณ์ของผู้ใช้และสร้างประสบการณ์การเล่นเกมที่เสถียรยิ่งขึ้น

ในฐานะโบนัสเพิ่มเติม เนื่องจาก GameActivity สืบทอดมาจาก FragmentActivity CatDaddy จึงผสานรวม EmbeddedWebView และ EmbeddedVideoView ได้ด้วย ซึ่งจําเป็นสําหรับการผสานรวมเกมโซเชียลที่ได้รับความนิยมมากที่สุดบางเกม

เริ่มต้นใช้งาน

ปรับปรุงประสบการณ์การเล่นเกมของคุณด้วย GameActivity และ Android Game Development Kit ที่เหลือ