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

ดังที่แสดงในแผนภาพด้านบน GameActivity จะทำหน้าที่ต่อไปนี้
- การโต้ตอบกับเฟรมเวิร์ก Android ผ่านคอมโพเนนต์ฝั่ง Java
- ส่งคำสั่งวงจรแอป เหตุการณ์อินพุต และข้อความอินพุตไปยังฝั่งเนทีฟ
- การสร้างโมเดลซอร์สโค้ด C/C++ เป็น 3 คอมโพเนนต์เชิงตรรกะ
- ฟังก์ชัน JNI ของ GameActivity ซึ่งรองรับฟังก์ชันการทำงานของ Java
ของ GameActivity โดยตรงและจัดคิวเหตุการณ์ไปยัง
native_app_glue native_app_glueซึ่งส่วนใหญ่ทำงานในชุดข้อความเนทีฟของตัวเอง (แตกต่างจากชุดข้อความหลักของแอปพลิเคชัน) และเรียกใช้งานด้วย Looper ของตัวเอง- โค้ดเกมของแอปพลิเคชัน ซึ่งสำรวจและประมวลผลเหตุการณ์ที่อยู่ในคิวภายใน
native_app_glueและเรียกใช้โค้ดเกมภายในเธรดnative_app_glue
- ฟังก์ชัน JNI ของ GameActivity ซึ่งรองรับฟังก์ชันการทำงานของ Java
ของ GameActivity โดยตรงและจัดคิวเหตุการณ์ไปยัง
GameActivityช่วยให้คุณมุ่งเน้นไปที่การพัฒนาเกมหลักและหลีกเลี่ยง
การใช้เวลามากเกินไปในการจัดการโค้ด JNI
หากคุ้นเคยกับ NativeActivity อยู่แล้ว ความแตกต่างที่สำคัญ
ระหว่าง GameActivity กับ NativeActivity มีดังนี้
GameActivityจะแสดงผลเป็นSurfaceViewซึ่งทำให้เกมโต้ตอบกับคอมโพเนนต์ UI อื่นๆ ได้ง่ายขึ้นมาก- สําหรับเหตุการณ์อินพุตแบบสัมผัสและคีย์
GameActivityมีการ ติดตั้งใช้งานใหม่ทั้งหมดด้วยอินเทอร์เฟซandroid_input_bufferแยกจากInputQueueที่NativeActivityใช้ GameActivityเป็นคลาสที่ได้มาจากAppCompatActivityซึ่งช่วยให้คุณใช้คอมโพเนนต์ Jetpack อื่นๆ ได้อย่างราบรื่นActionBarFragmentและอื่นๆ พร้อมให้บริการGameActivityเพิ่มฟังก์ชันการป้อนข้อความโดยการผสานรวมไลบรารี GameTextInput- แอปที่ได้จาก
GameActivityคาดว่าจะสร้างโค้ด C/C++ ทั้ง 3 ส่วนเป็นไลบรารีเดียว ในทางกลับกัน ฟังก์ชัน JNI ของNativeActivityเป็นส่วนหนึ่งของเฟรมเวิร์ก (โหลดโดยระบบปฏิบัติการเสมอ) ดังนั้นจึงคาดว่าจะมีการสร้างเฉพาะโค้ด C/C++ ของnative_app_glueและแอปพลิเคชัน เป็นไลบรารีเดียว NativeActivityเป็นส่วนหนึ่งของเฟรมเวิร์ก Android และเป็นไปตามรอบการเผยแพร่ (โดยปกติคือทุกปี)GameActivityเป็นส่วนหนึ่งของไลบรารี Jetpack ซึ่งมีรอบการเปิดตัวที่บ่อยกว่ามาก (โดยปกติคือทุกๆ 2 สัปดาห์) ฟีเจอร์ใหม่ และการแก้ไขข้อบกพร่องจึงมาถึงได้เร็วกว่ามาก
สถานที่เผยแพร่
GameActivity ไลบรารีพร้อมให้บริการในช่องทางต่อไปนี้
- เป็นส่วนหนึ่งของคลัง Android Jetpack (แนะนำ)
- ในฐานะซอร์สโค้ดของ AOSP
โค้ด C/C++ มีให้ใช้งานเป็นซอร์สโค้ดในช่องทางการเผยแพร่ทั้งหมดโดยใช้รูปแบบ Prefab GameActivity เวอร์ชัน 1.2.2 เพิ่มไลบรารีแบบคงที่ลงในการเผยแพร่ ตั้งแต่เวอร์ชันนี้เป็นต้นไป เราขอแนะนำให้คุณใช้ไลบรารีแบบคงที่ แทนซอร์สโค้ด
เนื้อหาของไลบรารี Jetpack
ไลบรารี Jetpack จะเปิดตัว GameActivity พร้อมกับ AAR AAR นี้มีคอมโพเนนต์หลักๆ ดังนี้
- ไฟล์ JAR สำหรับโค้ด Java
- ไลบรารีแบบคงที่ C/C++
game-activity_staticจะรวมอยู่ใน GameActivity เวอร์ชัน 1.2.2 ขึ้นไป - ซอร์สโค้ด C/C++ (ในโฟลเดอร์
/prefab)
วิธีการผสานรวมที่ลิงก์จากหน้านี้ถือว่าคุณใช้ Prefab ในระบบบิลด์ได้ มิฉะนั้น คุณสามารถคัดลอกซอร์สโค้ดที่แพ็กไว้ในโฟลเดอร์ prefab/modules/game-activity/include ลงในระบบบิลด์ แล้วทำตามขั้นตอนการผสานรวมที่จำเป็น โครงสร้างไฟล์ที่คล้ายกันมีอยู่สำหรับการเผยแพร่ใน androidx สำหรับไลบรารี Android Jetpack โดยค่าเริ่มต้น Gradle จะแตกไฟล์ AAR ในไดเรกทอรีแคช (~/.gradle/caches/...) คุณค้นหาซอร์สโค้ด C/C++ ได้โดยค้นหา prefab/modules/game-activity/include
และเลือกตำแหน่งในเวอร์ชันที่ต้องการเผยแพร่
ดูวิธีการผสานรวมโดยใช้ไลบรารี Jetpack ได้ที่เริ่มต้นใช้งาน GameActivity
เนื้อหาของซอร์สโค้ด AOSP
AOSP มีซอร์สโค้ดล่าสุดอยู่เสมอ ทำตาม[วิธีการสร้าง][GameActivity implementation]{: .external} เพื่อสร้างรีลีสของคุณเอง หรือผสานรวมแหล่งที่มาเข้ากับสภาพแวดล้อมการสร้างโดยตรง ระบบจะบันทึกซอร์สโค้ด C/C++ ไว้ในโครงสร้างไฟล์ที่คล้ายกับไลบรารี Jetpack
คู่มือการผสานรวม
ทำตามคำแนะนำเหล่านั้นเพื่อผสานรวม GameActivity เข้ากับแอปพลิเคชันของคุณ
แหล่งข้อมูลเพิ่มเติม
ดูข้อมูลเพิ่มเติมเกี่ยวกับ GameActivity ได้ที่หัวข้อต่อไปนี้
- บันทึกประจำรุ่นของ GameActivity และ AGDK
- ใช้ GameTextInput ใน GameActivity
- คำแนะนำในการย้ายข้อมูล NativeActivity
- เอกสารประกอบข้อมูลอ้างอิงของ GameActivity
- การใช้งาน GameActivity
ความคิดเห็น
หากต้องการรายงานข้อบกพร่องหรือขอฟีเจอร์ใหม่สำหรับ GameActivity ให้ใช้ เครื่องมือติดตามปัญหาของ GameActivity