Merekam heap dump (Tampilan)

Implementasi Jetpack Compose

Halaman ini menyertakan informasi tentang menemukan dan memicu kebocoran memori yang khusus untuk tata letak berbasis View. Untuk mengetahui informasi inti tentang cara merekam dan menganalisis heap dump, lihat Merekam heap dump.

Menemukan kebocoran memori

Untuk memfilter dengan cepat ke kelas yang mungkin terkait dengan kebocoran memori, buka drop-down kelas dan pilih Show activity/fragment leaks. Android Studio menampilkan class yang dianggap menunjukkan kebocoran memori untuk instance Activity dan Fragment di aplikasi Anda. Jenis data yang ditampilkan filter mencakup berikut ini:

  • Instance Activity yang telah dihapus tetapi masih direferensikan.
  • Instance Fragment yang tidak memiliki FragmentManager yang valid, tetapi masih direferensikan.

Perhatikan bahwa filter mungkin menghasilkan positif palsu dalam situasi berikut:

  • Fragment dibuat tetapi belum digunakan.
  • Fragment di-cache tetapi bukan sebagai bagian dari FragmentTransaction.

Untuk mencari kebocoran memori secara lebih manual, jelajahi daftar class dan instance untuk menemukan objek dengan Retained Size yang besar. Cari kebocoran memori yang disebabkan oleh salah satu hal berikut:

  • Referensi berumur panjang ke Activity, Context, View, Drawable, dan objek lainnya yang mungkin menyimpan referensi ke penampung Activity atau Context.
  • Class internal non-statis, seperti Runnable, yang dapat menyimpan instance Activity.
  • Cache yang menyimpan objek lebih lama dari yang diperlukan.

Saat Anda menemukan potensi kebocoran memori, gunakan tab Kolom dan Referensi di Detail Instance untuk membuka instance atau baris kode sumber yang diinginkan.

Memicu kebocoran memori untuk pengujian

Untuk memicu kebocoran memori guna melakukan pengujian di aplikasi, Anda dapat memicu kebocoran dengan salah satu cara berikut:

  • Putar perangkat beberapa kali dari potret ke lanskap dan kembali lagi dalam berbagai status aktivitas. Memutar perangkat sering kali dapat menyebabkan aplikasi membocorkan objek Activity, Context, atau View karena sistem membuat ulang Activity, dan jika aplikasi Anda menyimpan referensi ke salah satu objek tersebut di tempat lain, sistem tidak dapat membersihkan sampah memorinya.
  • Beralihlah antara aplikasi Anda dan aplikasi lain dalam berbagai status aktivitas. Misalnya, buka layar utama, lalu kembali ke aplikasi Anda.