Kemampuan perangkat untuk miliaran

Menjangkau pengguna baru berarti mendukung versi platform Android dan spesifikasi perangkat yang semakin bervariasi. Untuk meningkatkan pengalaman pengguna, lakukan pengoptimalan untuk konfigurasi RAM umum, serta ukuran dan resolusi layar.

Mendukung berbagai ukuran layar

Aplikasi Anda dapat memberikan pengalaman pengguna yang lebih baik bagi miliaran pengguna jika mendukung layar dengan berbagai ukuran dan resolusi. Bagian ini menjelaskan beberapa cara Anda dapat melakukannya.

Menggunakan piksel kepadatan mandiri (dp)

  • Penentuan dimensi tata letak dengan piksel tidak berfungsi dengan baik karena layar yang berbeda memiliki kepadatan piksel yang berbeda pula, jadi jumlah piksel yang sama mungkin sesuai dengan ukuran fisik yang berbeda pada perangkat yang berbeda.
  • Untuk mengatasi hal ini, Android mendukung piksel kepadatan mandiri (dp), yang sesuai dengan ukuran fisik piksel pada 160 titik per inci (kepadatan mdpi).
  • Mendefinisikan tata letak dengan dp memastikan bahwa ukuran fisik antarmuka pengguna akan konsisten, apa pun perangkat yang digunakan. Kunjungi panduan Android tentang Mendukung Beberapa Layar untuk praktik terbaik terkait cara menggunakan piksel kepadatan mandiri.

Menguji teks dan grafis pada kepadatan layar ldpi dan mdpi

  • Lakukan pengujian untuk memastikan bahwa teks dan grafis Anda telah berfungsi dengan baik pada layar dengan kepadatan rendah dan menengah (ldpi dan mdpi) karena keduanya merupakan kepadatan umum, terutama di perangkat berbiaya lebih rendah. Cari teks yang mungkin tidak jelas di layar dengan kepadatan rendah, yang membuat detail halus tidak terlihat.
  • Perangkat dengan layar kepadatan rendah cenderung memiliki spesifikasi hardware yang lebih rendah. Untuk memastikan aplikasi Anda berjalan dengan baik di perangkat ini, pertimbangkan untuk mengurangi atau menghilangkan beban pemrosesan grafis yang berat, seperti animasi dan transisi.
  • Untuk informasi selengkapnya terkait dukungan kepadatan yang berbeda, lihat pelatihan Android tentang Mendukung Kepadatan yang Berbeda.

Menguji tata letak pada ukuran layar kecil dan sedang

  • Validasi bahwa skala tata letak diperkecil dengan mengujinya pada layar yang lebih kecil. Saat ukuran layar menyusut, Anda harus sangat selektif terhadap elemen UI yang terlihat karena ruang untuk elemen UI ini terbatas.
  • Panduan Desain Material menjelaskan metrik dan keyline untuk memastikan tata letak Anda dapat diskalakan di seluruh kepadatan layar.
  • Untuk informasi selengkapnya terkait dukungan ukuran layar yang berbeda, lihat pelatihan Android tentang Mendukung Ukuran Layar yang Berbeda.

Memberikan kompatibilitas mundur

Tidak semua pengguna mungkin menggunakan perangkat yang didukung oleh platform Android versi terbaru dan terbaik. Berikut adalah beberapa cara Anda dapat meningkatkan kompatibilitas mundur, yang membantu membuat aplikasi Anda tersedia untuk sebanyak mungkin orang.

Menyetel targetSdkVersion dan minSdkVersion dengan tepat

  • Aplikasi harus mem-build dan menargetkan Android versi terbaru untuk memastikannya menawarkan perilaku terkini di berbagai perangkat; aplikasi ini masih memberikan kompatibilitas mundur ke versi lama. Berikut adalah praktik terbaik untuk menargetkan API level dengan benar:
    • targetSdkVersion harus menjadi Android versi terbaru. Menargetkan versi terbaru akan memastikan aplikasi Anda memiliki perilaku runtime yang lebih baru saat menjalankan Android versi terbaru. Pastikan untuk menguji aplikasi Anda pada Android versi lebih baru saat mengupdate targetSdkVersion karena hal tersebut dapat memengaruhi perilaku aplikasi.
    • minSdkVersion Menetapkan versi Android minimum yang didukung. Menyetel minSdkVersion juga membuat alat build Android melaporkan penggunaan yang salah atas API baru, yang mungkin tidak tersedia di platform lebih lama. Dengan melakukannya, Anda akan terlindungi dari pelanggaran kompatibilitas mundur secara tidak sengaja.
  • Lihat dasbor Android, Konsol Google Play untuk aplikasi Anda, dan penelitian industri di pasar target untuk mengukur Android versi mana saja yang ditargetkan berdasarkan pengguna target Anda.

Menggunakan Android Support Library

  • Pastikan aplikasi Anda memberikan pengalaman yang konsisten di seluruh versi OS dengan menggunakan Android Support Library. Library ini menyediakan versi API framework Android yang kompatibel dengan versi lama serta fitur yang hanya tersedia melalui API library seperti AppCompatActivity dan Support Library Desain Material.
  • Beberapa hal yang disorot antara lain:
  • Untuk informasi selengkapnya tentang Support Library yang tersedia, lihat bagian Fitur Support Library di situs Developer Android.

Menggunakan layanan Google Play

  • Layanan Google Play mengoptimalkan penggunaan Google API yang tidak bergantung pada versi platform Android. Pertimbangkan untuk menggunakan fitur dari layanan Google Play untuk menawarkan pengalaman Google paling efisien di perangkat Android.
  • Layanan Google Play juga mencakup API yang berguna seperti GcmNetworkManager, yang menyediakan banyak JobScheduler API Android 5.0 untuk versi Android yang lebih lama.
  • Update untuk layanan Google Play didistribusikan secara otomatis oleh Google Play Store, dan library klien versi baru dikirimkan melalui Android SDK Manager.

Menggunakan memori secara efisien

Memori adalah komponen penting untuk pengalaman pengguna. Manajemen memori yang baik dapat membuat aplikasi Anda lebih stabil dan berperforma lebih baik. Dalam beberapa kasus, penggunaannya yang efektif mungkin merupakan satu-satunya hal yang membuat aplikasi Anda dapat digunakan. Berikut adalah beberapa cara untuk dapat membantu aplikasi Anda menggunakan memori dengan bijak.

Mengurangi jejak memori pada perangkat berbiaya rendah

  • Sesuaikan jejak memori Anda secara dinamis untuk memastikan kompatibilitas di seluruh perangkat dengan konfigurasi RAM yang berbeda.
  • Metode seperti isLowRamDevice() dan getMemoryClass() membantu menentukan batasan memori pada saat runtime. Berdasarkan informasi ini, Anda dapat memperkecil skala penggunaan memori Anda. Sebagai contoh, Anda dapat menggunakan gambar beresolusi rendah pada perangkat dengan memori rendah.
  • Untuk informasi selengkapnya terkait cara mengelola memori aplikasi, lihat pelatihan Android tentang Mengelola Memori Aplikasi.

Menghindari proses yang berjalan lama

  • Proses yang berjalan lama tetap tersimpan dalam memori dan dapat memperlambat perangkat. Dalam sebagian besar situasi, aplikasi Anda harus diaktifkan dari mode tidur untuk peristiwa tertentu, memproses data, lalu dimatikan. Anda harus menggunakan Firebase Cloud Messaging (FCM) dan GcmNetworkManager untuk mencegah layanan latar belakang yang berjalan lama dan mengurangi tekanan memori pada perangkat pengguna.

Menentukan tolok ukur penggunaan memori

Android Studio menyediakan alat penentuan tolok ukur dan profil memori, yang memungkinkan Anda mengukur penggunaan memori pada saat runtime. Menentukan tolok ukur jejak memori aplikasi akan memungkinkan Anda memantau penggunaan memori melalui beberapa versi aplikasi. Cara ini dapat membantu mengetahui pertumbuhan jejak memori yang tidak disengaja. Gunakan alat Memory Profiler untuk melakukan hal berikut:

  • Mencari tahu apakah pola peristiwa pembersihan sampah memori (GC) yang tidak diinginkan mungkin menyebabkan masalah performa.
  • Mengidentifikasi jenis objek yang dialokasikan atau tetap dialokasikan secara tak terduga atau dengan tidak semestinya.
  • Mengidentifikasi masalah yang mungkin ada dalam kode Anda.

Untuk informasi selengkapnya tentang penentuan tolok ukur penggunaan memori, lihat Melihat Heap dan Alokasi dengan Memory Profiler.

Melakukan pengoptimalan untuk perangkat yang menjalankan Android (edisi Go)

Android (edisi Go) adalah pengalaman yang dioptimalkan untuk perangkat entry-level dengan RAM ≤1 GB, dimulai dengan Android Oreo (edisi Go). Untuk memastikan aplikasi Anda berjalan dengan baik di perangkat Android (edisi Go), Anda harus mempertimbangkan pedoman berikut:

  • targetSdkVersion harus Android versi terbaru. Perangkat Android (edisi Go) hanya menjalankan Android Oreo (API 27 atau yang lebih baru).
  • Aplikasi seharusnya berjalan dengan lancar di perangkat dengan RAM ≤1 GB. Ingatlah pengoptimalan memori yang tercantum dalam Menggunakan memori secara efisien di atas dan gunakan Android vitals untuk mengidentifikasi dan memperbaiki perilaku buruk seperti rendering lambat dan periode frozen.
  • Picture-in-picture (PIP) mungkin dinonaktifkan di perangkat. Sebelum aplikasi Anda menggunakan PIP, pastikan ketersediaannya dengan memanggil hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE).
  • Ukuran aplikasi di perangkat harus lebih kecil dari 40 MB.
  • Proportional Set Size (PSS) penggunaan RAM aplikasi tidak boleh melebihi 90 MB. Untuk game, PSS penggunaan RAM game tidak boleh lebih dari 150 MB. Untuk informasi selengkapnya tentang PSS, lihat panduan Menyelidiki Penggunaan RAM.
  • Waktu memulai aplikasi harus sesingkat mungkin dan kurang dari 5 detik.
  • SYSTEM_ALERT_WINDOW (yang memungkinkan aplikasi menggambar jendela di atas aplikasi lain) mungkin dinonaktifkan di perangkat Android Go yang memiliki RAM rendah. Sebelum menggambar di atas aplikasi lain, periksa apakah aplikasi Anda memiliki otorisasi ini dengan memanggil Settings.canDrawOverlays(). Jika aplikasi Anda tidak bisa mendapatkan izin, turunkan versi aplikasi secara halus agar pengguna dapat terus menggunakan aplikasi Anda, mungkin dengan menonaktifkan fitur yang memerlukan izin SYSTEM_ALERT_WINDOW.

Sebaiknya sebagian besar developer mengoptimalkan aplikasi mereka yang ada, yang akan tersedia di semua perangkat Android (edisi Go), karena membuat aplikasi berjalan lebih cepat dan lebih ringan akan menguntungkan seluruh audiens Anda. Anda dapat menggunakan fitur Multi-APK di Konsol Play untuk mendistribusikan APK khusus perangkat Android (edisi Go), tetapi Anda hanya boleh melakukannya tanpa mengorbankan pengalaman (mis. Anda tidak boleh menghapus fitur). APK yang menargetkan perangkat Android (edisi Go) perlu mendeklarasikan <uses-feature android:name="android.hardware.ram.low" android:required="true">, menargetkan setidaknya API Level 26, dan memiliki kode versi yang lebih tinggi daripada APK yang bukan edisi Go.

Referensi lainnya

Untuk mempelajari lebih lanjut upaya mendukung berbagai perangkat, lihat referensi berikut:

Postingan blog