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
Activityyang telah dihapus tetapi masih direferensikan. - Instance
Fragmentyang tidak memilikiFragmentManageryang valid, tetapi masih direferensikan.
Perhatikan bahwa filter mungkin menghasilkan positif palsu dalam situasi berikut:
Fragmentdibuat tetapi belum digunakan.Fragmentdi-cache tetapi bukan sebagai bagian dariFragmentTransaction.
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 penampungActivityatauContext. - Class internal non-statis, seperti
Runnable, yang dapat menyimpan instanceActivity. - 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, atauViewkarena sistem membuat ulangActivity, 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.