Memori merupakan resource penting dalam setiap lingkungan pengembangan software, terlebih pada sistem operasi seluler yang sering dibatasi oleh memori fisik. Hal ini terutama berlaku untuk perangkat dengan memori bawaan rendah yang umumnya ditemukan di Android (edisi Go). Ada beberapa cara untuk membantu mengoptimalkan memori di aplikasi Anda agar dapat berjalan dengan lancar di lingkungan ini.
Praktik terbaik
Memangkas memori cache
Mungkin tidak tersedia cukup memori untuk mempertahankan proses latar belakang tetap berjalan
seperti di lingkungan pada umumnya. Jika demikian, Anda dapat menggunakan
onTrimMemory()
untuk memangkas memori yang tidak diperlukan dari proses aplikasi. Untuk mengidentifikasi
tingkat pemangkasan aplikasi saat ini secara optimal, gunakan
ActivityManager.getMyMemoryState(RunningAppProcessInfo)
dan optimalkan atau pangkas resource yang tidak diperlukan. Misalnya, Anda dapat memangkas
penggunaan memori yang tidak perlu dari
ekspresi, penelusuran, cache tampilan, atau ekstensi yang dapat dibuka untuk mengurangi frekuensi
aplikasi Anda mengalami error atau ANR karena memori yang rendah.
Penjadwalan tugas
Penjadwalan serentak dapat menyebabkan beberapa operasi yang perlu banyak memori agar berjalan secara paralel, sehingga menyebabkan persaingan resource yang melebihi penggunaan memori puncak aplikasi. Coba alokasikan resource secara tepat dengan memisahkan proses ke dalam tugas-tugas berlatensi rendah dan perlu banyak CPU di kumpulan thread yang tepat, agar dijalankan di perangkat yang mungkin mengalami berbagai batasan resource.
Kebocoran memori
Berbagai alat, seperti Memory Profiler di Android Studio dan Perfetto tersedia khusus untuk membantu menemukan dan mengurangi kebocoran memori dalam aplikasi Anda. Sangat disarankan untuk menggunakan alat ini guna mengidentifikasi dan memperbaiki potensi masalah memori agar komponen aplikasi Anda yang lain dapat berjalan tanpa tambahan tekanan pada sistem.
Tips lainnya
- Drawable atau gambar besar menggunakan lebih banyak memori dalam aplikasi. Identifikasi dan optimalkan bitmap besar atau berwarna penuh untuk mengurangi penggunaan memori.
- Coba pilih opsi lain untuk GIF di aplikasi saat membuat build untuk Android (edisi Go) karena GIF menggunakan banyak memori.
- Anda dapat mengurangi ukuran file PNG tanpa menurunkan kualitas gambar menggunakan alat seperti WebP, pngcrush, dan pngquant. Semua alat ini dapat mengurangi ukuran file PNG, tetapi tetap mempertahankan ketajaman kualitas gambar.
- Alat aapt dapat mengoptimalkan aset gambar yang ditempatkan di
res/drawable/
dengan kompresi lossless selama proses build. Misalnya, alat aapt dapat mengonversi PNG warna asli yang tidak memerlukan lebih dari 256 warna menjadi PNG 8-bit dengan palet warna. Tindakan tersebut akan menghasilkan gambar dengan kualitas yang sama tetapi dengan jejak memori yang lebih kecil.