Berita Produk

Menyiapkan aplikasi untuk batas memori yang lebih luas

Waktu baca: 2 menit
Melihat profil Blair Harmon
Blair Harmon Director of Product Management, Android Platform

Pengalaman pengguna yang luar biasa adalah inti dari misi Android, dan memenuhi janji tersebut memerlukan perangkat yang cepat, responsif, dan andal. Inilah sebabnya pengoptimalan memori menjadi lebih penting dari sebelumnya.  Di seluruh ekosistem, perangkat baru mempertahankan atau bahkan mengurangi kapasitas memori fisiknya sebagai respons terhadap kenaikan harga memori, tetapi pengguna terus mengharapkan pengalaman aplikasi yang lancar dan berperforma tinggi yang sama.

Di Android 17, kami memperkenalkan batasan memori per aplikasi, dimulai dengan perangkat Pixel, untuk membantu melindungi keseluruhan pengalaman pengguna dari aplikasi yang menggunakan memori berlebih dan menyebabkan perlambatan di seluruh sistem. Selama tahun mendatang, makin banyak produsen akan memanfaatkan batas memori per aplikasi Android di seluruh portofolio konfigurasi RAM perangkat mereka dari perangkat 4 GB hingga 16 GB+. Jika aplikasi Anda melebihi batas ini, aplikasi akan diperlambat dan mungkin dihentikan. Mengoptimalkan jejak memori aplikasi Anda sangat penting untuk mencegah pembatasan OS dan mempertahankan pengalaman pengguna yang lancar.  

Dalam postingan ini, kita akan mempelajari cara kerja batas ini, cara mengukur jejak memori menggunakan metrik Android vitals baru, dan langkah-langkah yang dapat ditindaklanjuti untuk mengoptimalkan aplikasi atau game Anda.

Memahami Batas Memori 

Jika aplikasi Anda melebihi anggaran memori, Android akan mengambil tindakan progresif untuk melindungi responsivitas perangkat:

  1. Penukaran zRAM: Jika aplikasi Anda mencapai batas alokasinya, sistem akan memaksa halaman aplikasi Anda ke zRAM (RAM terkompresi).  Meskipun zRAM mencegah pengusiran langsung, mengompresi dan mengekstrak halaman akan menambah beban CPU, yang dapat menyebabkan jank UI yang terlihat dan penurunan kecepatan pengalaman.
  2. Penghentian Proses: Jika aplikasi Anda terus meningkatkan penggunaan memorinya di luar batas zRAM, aplikasi akan dihentikan oleh sistem.  Untuk menentukan apakah sesi aplikasi Anda terpengaruh oleh batasan ini di lapangan, Anda dapat memanggil getDescription() dalam ApplicationExitInfo.  Jika sistem menerapkan batas, alasan keluar dilaporkan sebagai REASON_OTHER dan string deskripsi akan berisi "MemoryLimiter:AnonSwap".  Anda juga dapat memanfaatkan pembuatan profil berbasis pemicu menggunakan TRIGGER_TYPE_ANOMALY untuk otomatis merekam heap dump saat batas memori tercapai.  

Untuk mempelajari lebih lanjut batas memori per aplikasi dan penegakan sistem, tinjau dokumentasi Batas Memori Aplikasi Android 17. Untuk menguji aplikasi Anda pada konfigurasi perangkat yang berbeda, gunakan perintah adb Pembatas Memori

Memantau dan Mendiagnosis Masalah Memori

Anda tidak dapat mengoptimalkan sesuatu yang tidak dapat Anda ukur. Mengidentifikasi kebocoran memori, alokasi heap yang berlebihan, dan error Kehabisan Memori (OOM) di seluruh ekosistem Android memerlukan pemanfaatan alat pemantauan pelengkap:

  • Kesehatan tingkat makro dengan Android vitals: Untuk visibilitas tingkat populasi yang luas tanpa overhead tambahan, Android vitals di Konsol Google Play menyediakan metrik penting seperti Penggunaan Memori (RSS Anonim + swap) dan Penggunaan Memori Bitmap. Hal ini memberi Anda gambaran yang jelas tentang distribusi memori di berbagai status proses (latar depan, latar belakang, layanan yang dirasakan pengguna, dan di-cache) serta rentang class RAM, sehingga membantu Anda menemukan pencilan memori.
  • Keluar dari Pembatas Memori & pelacakan OOM dengan Firebase Crashlytics: Untuk terus mendapatkan informasi tentang penurunan kualitas memori yang parah sebelum memengaruhi metrik utama Anda, Crashlytics versi 20.1.0 memperkenalkan data debug tambahan untuk membantu Anda mendeteksi, memprioritaskan, dan memperbaiki pengecualian Out-Of-Memory dan penghentian pembatas memori. Melacak peristiwa ini bersama dengan log kustom dan metadata nilai kunci memberi Anda konteks langsung tentang status proses saat terjadi kegagalan memori.
  • Rekaman aktivitas di lapangan dengan ProfilingManager: Untuk tim yang dapat mempertahankan framework pengamatan performa, API ProfilingManager yang diperkenalkan di Android 15 (level API 35) memungkinkan aplikasi Anda meminta dan mengumpulkan artefak debug memori mendetail secara terprogram seperti heap dump Java dan profil heap langsung dari perangkat produksi. Anda juga dapat memicu pengambilan dump heap berdasarkan sinyal sistem tertentu, seperti TRIGGER_TYPE_OOM dan TRIGGER_TYPE_ANOMALY

Baca dokumentasi kami untuk mempelajari lebih lanjut teknik pemantauan memori lainnya.

Ringkasan & Langkah Berikutnya

Dengan Android memperluas batas memori per aplikasi di semua kelas RAM, sekarang saatnya mengaudit jejak memori Anda:

  1. Prioritaskan pengoptimalan memori: Cegah aplikasi Anda terpengaruh oleh batas memori aplikasi dengan menggunakan praktik terbaik
  2. Pantau penggunaan memoriPantau perilaku memori aplikasi Anda untuk mendeteksi dan menyelesaikan perilaku anomali.  
  3. Mengoptimalkan game Anda: Ikuti panduan terbaru untuk game dan aplikasi multimedia kompleks guna memaksimalkan penghematan memori di seluruh status proses.

Referensi & Sumber Bermanfaat

Ditulis oleh:
Lanjutkan membaca