Penyahpepijatan & Pemprofilan
Kuasai alat penyahpepijatan dan pemprofilan Android Studio: titik henti, Logcat, Timber, Memory Profiler, LeakCanary, CPU Profiler, Network Inspector dan Layout Inspector.
Penyahpepijatan & Pemprofilan ialah pelajaran Android Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Android Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Android Academy merangkumi sejumlah 4 pelajaran.
Gambaran Keseluruhan Penyahpepijatan
Penyahpepijatan ialah proses mencari dan membaiki pepijat. Android Studio menyediakan alat yang berkuasa:
- Penyahpepijat — menjeda pelaksanaan, memeriksa pemboleh ubah dan melangkah melalui kod
- Logcat — output log masa nyata daripada peranti
- Pemeriksa Reka Letak — memeriksa hierarki UI secara langsung
- Pemprofil CPU — analisis CPU, memori dan rangkaian
- Pemeriksa Pangkalan Data — melihat dan membuat pertanyaan pada pangkalan data Room secara langsung
Logcat — Alat Penyahpepijatan Pertama Anda
Gunakan Log untuk mencetak mesej ke Logcat. Gunakan TAG untuk menapis 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 — Pengelogan yang Lebih Baik
Timber ialah pembalut nipis untuk Log yang membuang panggilan log daripada binaan keluaran dan menambahkan nama class sebagai TAG secara automatik:
// 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 Penyahpepijat
Langkah untuk menyahpepijat dengan titik henti dalam Android Studio:
- Tekan bahagian tepi (margin kiri) di sebelah baris kod — titik merah akan muncul
- Jalankan aplikasi dengan Debug (ikon pepijat), bukannya Run
- Apabila pelaksanaan mencapai titik henti, ia akan dijeda
- Periksa pemboleh ubah dalam panel Pemboleh ubah
- Gunakan Step Over (F8) untuk bergerak baris demi baris, dan Step Into (F7) untuk memasuki fungsi
Nilai Ungkapan
Semasa dijeda pada titik henti, gunakan Evaluate Expression (Alt+F8) untuk menjalankan kod Kotlin dalam skop semasa. Uji andaian tanpa memulakan semula:
- Semak
list.size,user.email.isNotBlank() - Panggil sebarang method dan lihat nilai yang dikembalikan
- Periksa objek kompleks sebaris
Pemprofil Memori
Cari kebocoran memori dengan Pemprofil Memori (View → Tool Windows → Profiler):
- Pantau saiz timbunan dari semasa ke semasa — pertumbuhan berterusan = kemungkinan kebocoran
- Paksa GC dan perhatikan sama ada memori berkurang
- Ambil longgokan timbunan untuk melihat objek yang masih hidup
- Cari kejadian Activity atau Fragment yang sepatutnya telah dibersihkan oleh GC
LeakCanary — Pengesanan Kebocoran Automatik
LeakCanary mengesan dan melaporkan kebocoran memori secara automatik sebagai pemberitahuan dalam binaan nyahpepijat:
// 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 unregisteredPemprofil CPU
Cari kesesakan prestasi dengan Pemprofil CPU:
- Rakam jejak semasa melakukan sesuatu tindakan
- Lihat carta nyalaan untuk mengetahui method yang mengambil masa paling lama
- Cari kerja yang berjalan lama pada urutan utama — ini menyebabkan UI tersentak
- Pindahkan pengiraan berat ke
Dispatchers.IOatauDispatchers.Default
Pemeriksa Rangkaian
Pemeriksa Rangkaian menunjukkan semua panggilan HTTP yang dibuat oleh aplikasi anda dalam masa nyata:
- Lihat URL permintaan, method, pengepala dan isi
- Lihat kod respons, isi dan pemasaan
- Kenal pasti permintaan yang lambat atau gagal
- Berfungsi terus dengan OkHttp (yang digunakan oleh Retrofit)
Akses melalui View → Tool Windows → App Inspection → Network Inspector.
Pemeriksa Pangkalan Data
Periksa dan buat pertanyaan pada pangkalan data Room anda secara langsung pada peranti yang sedang berjalan:
- Lihat jadual dan kandungannya
- Jalankan pertanyaan SQL tersuai
- Pantau perubahan data semasa anda menggunakan aplikasi
Akses melalui App Inspection → Database Inspector. Berfungsi untuk Room pada API 26+.
Pemeriksa Reka Letak
Pemeriksa Reka Letak menunjukkan paparan 3D langsung hierarki UI anda:
- Pilih mana-mana paparan untuk melihat atributnya (margin, pengisi, teks dan warna)
- Kesan paparan yang bertindih atau keterlihatan yang salah
- Nyahpepijat isu reka letak tanpa membuat tekaan
Akses melalui View → Tool Windows → Layout Inspector. Sambungkan kepada aplikasi yang sedang berjalan pada peranti atau emulator.
StrictMode
StrictMode mengesan operasi yang tersilap menjadi perlahan pada urutan utama (bacaan cakera, panggilan rangkaian) serta merekodkan log atau menyebabkan aplikasi ranap dalam binaan nyahpepijat:
// In Application.onCreate() — debug builds only:
if (BuildConfig.DEBUG) {
StrictMode.setThreadPolicy(
StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork()
.penaltyLog() // log violations instead of crashing
.build()
)
}Semakan Pantas
Alat manakah yang mengesan kebocoran memori secara automatik dalam binaan nyahpepijat Android tanpa kod tambahan?
Imbas Kembali: Penyahpepijatan dan Pemprofilan
Cari dan baiki masalah dengan cekap:
- Logcat + Timber — pengelogan ringan, dibuang secara automatik dalam keluaran
- Titik Henti + Penyahpepijat — menjeda dan memeriksa pelaksanaan langsung
- Pemprofil Memori — mengesan pertumbuhan timbunan dan kebocoran
- LeakCanary — pengesanan kebocoran automatik dengan jejak tindanan
- Pemprofil CPU — mencari method yang perlahan pada urutan utama
- Pemeriksa Rangkaian — memantau panggilan HTTP
- Pemeriksa Pangkalan Data — membuat pertanyaan Room secara langsung
- StrictMode — mengesan IO tidak sengaja pada urutan utama
Tahniah — anda telah menamatkan kursus Pembangunan Android sepenuhnya!
Pelajari Kotlin dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 36
- Pelajaran
- 152
Soalan Lazim
Adakah pelajaran “Penyahpepijatan & Pemprofilan” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Android Academy, termasuk “Penyahpepijatan & Pemprofilan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Android Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Penyahpepijatan & Pemprofilan”?
Kuasai alat penyahpepijatan dan pemprofilan Android Studio: titik henti, Logcat, Timber, Memory Profiler, LeakCanary, CPU Profiler, Network Inspector dan Layout Inspector. Anda berlatih Android Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Android Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Android Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Penyahpepijatan & Pemprofilan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Android Academy ini?
Ya. Setiap pelajaran Android Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Ujian Unit dengan JUnit
- Mocking dengan Mockito
- Ujian UI dengan Espresso
- Penyahpepijatan & Pemprofilan