Memory Advice API เป็น API ดั้งเดิมเวอร์ชันทดลองที่ช่วยให้แอป Android ใช้หน่วยความจำได้ภายในขีดจำกัดด้านความปลอดภัย API จะทำเช่นนี้ได้โดยการประมาณปริมาณทรัพยากรหน่วยความจำที่ใช้งานอยู่ และ จากนั้นจะแจ้งให้แอปทราบเมื่อมีการเกินขีดจำกัดบางอย่าง นอกจากนี้ API ยังรายงานเปอร์เซ็นต์การใช้งานหน่วยความจำโดยประมาณไปยังแอปของคุณได้โดยตรงด้วย
การประมาณที่ API ให้ไว้จะช่วยพิจารณาว่าแอปควรปรับการใช้หน่วยความจำเมื่อใด หรือค้นหาจุดที่ควรปรับปรุงในแอปเวอร์ชันต่อๆ ไป การปรับอาจรวมถึงการเปลี่ยนแปลงใดๆ ที่ส่งผลต่อการใช้หน่วยความจำ เช่น การลดรายละเอียดและคุณภาพของชิ้นงานภาพและเสียง
ทรัพยากรหน่วยความจำโดยประมาณรวมถึงหน่วยความจำฮีปแบบเนทีฟที่จัดสรรโดย malloc และหน่วยความจำกราฟิกที่จัดสรรโดย OpenGL ES และ Vulkan Graphics API ซึ่งทำให้ Memory Advice API เหมาะสำหรับเกมและแอปที่ใช้กราฟิกจำนวนมาก
ค่าประมาณจะพิจารณาจากสิ่งต่อไปนี้
- เมตริกอุปกรณ์ที่ API รวบรวม
- ข้อมูลแมชชีนเลิร์นนิงจากอุปกรณ์
- การทดสอบอุปกรณ์
ที่ระดับ API นั้น Memory Advice API จะกำหนดชุดสถานะคำแนะนำเกี่ยวกับหน่วยความจำ และสื่อสารสถานะเหล่านั้นกับแอปด้วยชุดฟังก์ชัน
เริ่มต้นใช้งาน เริ่มต้นใช้งานสำหรับเกม Unity
การกระจาย
Memory Advice API เป็นส่วนหนึ่งของ Android Games Development Kit (AGDK) และเผยแพร่ผ่านช่องทางต่อไปนี้
- ไบนารีที่เผยแพร่ในไลบรารี Android Games Jetpack
- ไบนารีที่เผยแพร่ในหน้าดาวน์โหลด AGDK
- ซอร์สโค้ดใน AOSP
เกมควรใช้การเปิดตัว Memory Advice API ที่ แนะนำสำหรับสภาพแวดล้อมการสร้าง สำหรับ Android Studio เราขอแนะนำให้ใช้ Jetpack สำหรับ Android Game Development Extension (AGDE) เราขอแนะนำให้เผยแพร่ในหน้าดาวน์โหลด AGDK
ฟีเจอร์
ส่วนนี้จะอธิบายฟีเจอร์ของ Memory Advice API
สถานะหน่วยความจำ
API จะรายงานสถานะหน่วยความจำต่อไปนี้ไปยังแอป
- MEMORYADVICE_STATE_OK
- MEMORYADVICE_STATE_APPROACHING_LIMIT
- MEMORYADVICE_STATE_CRITICAL
โปรดดูรายละเอียดที่หน้าข้อมูลอ้างอิง memoryadvice_memorystate
การรายงานสถานะหน่วยความจำ
API รองรับการรายงานสถานะหน่วยความจำผ่านกลไกการสำรวจหรือกลไกการเรียกกลับ
การสำรวจ:
แอปเรียกใช้ API ได้ทุกเมื่อเพื่อดึงข้อมูลสถานะหน่วยความจำCallback:
แอปสามารถลงทะเบียนฟังก์ชัน Callback กับ Memory Advice API ได้ แอปจะระบุความถี่ในการเรียกสำหรับการเรียกกลับ API ใช้ความถี่เพื่อกำหนดเวลาที่จะเรียกใช้โค้ดเรียกกลับเมื่อหน่วยความจำของแอปพลิเคชัน ใกล้ถึงขีดจำกัดที่ปลอดภัยหรือเหลือน้อยมาก ระบบจะไม่เรียกใช้การเรียกกลับ หากสภาพหน่วยความจำปลอดภัย ระบบจะเรียกใช้การเรียกกลับจากเธรดของตัวเอง ไม่ใช่จากเธรดที่เป็นของแอป
ข้อควรพิจารณาเกี่ยวกับค่าใช้จ่ายและความถี่ในการเรียก
Memory Advice API ใช้เวลาในการคำนวณเพื่อสร้างสถานะหน่วยความจำ ค่าใช้จ่ายจะแตกต่างกันไปตามอุปกรณ์ แต่โดยปกติจะอยู่ระหว่าง 1 มิลลิวินาทีถึง 3 มิลลิวินาที ต่อการโทร คุณควรพิจารณาค่าใช้จ่ายนี้เมื่อกำหนดความถี่ ในการสำรวจสถานะหน่วยความจำ หรือความถี่ที่จะระบุสำหรับการเรียกกลับสถานะหน่วยความจำ
ข้อกำหนด
ข้อกำหนดของอุปกรณ์
- Android 4.4 (API ระดับ 19) ขึ้นไป
ข้อกำหนดของแอป
API รองรับเฉพาะแอปเนทีฟ (แอปที่เขียนด้วย C/C++ เป็นหลัก)
API รองรับเฉพาะอุปกรณ์จริงเท่านั้น ไม่รองรับโปรแกรมจำลอง
ข้อกำหนดเกี่ยวกับเวอร์ชัน NDK
การเปิดตัว Memory Advice API รองรับ NDK เวอร์ชันยอดนิยมส่วนใหญ่ โปรดดูรายการ NDK ที่รองรับในบันทึกประจำรุ่น
แหล่งข้อมูลเพิ่มเติม
- บันทึกประจำรุ่นของ Memory Advice API
- เอกสารประกอบข้อมูลอ้างอิงของ Memory Advice API
- ตัวอย่างคำแนะนำเกี่ยวกับหน่วยความจำใน GitHub
- ซอร์สโค้ดของ Memory Advice API
ปัญหาและความคิดเห็น
Memory Advice API อยู่ในเวอร์ชันเบต้าและยินดีรับฟังความคิดเห็น หากคุณมีข้อเสนอแนะหรือพบปัญหาขณะใช้ API โปรดสร้างปัญหาใน IssueTracker