ProfilingManager API'si, Android 15 (API düzeyi 35) ve sonraki sürümleri çalıştıran üretim cihazlarından sistem izleri ve Java yığın dökümleri gibi gerçek kullanıcı performans profillerini toplamanıza olanak tanır. İki toplama mekanizmasını destekler: Uygulamanızın, profillerin toplanmasını baştan sona kontrol ettiği uygulama tabanlı profiller (Android 15 ve sonraki sürümler) ve sistemin, Android 16 (API düzeyi 36) ve sonraki sürümlerde ilgilendiğiniz etkinliklere yanıt olarak yakalama işlemini gerçekleştirdiği tetikleyici tabanlı profiller.
Bu kılavuzda aşağıdaki konular ele alınmaktadır:
- Profilleri yakalama: Uygulama tabanlı profil kayıtlarını başlatma ve durdurma, tetikleyici tabanlı profil kayıtlarına kaydolma.
- Profilleri alma ve yükleme:
adbile profilleri yerel olarak alma veyaWorkManagerile arka planda yükleme. - Profilleri analiz etme: Perfetto kullanıcı arayüzünde profilleri görselleştirme, PerfettoSQL ile profilleri sorgulama, izleri toplu olarak analiz etme ve profilleri yapay zeka ile analiz etme.
- Hata ayıklama örnek olayları: ANR hatasını ayıklamak ve OOM kilitlenmesini ayıklamak için
ProfilingManageraracını uçtan uca nasıl uygulayacağınızı öğrenin. - Sıklık sınırlaması ve toplama davranışı: Üretimde sıklık sınırlaması ve toplama davranışını anlama.
- Yerel hata ayıklama: Yerel profil oluşturma için hata ayıklama komutlarını kullanma.
Desteklenen profil türleri
ProfilingManager, uygulamanızdaki belirli performans sorunlarını hedefleyebilmeniz için çeşitli profil türlerinin toplanmasını destekler. İstekleri doğrudan platform API'lerini veya AndroidX Core oluşturucularını kullanarak yapılandırabilirsiniz:
- Sistem izleri:
PROFILING_TYPE_SYSTEM_TRACEveyaSystemTraceRequestBuilderkullanılarak yakalanır.- Takılmaları teşhis etmek, gecikmeyi analiz etmek ve genel performans hatalarını ayıklamak için kullanışlıdır.
- Java yığın dökümleri:
PROFILING_TYPE_JAVA_HEAP_DUMPveyaJavaHeapDumpRequestBuilderkullanılarak yakalanır.- Bellek sızıntısı tespiti ve bellek optimizasyonu için uygulamanızın Java yığın nesne grafiğinin ve boyutlarının anlık görüntüsünü yakalar.
- Öbek profilleri:
PROFILING_TYPE_HEAP_PROFILEveyaHeapProfileRequestBuilderkullanılarak yakalanır.- Bellek kullanımını optimize etmeye yardımcı olmak için yerel (veya isteğe bağlı olarak Java) bellek ayırmalarını zaman içinde izler.
- Yığın örnekleme:
PROFILING_TYPE_STACK_SAMPLINGveyaStackSamplingRequestBuilderkullanılarak yakalanır.- Kod yürütmeyi anlamanıza ve CPU kullanımını analiz etmenize yardımcı olmak için iş parçacığı çağrı yığınlarını örnekler.
ProfilingManager'ı yapay zeka ajanıyla entegre etme
ProfilingManager SDK'sını uygulamanıza entegre etmek için yapay zeka kodlama temsilcisini kullanabilirsiniz.
Örneğin, Uygulama Yanıt Vermiyor (ANR) tetikleyici koleksiyonunu ayarlamak için yapay zeka kodlama temsilcinizde aşağıdaki istemi çalıştırın ve </path/to/codebase> ifadesini uygulamanızın yoluyla değiştirin:
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.
Bu istemi diğer sistem tetikleyicilerini (ör. TRIGGER_TYPE_OOM) ayarlayacak şekilde uyarlayabilir veya uygulama tabanlı profil oluşturma kılavuzunu kullanarak uygulama tabanlı profil yakalamalarını yapılandırabilirsiniz. Entegrasyondan sonra, yerel profil oluşturma için hata ayıklama komutlarını kullanarak kurulumunuzu yerel olarak test edin ve toplanan profilleri bir yapay zeka ajanıyla analiz edin.