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 อื่นๆ ได้อย่างราบรื่นActionBar
Fragment
และอื่นๆ พร้อมให้บริการ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 และแพ็กเกจ ZIP ของ AGDK
GameActivity จะได้รับการเผยแพร่พร้อมกับ AAR โดยใช้ไลบรารี Jetpack และช่องแพ็กเกจ zip ของ AGDK 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 มีซอร์สโค้ดล่าสุดอยู่เสมอ ทำตามวิธีการสร้างเพื่อสร้างรุ่นของคุณเอง หรือผสานรวมแหล่งที่มาเข้ากับ สภาพแวดล้อมการสร้างโดยตรง ซอร์สโค้ด C/C++ จะบันทึกอยู่ในโครงสร้างไฟล์ คล้ายกับโครงสร้างของไลบรารี Jetpack และแพ็กเกจ ZIP ของ AGDK
คู่มือการผสานรวม
ทำตามคำแนะนำเหล่านั้นเพื่อผสานรวม GameActivity
เข้ากับแอปพลิเคชันของคุณ
แหล่งข้อมูลเพิ่มเติม
ดูข้อมูลเพิ่มเติมเกี่ยวกับ GameActivity
ได้ที่หัวข้อต่อไปนี้
- บันทึกประจำรุ่นของ GameActivity และ AGDK
- ใช้ GameTextInput ใน GameActivity
- คำแนะนำในการย้ายข้อมูล NativeActivity
- เอกสารประกอบข้อมูลอ้างอิงของ GameActivity
- การใช้งาน GameActivity
ความคิดเห็น
หากต้องการรายงานข้อบกพร่องหรือขอฟีเจอร์ใหม่สำหรับ GameActivity ให้ใช้ เครื่องมือติดตามปัญหาของ GameActivity