Pratik Rehber: ADB ve Android Studio ile Logcat Alma
Kısa cevap: Geliştirici modunu ve USB hata ayıklamayı etkinleştirin, cihazı bağlayın (adb devices), ardından akış için adb logcat veya döküm için adb logcat -d > file komutunu kullanın; Android Studio'da Logcat penceresini açın; tam paket için adb bugreport kullanın.
Hazırlık ve Bağlantı
- Cihazda Geliştirici Seçenekleri ve USB Hata Ayıklama'yı (veya kablosuz hata ayıklama için Kablosuz Hata Ayıklama'yı) etkinleştirin.
- USB ile bağlayın ve "USB hata ayıklamasına izin verilsin mi?" isteğini onaylayın.
- Bağlantıyı kontrol edin:
- adb devices — listeyi ve durumu gösterir (device/unauthorized).
- adb -s
shell getprop ro.build.version.release — gerekirse sürüm kontrolü.
İlk bağlantıda cihaz hata ayıklamaya izin isteyecektir: onaylayın. Durum unauthorized ise kabloyu yeniden takın ve telefon ekranını kontrol edin.
adb logcat Komutları — Pratik Örnekler
Kopyalanabilir temel komutlar ve faydalı şablonlar:
-
Zaman damgalarıyla gerçek zamanlı akış: adb logcat -v time
-
Akışı bilgisayardaki bir dosyaya kaydetme (durdurma Ctrl+C): adb logcat -v time > device-log-$(date +%F_%T).txt
-
Mevcut arabelleklerin dökümü ve çıkış: adb logcat -d -v threadtime > dump-logs.txt
-
Test öncesi arabelleği temizleme: adb logcat -c
-
Günlüğü cihaza yazma ve ardından çekme: adb logcat -f /sdcard/myapp-log.txt -v time adb pull /sdcard/myapp-log.txt ./myapp-log.txt
-
Sadece hataları görüntüleme: adb logcat *:E
-
Etiketle filtreleme: adb logcat MyTag:D *:S
-
PID ile filtreleme (grep'ten daha güvenilir): adb logcat --pid $(adb shell pidof -s com.example.app)
-
Son N satırı görüntüleme: adb logcat -t 200 -v threadtime
Not: Seçenekler ve bayrak desteği platform-tools sürümüne ve cihaza bağlıdır; gerekirse adb logcat --help çalıştırın.
Çökme etrafındaki günlükleri yakalamak için: adb logcat -v time > log.txt başlatın, sorunu yeniden oluşturun, durdurun ve kesin zaman damgasına göre arama yapın.
Android Studio ve Tam bugreport Toplama
Android Studio'da Logcat:
- View → Tool Windows → Logcat. Cihazı ve işlemi (Process) seçin — IDE otomatik olarak işlemin günlüklerini gösterecektir.
- Seviye, etiket ve metne göre filtreler kullanın; kaydedilen filtreler tekrarlayan incelemeleri hızlandırır.
- Dışa aktarma: mesajları seçin → Save as.
Tam bir bugreport toplama:
- adb bugreport ./bugreport-$(date +%F_%T).zip Dosya birkaç logcat arabelleği, dumpsys, ANR izleri ve sistem bilgisi içerir — mühendisler için faydalıdır. Oluşturma zaman alır ve boyutu büyük olabilir.
Normal bir uygulamadan android.permission.READ_LOGS üzerinden başkalarının günlüklerini okumasını isteyemezsiniz — erişim sistem/imzalı uygulamalarla sınırlıdır. Uzaktan günlük toplamak için uygulama içinde açık kullanıcı onayıyla günlük tutun.
Sık Karşılaşılan Hatalar
- adb devices'ta unauthorized durumu — cihaz ekranını açın ve erişimi onaylayın.
- Gerekli satırlar "kayıp" — günlük arabellekleri sınırlıdır, önceden temizleyin ve/veya dosyaya yazın.
- Yanlış filtreleme — güvenilirlik için paket adına grep yerine --pid kullanın.
- Geçersiz zaman damgası — kolay arama için -v time veya -v threadtime seçin.
SSS
-
Sadece kendi uygulamamın günlüklerini nasıl alırım?
adb logcat --pid $(adb shell pidof -s com.example.app) kullanın veya Android Studio'da işlemi seçin. -
Hızlıca toplayıp mühendise nasıl gönderirim?
adb bugreport ./bugreport--$(date +%F_%T).zip — ardından arşivi iletin. -
Uygulama kodundan sistem günlüklerini okuyabilir miyim?
Hayır — READ_LOGS üçüncü taraf uygulamalar için mevcut değildir. Günlükleri uygulama içinde toplayın ve anlaşmış kanal üzerinden gönderin.
Gerekirse, komutlarla kompakt bir cheat-sheet veya otomatik günlük toplama için bir betik (bash/PowerShell) hazırlayabilirim. Tercih ettiğiniz platformu belirtin.