Memory Advice API adalah API native eksperimental yang membantu aplikasi Android tetap berada dalam batas keamanan penggunaan memori. API mencapai hal ini dengan memperkirakan jumlah resource memori yang digunakan, lalu memberi tahu aplikasi jika batas tertentu telah terlampaui. API juga dapat langsung melaporkan estimasi persentase penggunaan memori ke aplikasi Anda.
Estimasi dari API membantu menentukan kapan aplikasi harus menyesuaikan penggunaan memori, atau untuk menemukan area yang perlu ditingkatkan selanjutnya di versi aplikasi Anda. Penyesuaian ini dapat mencakup berbagai hal yang memengaruhi konsumsi memori, seperti menurunkan detail dan kualitas aset visual dan audio.
Estimasi resource memori mencakup memori heap native yang dialokasikan oleh malloc dan memori grafis yang dialokasikan oleh OpenGL ES dan Vulkan Graphics API sehingga Memory Advice API sesuai untuk game dan aplikasi intensif grafis.
Estimasi dibuat berdasarkan berbagai hal berikut:
- Metrik perangkat yang dikumpulkan oleh API
- Data machine learning dari perangkat
- Pengujian perangkat
Pada API level, Memory Advice API menentukan kumpulan status memory advice dan menyampaikannya ke aplikasi dengan kumpulan fungsi.
Distribusi
Memory Advice API adalah bagian dari Android Game Development Kit (AGDK) dan didistribusikan melalui saluran berikut:
- Rilis biner dalam library Jetpack Android Games.
- Rilis biner di halaman download AGDK.
- Kode sumber di AOSP.
Game harus menggunakan rilis Memory Advice API yang direkomendasikan untuk lingkungan build-nya. Untuk Android Studio, sebaiknya gunakan rilis Jetpack. Untuk Android Game Development Extension (AGDE), sebaiknya gunakan rilis di halaman download AGDK.
Fitur
Bagian ini menjelaskan fitur Memory Advice API.
Status memori
API melaporkan status memori berikut ke aplikasi:
- MEMORYADVICE_STATE_OK
- MEMORYADVICE_STATE_APPROACHING_LIMIT
- MEMORYADVICE_STATE_CRITICAL
Untuk detail selengkapnya, lihat halaman referensi memoryadvice_memorystate.
Melaporkan status memori
API mendukung pelaporan status memori melalui mekanisme polling atau callback:
Polling:
Aplikasi dapat memanggil API kapan saja untuk mengambil status memori.Callback:
Aplikasi dapat mendaftarkan fungsi callback dengan Memory Advice API. Aplikasi menentukan frekuensi panggilan untuk callback. API ini menggunakan frekuensi untuk menentukan kapan harus menjalankan callback saat kondisi memori aplikasi mendekati batas aman atau hampir habis. Callback tidak dipanggil jika kondisi memori aman. Callback dijalankan dari threadnya sendiri, bukan dari thread milik aplikasi.
Pertimbangan biaya dan frekuensi panggilan
Memory Advice API menggunakan waktu komputasi untuk menghasilkan status memori. Biayanya bervariasi menurut perangkat, tetapi biasanya antara 1 md dan 3 md per panggilan. Anda harus mempertimbangkan overhead ini saat menentukan seberapa sering melakukan polling status memori, atau frekuensi apa yang harus ditentukan untuk callback status memori.
Persyaratan
Persyaratan perangkat
- Android 4.4 (API level 19) atau yang lebih tinggi.
Persyaratan aplikasi
API ini hanya mendukung aplikasi native (aplikasi yang utamanya ditulis dalam C/C++).
API ini hanya mendukung perangkat fisik; emulator tidak didukung.
Persyaratan versi NDK
Rilis Memory Advice API mendukung versi NDK paling populer, lihat catatan rilis untuk daftar NDK yang didukung.
Referensi Lainnya
- Catatan rilis Memory Advice API
- Dokumentasi referensi Memory Advice API
- Contoh Memory Advice di GitHub
- Kode sumber Memory Advice API
Masalah dan Masukan
Memory Advice API masih dalam versi beta dan menerima masukan. Jika Anda memiliki saran atau menemukan masalah saat menggunakan API, laporkan masalah di IssueTracker.