ภาพรวม

API ProfilingManager ช่วยให้คุณรวบรวมโปรไฟล์ประสิทธิภาพของผู้ใช้จริง เช่น การติดตามของระบบและฮีปดัมพ์ของ Java จากอุปกรณ์เวอร์ชันที่ใช้งานจริงที่ใช้ Android 15 (ระดับ API 35) ขึ้นไป โดยรองรับกลไกการรวบรวม 2 แบบ ได้แก่ โปรไฟล์ที่ขับเคลื่อนโดยแอปซึ่งแอปของคุณจะควบคุมการรวบรวมโปรไฟล์ตั้งแต่ต้นจนจบ (Android 15 ขึ้นไป) และโปรไฟล์ที่อิงตามทริกเกอร์ซึ่งระบบจะจัดการการบันทึกเพื่อตอบสนองต่อเหตุการณ์ที่คุณลงทะเบียนความสนใจไว้ใน Android 16 (ระดับ API 36) ขึ้นไป

คู่มือนี้ครอบคลุมหัวข้อต่อไปนี้

ประเภทโปรไฟล์ที่รองรับ

ProfilingManager รองรับการรวบรวมโปรไฟล์หลายประเภทเพื่อให้คุณกำหนดเป้าหมายข้อกังวลด้านประสิทธิภาพที่เฉพาะเจาะจงในแอปได้ คุณสามารถกำหนดค่าคำขอได้โดยตรงโดยใช้ API ของแพลตฟอร์มหรือใช้ AndroidX Core Builder ดังนี้

  • การติดตามของระบบ: บันทึกโดยใช้ PROFILING_TYPE_SYSTEM_TRACE หรือ SystemTraceRequestBuilder
    • มีประโยชน์สำหรับการวินิจฉัยความกระตุก การวิเคราะห์เวลาในการตอบสนอง และการแก้ไขข้อบกพร่องด้านประสิทธิภาพทั่วไป
  • ฮีปดัมป์ของ Java: บันทึกโดยใช้ PROFILING_TYPE_JAVA_HEAP_DUMP หรือ JavaHeapDumpRequestBuilder
    • จับภาพสแนปชอตของกราฟและขนาดออบเจ็กต์ฮีป Java ของแอปเพื่อตรวจหาหน่วยความจำรั่วไหลและเพิ่มประสิทธิภาพหน่วยความจำ
  • โปรไฟล์ฮีป: บันทึกโดยใช้ PROFILING_TYPE_HEAP_PROFILE หรือ HeapProfileRequestBuilder
    • ติดตามการจัดสรรหน่วยความจำแบบเนทีฟ (หรือ Java (ไม่บังคับ)) เมื่อเวลาผ่านไปเพื่อช่วยเพิ่มประสิทธิภาพการใช้งานหน่วยความจำ
  • การสุ่มตัวอย่างสแต็ก: บันทึกโดยใช้ PROFILING_TYPE_STACK_SAMPLING หรือ StackSamplingRequestBuilder
    • สุ่มตัวอย่างสแต็กการเรียกใช้เทรดเพื่อช่วยให้คุณเข้าใจการเรียกใช้โค้ดและวิเคราะห์การใช้งาน CPU

ผสานรวม ProfilingManager กับ AI Agent

คุณสามารถใช้ Agent การเขียนโค้ด AI เพื่อผสานรวม ProfilingManager เข้ากับแอปได้ เช่น เรียกใช้พรอมต์ต่อไปนี้ใน Agent การเขียนโค้ด AI เพื่อตั้งค่าคอลเล็กชันทริกเกอร์แอปพลิเคชันไม่ตอบสนอง (ANR) โดยแทนที่ </path/to/codebase> ด้วยเส้นทางไปยังแอปของคุณ

Read https://developer.android.com/topic/performance/tracing/profiling-manager/trigger-based-capture
and https://developer.android.com/topic/performance/tracing/profiling-manager/upload-worker
and integrate ProfilingManager ANR trigger collection (TRIGGER_TYPE_ANR) into my
app at </path/to/codebase>, including registering the result listener after app
startup completes and scheduling a WorkManager upload job when a profile is
received.

คุณสามารถปรับพรอมต์นี้เพื่อตั้งค่าทริกเกอร์ระบบอื่นๆ (เช่น TRIGGER_TYPE_OOM) หรือกำหนดค่าการบันทึกโปรไฟล์ที่ขับเคลื่อนโดยแอปโดยใช้คู่มือการสร้างโปรไฟล์ที่ขับเคลื่อนโดยแอป หลังจากผสานรวมแล้ว ให้ทดสอบการตั้งค่าในเครื่องโดยใช้คำสั่งแก้ไขข้อบกพร่องสำหรับการสร้างโปรไฟล์ในเครื่อง และวิเคราะห์โปรไฟล์ที่รวบรวมไว้ด้วย AI Agent