0Pricing
Android Academy · Pelajaran

Debugging & Pembuatan Profil

Kuasai alat debugging dan pembuatan profil Android Studio: breakpoint, Logcat, Timber, Memory Profiler, LeakCanary, CPU Profiler, Network Inspector, dan Layout Inspector.

Debugging & Pembuatan Profil adalah pelajaran Android Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Android Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Android Academy mencakup 4 pelajaran total.

Ikhtisar Debugging

Debugging adalah proses menemukan dan memperbaiki bug. Android Studio menyediakan alat yang canggih:

  • Debugger — menjeda eksekusi, memeriksa variabel, dan menelusuri kode langkah demi langkah
  • Logcat — keluaran log secara waktu nyata dari perangkat
  • Layout Inspector — memeriksa hierarki UI yang sedang berjalan
  • Android Profiler — analisis CPU, memori, dan jaringan
  • Database Inspector — melihat dan menjalankan kueri pada basis data Room secara langsung

Logcat — Alat Debug Pertama Anda

Gunakan Log untuk mencetak pesan ke Logcat. Gunakan TAG untuk memfilter log Anda:

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 — Logging yang Lebih Baik

Timber adalah pembungkus tipis untuk Log yang menghapus pemanggilan log dari build rilis dan secara otomatis menambahkan nama class sebagai TAG:

// 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)

Titik Henti dan Debugger

Langkah-langkah untuk melakukan debug dengan titik henti di Android Studio:

  1. Klik area margin kiri di samping sebuah baris kode — titik merah akan muncul
  2. Jalankan aplikasi dengan Debug (ikon bug), bukan Run
  3. Saat eksekusi mencapai titik henti, eksekusi akan dijeda
  4. Periksa variabel di panel Variables
  5. Gunakan Step Over (F8) untuk berpindah baris demi baris, dan Step Into (F7) untuk masuk ke sebuah fungsi

Evaluasi Ekspresi

Saat eksekusi dijeda di titik henti, gunakan Evaluate Expression (Alt+F8) untuk menjalankan kode Kotlin dalam cakupan saat ini. Uji asumsi tanpa memulai ulang:

  • Periksa list.size, user.email.isNotBlank()
  • Panggil metode apa pun dan lihat nilai yang dikembalikan
  • Periksa objek kompleks secara langsung di dalam kode

Profiler Memori

Temukan kebocoran memori dengan Memory Profiler (View → Tool Windows → Profiler):

  • Amati ukuran heap dari waktu ke waktu — pertumbuhan yang terus-menerus kemungkinan menunjukkan kebocoran
  • Paksa GC dan amati apakah memori berkurang
  • Ambil heap dump untuk melihat objek apa saja yang masih aktif
  • Cari instance Activity atau Fragment yang seharusnya sudah dibersihkan oleh GC

LeakCanary — Deteksi Kebocoran Otomatis

LeakCanary secara otomatis mendeteksi dan melaporkan kebocoran memori sebagai notifikasi dalam build debug:

// 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 unregistered

Profiler CPU

Temukan hambatan kinerja dengan CPU Profiler:

  • Rekam trace saat melakukan suatu tindakan
  • Lihat diagram api untuk mengetahui metode mana yang memerlukan waktu paling lama
  • Cari pekerjaan berdurasi panjang pada thread utama — hal ini menyebabkan UI tersendat
  • Pindahkan komputasi berat ke Dispatchers.IO atau Dispatchers.Default

Inspector Jaringan

Network Inspector menampilkan semua pemanggilan HTTP yang dibuat aplikasi Anda secara waktu nyata:

  • Lihat URL permintaan, metode, header, dan isi
  • Lihat kode respons, isi, dan waktu
  • Identifikasi permintaan yang lambat atau gagal
  • Langsung dapat digunakan dengan OkHttp (yang digunakan oleh Retrofit)

Anda dapat mengaksesnya melalui View → Tool Windows → App Inspection → Network Inspector.

Inspector Basis Data

Periksa dan jalankan kueri pada basis data Room secara langsung di perangkat yang sedang berjalan:

  • Lihat tabel dan isinya
  • Jalankan kueri SQL khusus
  • Amati perubahan data saat menggunakan aplikasi

Akses melalui App Inspection → Database Inspector. Berfungsi untuk Room pada API 26+.

Inspector Tata Letak

Layout Inspector menampilkan tampilan 3D langsung dari hierarki UI Anda:

  • Pilih tampilan apa pun untuk melihat atributnya (margin, padding, teks, warna)
  • Temukan tampilan yang saling tumpang tindih atau visibilitas yang salah
  • Debug masalah tata letak tanpa menerka-nerka

Akses melalui View → Tool Windows → Layout Inspector. Hubungkan ke aplikasi yang sedang berjalan di perangkat atau emulator.

StrictMode

StrictMode mendeteksi operasi yang tidak sengaja lambat pada thread utama (pembacaan disk, pemanggilan jaringan), lalu mencatat log atau membuat aplikasi mogok dalam build debug:

// In Application.onCreate() — debug builds only:
if (BuildConfig.DEBUG) {
    StrictMode.setThreadPolicy(
        StrictMode.ThreadPolicy.Builder()
            .detectDiskReads()
            .detectDiskWrites()
            .detectNetwork()
            .penaltyLog()      // log violations instead of crashing
            .build()
    )
}

Pemeriksaan Singkat

Alat apa yang secara otomatis mendeteksi kebocoran memori dalam build debug Android tanpa kode tambahan?

Rangkuman: Debugging dan Pembuatan Profil

Temukan dan perbaiki masalah secara efisien:

  • Logcat + Timber — logging ringan, otomatis dihapus dari rilis
  • Breakpoints + Debugger — menjeda dan memeriksa eksekusi secara langsung
  • Memory Profiler — mendeteksi pertumbuhan heap dan kebocoran
  • LeakCanary — deteksi kebocoran otomatis dengan jejak tumpukan
  • CPU Profiler — menemukan metode lambat pada thread utama
  • Network Inspector — memantau pemanggilan HTTP
  • Database Inspector — menjalankan kueri Room secara langsung
  • StrictMode — menangkap IO yang tidak sengaja dilakukan pada thread utama

Selamat — Anda telah menyelesaikan seluruh kursus Pengembangan Android!

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Debugging & Pembuatan Profil” gratis?

Ya — teks lengkap “Debugging & Pembuatan Profil” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Android Academy, upgrade ke CoddyKit PRO. Kursus Android Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Debugging & Pembuatan Profil”?

Kuasai alat debugging dan pembuatan profil Android Studio: breakpoint, Logcat, Timber, Memory Profiler, LeakCanary, CPU Profiler, Network Inspector, dan Layout Inspector. Kamu berlatih Android Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Android Academy?

Tidak diperlukan pengalaman sebelumnya. Android Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Debugging & Pembuatan Profil” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Android Academy ini?

Ya. Setiap pelajaran Android Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Pengujian Unit dengan JUnit
  2. Mocking dengan Mockito
  3. Pengujian Antarmuka dengan Espresso
  4. Debugging & Pembuatan Profil
← Kembali ke Android Academy