API ProfilingManager cho phép bạn thu thập hồ sơ hiệu suất của người dùng thực, chẳng hạn như dấu vết hệ thống và tệp báo lỗi khối xếp Java, từ các thiết bị chính thức chạy Android 15 (API cấp 35) trở lên. Công cụ này hỗ trợ hai cơ chế thu thập: hồ sơ do ứng dụng điều khiển, trong đó ứng dụng của bạn kiểm soát việc thu thập hồ sơ từ bắt đầu đến dừng (Android 15 trở lên) và hồ sơ dựa trên điều kiện kích hoạt, trong đó hệ thống xử lý việc thu thập để phản hồi các sự kiện mà bạn đăng ký quan tâm trên Android 16 (cấp độ API 36) trở lên.
Hướng dẫn này bao gồm các chủ đề sau:
- Ghi lại hồ sơ: Cách bắt đầu và dừng ghi lại hồ sơ do ứng dụng điều khiển và cách đăng ký ghi lại hồ sơ dựa trên điều kiện kích hoạt.
- Truy xuất và tải hồ sơ lên: Cách truy xuất hồ sơ trên thiết bị bằng
adbhoặc tải hồ sơ lên ở chế độ nền bằngWorkManager. - Phân tích hồ sơ: Cách trực quan hoá hồ sơ trong giao diện người dùng Perfetto, truy vấn hồ sơ bằng PerfettoSQL, phân tích hàng loạt dấu vết và phân tích hồ sơ bằng AI.
- Nghiên cứu điển hình về gỡ lỗi: Cách áp dụng
ProfilingManagertừ đầu đến cuối để gỡ lỗi ANR và gỡ lỗi sự cố OOM. - Hành vi thu thập và giới hạn tốc độ: Cách tìm hiểu hành vi thu thập và giới hạn tốc độ trong giai đoạn phát hành chính thức.
- Gỡ lỗi cục bộ: Cách sử dụng lệnh gỡ lỗi để phân tích tài nguyên cục bộ.
Các loại hồ sơ được hỗ trợ
ProfilingManager hỗ trợ thu thập một số loại hồ sơ để bạn có thể nhắm đến các vấn đề cụ thể về hiệu suất trong ứng dụng. Bạn có thể định cấu hình yêu cầu trực tiếp bằng API nền tảng hoặc bằng trình tạo AndroidX Core:
- Dấu vết hệ thống: Được ghi lại bằng
PROFILING_TYPE_SYSTEM_TRACEhoặcSystemTraceRequestBuilder.- Hữu ích cho việc chẩn đoán hiện tượng giật, phân tích độ trễ và gỡ lỗi hiệu suất chung.
- Tệp báo lỗi vùng nhớ Java: Được ghi lại bằng
PROFILING_TYPE_JAVA_HEAP_DUMPhoặcJavaHeapDumpRequestBuilder.- Chụp nhanh biểu đồ và kích thước đối tượng vùng nhớ khối xếp Java của ứng dụng để phát hiện lỗi rò rỉ bộ nhớ và tối ưu hoá bộ nhớ.
- Hồ sơ ảnh chụp nhanh của vùng nhớ khối xếp: Được thu thập bằng
PROFILING_TYPE_HEAP_PROFILEhoặcHeapProfileRequestBuilder.- Theo dõi quá trình phân bổ bộ nhớ gốc (hoặc Java, không bắt buộc) theo thời gian để giúp tối ưu hoá mức sử dụng bộ nhớ.
- Lấy mẫu ngăn xếp: Được ghi lại bằng
PROFILING_TYPE_STACK_SAMPLINGhoặcStackSamplingRequestBuilder.- Lấy mẫu ngăn xếp lệnh gọi luồng để giúp bạn hiểu rõ quá trình thực thi mã và phân tích mức sử dụng CPU.
Tích hợp ProfilingManager với một tác nhân AI
Bạn có thể sử dụng tác nhân lập trình AI để tích hợp ProfilingManager vào ứng dụng của mình.
Ví dụ: chạy câu lệnh sau trong tác nhân lập trình AI để thiết lập
bộ sưu tập trình kích hoạt Lỗi ứng dụng không phản hồi (ANR), thay thế
</path/to/codebase> bằng đường dẫn đến ứng dụng của bạn:
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.
Bạn có thể điều chỉnh câu lệnh này để thiết lập các trình kích hoạt hệ thống khác (chẳng hạn như TRIGGER_TYPE_OOM) hoặc định cấu hình bản ghi hồ sơ do ứng dụng điều khiển bằng hướng dẫn lập hồ sơ do ứng dụng điều khiển. Sau khi tích hợp, hãy kiểm thử chế độ thiết lập của bạn trên thiết bị cục bộ bằng các lệnh gỡ lỗi để lập hồ sơ cục bộ và phân tích hồ sơ đã thu thập bằng một tác nhân AI.