หัวข้อนี้จะอธิบายวิธีผสานรวม Android Performance Tuner หรือที่เรียกว่า ไลบรารี Tuning Fork เพื่อบันทึกและอัปโหลดข้อมูลเวลาที่ใช้ในการแสดงผลเฟรมจากโฆษณาเนทีฟ (C และ C++) เครื่องมือเกม
สำหรับเครื่องมือเกมของ Unity โปรดดูที่ สำหรับ Unity
ฉากหลัง
องค์ประกอบสำคัญของประสบการณ์การเล่นเกมคือประสิทธิภาพการแสดงผล การแสดงภาพ ประสิทธิภาพการทำงานจะมาจากข้อมูล 2 อย่างต่อไปนี้
- อัตราเฟรม: ความถี่ที่วาดเฟรม
- การตั้งค่าคุณภาพของกราฟิก: ระดับความแม่นยำในการนำเสนอเฟรม รวมทั้งความแม่นยำในการจำลองและกราฟิก
สําหรับเกม การแสดงผลที่ดีจะได้รับประสิทธิภาพดังนี้
- แสดงอัตราเฟรมที่คงที่และสม่ำเสมอ (ซึ่งก็คือเปอร์เซ็นต์ของ เฟรมที่แสดงผลตามความถี่ที่ต้องการ)
- การแสดงผลเฟรมด้วยความถี่สูงสุดที่เป็นไปได้ขณะที่คง ความเสถียร ซึ่งโดยทั่วไปจะอยู่ที่ 30 หรือ 60 FPS ขึ้นอยู่กับประเภทของเกม
- เพิ่มระดับรายละเอียดสูงสุดสำหรับผู้ใช้ตามขนาดหน้าจอและ ความหนาแน่นขณะที่ยังคงได้อัตราเฟรมที่คงที่ตามที่ต้องการ
ไลบรารี Android Frame Pacing จะจำกัดอัตรา ความแปรปรวนของเวลาเฟรม ให้อัตราเฟรมที่เสถียรสำหรับเกม ส่วนที่เหลือ ความแปรปรวนของเวลาที่ใช้ในการแสดงผลเฟรมเกิดจากระดับของรายละเอียดที่แสดงในระหว่าง ฉากต่างๆ ในเกมเพลย์และความสามารถในการแสดงภาพกราฟิกของอุปกรณ์ การใช้ Android Performance Tuner คุณสามารถระบุเวลาระหว่างเกมเพลย์ได้เมื่อเวลาที่ใช้ในการแสดงผลเฟรม ช้ากว่าหรือเร็วกว่าเป้าหมายของคุณ แล้วเชื่อมโยงปัญหาเหล่านี้และ โอกาส:
- การตั้งค่าคุณภาพเฉพาะ
- ฉากที่เจาะจงในเกม
- รุ่นอุปกรณ์หรือข้อมูลจำเพาะของอุปกรณ์
บันทึกและอัปโหลดข้อมูล
ห้องสมุด Tuning Fork อาศัยหนึ่งใน ขีดฟังก์ชัน จะถูกเรียกแต่ละเฟรมโดยไลบรารี Android Frame Pacing ภายในไลบรารี ข้อมูลเครื่องหมายถูกนี้จะถูกรวบรวมไว้ในฮิสโตแกรมซึ่งจะเป็นเป็นระยะ มีการอัปโหลดไปยัง Google Play ผ่านปลายทาง HTTP เครื่องหมายถูกแต่ละตัวจะได้รับการบันทึกเป็น ถูกเชื่อมโยงกับคีย์เครื่องมือและ annotation คำจำกัดความที่คุณระบุในโปรโตคอล ไฟล์บัฟเฟอร์
แป้นเครื่องดนตรี
คีย์เครื่องมือระบุตำแหน่งในเฟรมที่เครื่องหมายถูกมาจากไหนและ
จำนวนเต็มที่ต้องส่งไปยังการเรียกใช้ฟังก์ชันเครื่องหมายถูกแต่ละครั้ง การกำหนดอัตราการแสดงโฆษณาในเฟรมของ Android
ไลบรารีใช้ชุดคีย์เครื่องมือที่กำหนดไว้ล่วงหน้า ซึ่งกำหนดไว้ใน swappy_common.h
คุณสามารถระบุคีย์เครื่องมือของคุณเองได้หากไม่ได้ใช้ Frame Pacing
ไลบรารี
คำอธิบายประกอบ
คำอธิบายประกอบจะให้ข้อมูลตามบริบทเกี่ยวกับสิ่งที่เกมกำลังทำอยู่เมื่อมีการ ระบบจะบันทึกเครื่องหมายถูก ตัวอย่างเช่น คำอธิบายประกอบสามารถระบุ ดังต่อไปนี้:
- ระดับของเกมปัจจุบัน
- "เจ้านายใหญ่" อยู่บนหน้าจอ
- ข้อมูลสถานะเกมอื่นๆ ที่เกี่ยวข้อง
โปรโตคอล com.google.tuningfork.Annotation
จะกำหนดคำอธิบายประกอบ
ข้อความบัฟเฟอร์ ในการตั้งค่าคำอธิบายประกอบปัจจุบัน คุณต้องส่งการเรียงอันดับ
ข้อความที่คุณกำหนด
TuningFork_setCurrentAnnotation()
จากนั้นข้อมูลเครื่องหมายถูกที่ตามมาทั้งหมดจะถูกเชื่อมโยงกับคำอธิบายประกอบนี้จนกระทั่งอีกรายการหนึ่ง
ตั้งค่าคำอธิบายประกอบแล้ว ต่อไปนี้เป็นตัวอย่างคำจำกัดความโปรโตสำหรับคำอธิบายประกอบ
import "tuningfork.proto"
enum Level {
INVALID_LEVEL = 0;
Level_1 = 1;
Level_2 = 2;
Level_3 = 3;
}
message Annotation {
optional Level level = 1;
}
พารามิเตอร์ความแม่นยำ
พารามิเตอร์ความแม่นยำจะส่งผลต่อประสิทธิภาพและคุณภาพกราฟิกของ
เช่น ระดับความละเอียดของ Mesh, ความละเอียดของพื้นผิว และการลดรอยหยัก
เช่นเดียวกับคำอธิบายประกอบ พารามิเตอร์ความแม่นยำจะกำหนดโดยใช้
ข้อความบัฟเฟอร์โปรโตคอล com.google.tuningfork.FidelityParams
รายการต่อไปนี้คือ
ตัวอย่างคำจำกัดความ Proto สำหรับพารามิเตอร์ความแม่นยำ
import "tuningfork.proto"
message FidelityParams {
int32 texture_quality_level = 1;
int32 shadow_resolution = 2;
float terrain_details_percent = 3;
int32 post_processing_effects_level = 4;
}
ในการเริ่มต้น Tuning Fork คุณจะผ่านการตรวจสอบการเรียงอันดับ พารามิเตอร์ที่เกมใช้ คุณสามารถเปลี่ยนพารามิเตอร์เหล่านี้ได้ในกรณีต่างๆ เช่น ผู้ใช้เปลี่ยนการตั้งค่าการแสดงภาพเกมและข้อมูลที่อัปโหลดครั้งต่อๆ ไปของคุณ เชื่อมโยงกับพารามิเตอร์ใหม่ด้วย
เพื่อให้ Google Play เข้าใจคำอธิบายประกอบและพารามิเตอร์ความแม่นยำ ที่คุณกำหนด ไฟล์บัฟเฟอร์โปรโตคอลที่เก็บคำจำกัดความเหล่านี้จะต้องเป็น รวมอยู่ใน APK ของเกม พร้อมกับการตั้งค่าการเริ่มต้น และคุณยัง ต้องระบุค่าเริ่มต้นสำหรับชุดค่าผสมของพารามิเตอร์ความแม่นยำทั่วไป APK ของคุณเพื่อให้มีการแบ่งข้อมูลตาม APK ใน UI ของ Google Play สำหรับข้อมูลเพิ่มเติม โปรดดู กำหนดระดับคุณภาพ
หน่วยความจำและโอเวอร์เฮดของ CPU
หน่วยความจำทั้งหมดที่ไลบรารี Tuning Fork ใช้จะได้รับการจัดสรรที่ เพื่อหลีกเลี่ยง เรื่องน่าประหลาดใจระหว่างการเล่นเกม ขนาดของข้อมูล ขึ้นอยู่กับจำนวนคีย์เครื่องมือ จำนวนคำอธิบายประกอบที่เป็นไปได้ และ จำนวนที่ฝากข้อมูลในแต่ละฮิสโตแกรม จะเท่ากับผลคูณของจำนวนทั้งหมด 4 ไบต์สำหรับที่เก็บข้อมูลแต่ละชุด และยังมีฮิสโตแกรมอีก 2 ชุด ในรูปแบบการบัฟเฟอร์ 2 รอบ
โดยการส่งจะอยู่ในชุดข้อความแยกต่างหากและไม่บล็อกการเรียกใช้เครื่องหมายถูก หากไม่ใช่ การเชื่อมต่อการอัปโหลดพร้อมใช้งาน การส่งจะอยู่ในคิวสำหรับการอัปโหลดในภายหลัง
มีค่าใช้จ่ายในการประมวลผลการเรียกฟังก์ชันเห็บเพียงเล็กน้อย โดยใช้เพียงแค่ จะคำนวณดัชนีในอาร์เรย์ของที่เก็บข้อมูลฮิสโตแกรมและเพิ่ม จำนวนเต็ม
ผสานรวมไลบรารี Tuning Fork
คู่มือการผสานรวมนี้แบ่งออกเป็น 2 ส่วน ส่วนแรกจะอธิบายถึง เพื่อทำการทดสอบแบบครบวงจรโดยใช้แอปเดโมและ Google Play Console ส่วนที่ 2 จะอธิบายถึงวิธีผสานรวมไลบรารี Tuning Fork ไว้ใน เชนเครื่องมือของคุณ รวมถึงวิธีใช้ฟังก์ชันที่ไลบรารีมีให้ คลิก ลิงก์ถัดไปด้านล่างเพื่อเริ่มต้น