Hata Ayıklama ve Profil Oluşturma
Android Studio'nun hata ayıklama ve profil oluşturma araçlarında uzmanlaşın: kesme noktaları, Logcat, Timber, Memory Profiler, LeakCanary, CPU Profiler, Network Inspector ve Layout Inspector.
Hata Ayıklama ve Profil Oluşturma, CoddyKit'te ücretsiz bir Android Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Android Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Android Academy kursu toplamda 4 dersten oluşur.
Hata Ayıklamaya Genel Bakış
Hata ayıklama, hataları bulup düzeltme işlemidir. Android Studio güçlü araçlar sunar:
- Hata ayıklayıcı — yürütmeyi duraklatma, değişkenleri inceleme, kodda adım adım ilerleme
- Logcat — cihazdan gelen gerçek zamanlı günlük çıktısı
- Düzen Denetçisi — canlı kullanıcı arayüzü hiyerarşisini inceleme
- Android Profiler — CPU, bellek ve ağ analizi
- Veritabanı Denetçisi — Room veritabanlarını canlı olarak görüntüleme ve sorgulama
Logcat — İlk Hata Ayıklama Aracınız
Logcat'e mesaj yazdırmak için Log kullanın. Günlüklerinizi filtrelemek için bir TAG kullanın:
import android.util.Log
class UserRepository {
companion object {
private const val TAG = "UserRepo"
}
fun fetchUsers() {
Log.d(TAG, "fetchUsers() called") // Debug
Log.i(TAG, "Fetching ${users.size} users") // Info
Log.w(TAG, "Cache is empty") // Warning
Log.e(TAG, "Network error: $exception") // Error
}
}Timber — Daha İyi Günlük Kaydı
Timber, Log üzerine kurulmuş ince bir sarmalayıcıdır; yayın derlemelerindeki günlük çağrılarını kaldırır ve sınıf adını otomatik olarak TAG olarak ekler:
// app/build.gradle:
// implementation 'com.jakewharton.timber:timber:5.0.1'
// In Application.onCreate():
if (BuildConfig.DEBUG) {
Timber.plant(Timber.DebugTree())
}
// Usage anywhere in the app (no TAG needed):
Timber.d("User loaded: %s", user.name)
Timber.e(exception, "Failed to fetch data")
Timber.w("Cache miss for key: %s", key)Kesme Noktaları ve Hata Ayıklayıcı
Android Studio'da kesme noktalarıyla hata ayıklama adımları:
- Bir kod satırının yanındaki oluk alanına (sol kenar boşluğuna) tıklayın; kırmızı bir nokta görünür
- Uygulamayı Run yerine Debug (böcek simgesi) ile çalıştırın
- Yürütme kesme noktasına ulaştığında duraklar
- Variables bölmesindeki değişkenleri inceleyin
- Satır satır ilerlemek için Step Over (F8), bir işleve girmek için Step Into (F7) kullanın
İfadeyi Değerlendir
Bir kesme noktasında duraklatılmışken, geçerli kapsamda Kotlin kodu çalıştırmak için Evaluate Expression (Alt+F8) kullanın. Yeniden başlatmadan varsayımlarınızı test edin:
list.sizeveuser.email.isNotBlank()değerlerini kontrol edin- Herhangi bir yöntemi çağırıp dönüş değerini görün
- Karmaşık nesneleri satır içinde inceleyin
Bellek Profili
Memory Profiler (View → Tool Windows → Profiler) ile bellek sızıntılarını bulun:
- Zaman içindeki yığın boyutunu izleyin; sürekli büyüme olası bir sızıntıya işaret eder
- Çöp toplamayı zorlayın ve belleğin azalıp azalmadığını gözlemleyin
- Hangi nesnelerin canlı olduğunu görmek için yığın dökümü alın
- Çöp toplayıcı tarafından temizlenmiş olması gereken Activity veya Fragment örneklerini arayın
LeakCanary — Otomatik Sızıntı Algılama
LeakCanary, bellek sızıntılarını otomatik olarak algılar ve hata ayıklama derlemelerinde bildirim olarak raporlar:
// app/build.gradle:
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.12'
// That's it — no code changes needed!
// LeakCanary auto-installs via ContentProvider.
// When a leak is detected, it shows a notification with the leak trace.
// Common causes to watch for:
// - Static references to Context/Activity
// - Not releasing ViewBinding in onDestroyView()
// - Listeners registered to singletons but not unregisteredCPU Profili
CPU Profiler ile performans darboğazlarını bulun:
- Bir eylemi gerçekleştirirken iz kaydı alın
- Hangi yöntemlerin en fazla zaman aldığını görmek için alev grafiğini görüntüleyin
- main thread üzerinde uzun süren işleri arayın; bunlar takılan bir kullanıcı arayüzüne neden olur
- Ağır hesaplamaları
Dispatchers.IOveyaDispatchers.Defaultüzerine taşıyın
Ağ Denetçisi
Ağ Denetçisi, uygulamanızın yaptığı tüm HTTP çağrılarını gerçek zamanlı olarak gösterir:
- İstek URL'sini, yöntemini, üst bilgilerini ve gövdesini görüntüleyin
- Yanıt kodunu, gövdesini ve zamanlamasını görüntüleyin
- Yavaşlayan veya başarısız olan istekleri belirleyin
- OkHttp ile (Retrofit tarafından kullanılır) ek yapılandırma gerektirmeden çalışır
View → Tool Windows → App Inspection → Network Inspector yoluyla erişin.
Veritabanı Denetçisi
Çalışan bir cihazdaki Room veritabanınızı canlı olarak inceleyin ve sorgulayın:
- Tabloları ve içeriklerini görüntüleyin
- Özel SQL sorguları çalıştırın
- Uygulamayı kullandıkça verilerin nasıl değiştiğini izleyin
App Inspection → Database Inspector yoluyla erişin. API 26 ve sonraki sürümlerde Room ile çalışır.
Düzen Denetçisi
Layout Inspector, kullanıcı arayüzü hiyerarşinizin canlı 3B görünümünü gösterir:
- Özniteliklerini (kenar boşlukları, iç dolgular, metin ve renk) görmek için herhangi bir görünümü seçin
- Üst üste binen görünümleri veya yanlış görünürlük ayarlarını fark edin
- Tahmin yürütmeden düzen sorunlarında hata ayıklayın
View → Tool Windows → Layout Inspector yoluyla erişin. Cihazda veya emülatörde çalışan bir uygulamaya bağlanın.
StrictMode
StrictMode, ana iş parçacığındaki yanlışlıkla yavaş işlemleri (disk okumaları ve ağ çağrıları) algılar; hata ayıklama derlemelerinde uygulamayı günlüğe kaydeder veya çökertebilir:
// In Application.onCreate() — debug builds only:
if (BuildConfig.DEBUG) {
StrictMode.setThreadPolicy(
StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork()
.penaltyLog() // log violations instead of crashing
.build()
)
}Hızlı Kontrol
Android hata ayıklama derlemelerinde, ek kod gerektirmeden bellek sızıntılarını otomatik olarak hangi araç algılar?
Özet: Hata Ayıklama ve Profil Oluşturma
Sorunları verimli bir şekilde bulun ve düzeltin:
- Logcat + Timber — hafif günlük kaydı; yayın derlemesinde otomatik olarak kaldırılır
- Kesme Noktaları + Hata Ayıklayıcı — canlı yürütmeyi duraklatıp inceleme
- Memory Profiler — yığın büyümesini ve sızıntıları algılama
- LeakCanary — yığın izlemeli otomatik sızıntı algılama
- CPU Profiler — ana iş parçacığındaki yavaş yöntemleri bulma
- Ağ Denetçisi — HTTP çağrılarını izleme
- Veritabanı Denetçisi — Room'u canlı olarak sorgulama
- StrictMode — yanlışlıkla yapılan ana iş parçacığı IO işlemlerini yakalama
Tebrikler — Android Geliştirme kursunun tamamını tamamladınız!
Sıkça Sorulan Sorular
“Hata Ayıklama ve Profil Oluşturma” dersi ücretsiz mi?
Evet — “Hata Ayıklama ve Profil Oluşturma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Android Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Android Academy kursu toplamda 4 dersten oluşur.
“Hata Ayıklama ve Profil Oluşturma” dersinde ne öğreneceğim?
Android Studio'nun hata ayıklama ve profil oluşturma araçlarında uzmanlaşın: kesme noktaları, Logcat, Timber, Memory Profiler, LeakCanary, CPU Profiler, Network Inspector ve Layout Inspector. Android Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Android Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Android Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Hata Ayıklama ve Profil Oluşturma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Android Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Android Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- JUnit ile Birim Testi
- Mockito ile Taklit Nesneler
- Espresso ile Kullanıcı Arayüzü Testi
- Hata Ayıklama ve Profil Oluşturma