Cara kerja update aplikasi

Panduan ini menjelaskan cara platform Android dan Google Play menangani update aplikasi dan membahas berbagai opsi bagi developer yang memublikasikan aplikasi mereka di beberapa app store.

Cara Android menangani update aplikasi

Setiap aplikasi Android memiliki ID aplikasi unik yang terlihat seperti nama paket Java atau Kotlin, seperti com.example.myapp. ID ini secara unik mengidentifikasi setiap aplikasi di perangkat. Perangkat Android hanya boleh memiliki satu aplikasi dengan ID aplikasi tertentu yang diinstal dalam satu waktu.

Agar update diterima oleh platform Android, kondisi berikut harus terpenuhi:

  • ID aplikasi untuk update harus sama dengan aplikasi yang diinstal.
  • Sertifikat penandatanganan update harus sama dengan sertifikat penandatanganan aplikasi terinstal, atau harus berisi bukti rotasi yang valid.
  • Kode versi update harus lebih tinggi atau sama dengan kode versi aplikasi yang diinstal.
  • Dalam beberapa kasus, pengguna mungkin perlu menerima update.

Perlu diketahui bahwa tidak ada pencegahan bawaan terhadap penginstal berbeda yang mengupdate aplikasi jika update memiliki sertifikat penandatanganan yang sama dan kode versi yang sama atau lebih tinggi.

Untuk menginstal aplikasi yang tidak memenuhi kondisi di atas, pengguna harus terlebih dahulu meng-uninstal versi yang saat ini diinstal, yang akan menghapus semua data aplikasi dari perangkat.

Cara Google Play mengupdate aplikasi

Pendekatan Google Play untuk mengupdate aplikasi didasarkan pada prinsip-prinsip berikut:

  • Pastikan pengguna selalu mendapatkan update terbaru. Anda sebaiknya selalu mengupdate aplikasi untuk menjaga pengguna tetap aman dari masalah keamanan dan mendapatkan manfaat dari peningkatan fitur terbaru.
  • Hargai pilihan pengguna. Google Play mengupdate aplikasi yang terkait dengan akun pengguna dan berdasarkan preferensi update yang mereka pilih, seperti mengizinkan atau melarang penggunaan data berbayar.
  • Hargai pilihan developer. Google Play menggunakan opsi konfigurasi developer saat menentukan update aplikasi.
  • Hindari resource yang sia-sia. Hemat masa pakai baterai dengan pengoptimalan saat update didownload, dan minimalkan penggunaan data menggunakan teknik seperti kompresi dan patching.

Untuk aplikasi tertentu yang diinstal pada perangkat, Google Play mengupdate aplikasi jika memenuhi kondisi berikut:

  • Aplikasi dipublikasikan di Google Play dengan ID aplikasi yang sama.
  • Sertifikat penandatanganan aplikasi yang dipublikasikan sesuai dengan sertifikat penandatanganan versi yang saat ini diinstal, atau berisi bukti rotasi yang valid.
  • Aplikasi ini adalah bagian dari library pengguna, atau telah dimuat sebelumnya oleh OEM.
  • Aplikasi tersedia untuk pengguna ini dan perangkat ini, sesuai dengan opsi penargetan yang ditentukan developer.
  • Aplikasi terinstal sudah usang, dibandingkan dengan versi yang tersedia di Google Play.

Selama kondisi ini terpenuhi, Google Play dapat mengupdate aplikasi. Sub-bagian berikut memberikan detail tentang beberapa kondisi yang tercantum.

Perhatikan bahwa terkadang Google Play mendownload konten aplikasi atau melakukan pemeliharaan pada biner aplikasi atas nama developer tanpa mengubah kode versi Android—misalnya, saat menyelesaikan download sebagian atau mendownload pemisahan on demand.

Dipublikasikan di Google Play

Google Play menggunakan ID aplikasi untuk mengidentifikasi secara unik aplikasi yang dipublikasikan di Google Play. Kondisi ini terpenuhi jika ID aplikasi yang diinstal cocok dengan ID aplikasi dari aplikasi yang dipublikasikan di Google Play.

Bagian dari library pengguna

Kondisi ini terpenuhi jika salah satu kondisi berikut terpenuhi:

  • Akun Google aktif di perangkat sebelumnya telah memperoleh aplikasi dengan mengetuk tombol instal atau beli di Google Play.
  • OEM melakukan pramuat aplikasi sebagai bagian dari image sistem.

Pengguna juga memiliki kemampuan untuk menghapus aplikasi secara manual dari library mereka.

Usang

Google Play menentukan apakah aplikasi yang diinstal di perangkat sudah usang dengan melihat kode versi. Jika versi yang dapat didownload di Google Play memiliki kode versi yang lebih tinggi daripada versi yang diinstal, Google Play akan menganggap aplikasi terinstal sudah usang.

Aplikasi di beberapa app store

Ada beberapa cara untuk mengontrol update lintas app store jika Anda memublikasikan aplikasi di beberapa app store. Bagian berikut membahas opsi ini serta kemungkinan manfaat dan kelemahannya.

Mencegah update lintas app store

Anda mungkin ingin mencegah setiap app store melakukan update aplikasi lintas app store untuk aplikasi Anda. Anda dapat memilih untuk melakukannya jika konten aplikasi berbeda di setiap app store. Hal ini dapat dicapai dengan memublikasikan aplikasi dengan dua ID aplikasi yang berbeda, atau dengan memublikasikan aplikasi dengan ID aplikasi yang sama dan dua kunci penandatanganan yang berbeda.

Anda mungkin ingin meminimalkan penggunaan ulang kunci penandatanganan untuk mengurangi risiko penyusupan kunci, jadi gunakan kunci penandatanganan aplikasi yang berbeda untuk setiap app store. Tindakan ini akan mencegah update lintas toko.

Apa pun pendekatan yang Anda pilih, Android akan memperlakukan aplikasi tanpa ID aplikasi dan kunci penandatanganan yang cocok sebagai tidak kompatibel. Pengguna yang ingin beralih dari satu app store ke app store lainnya harus menghapus aplikasi terinstal—yang akan menghapus semua data yang terkait dengan aplikasi tersebut—dan menginstal ulang dari app store lainnya.

Mengizinkan update lintas app store

Anda dapat mengizinkan setiap app store melakukan update aplikasi lintas app store untuk aplikasi Anda. Anda dapat melakukannya jika mendistribusikan aplikasi dengan konten yang sama di semua app store dan ingin memprioritaskan pengguna untuk selalu mendapatkan update terbaru. Selama Anda menggunakan ID aplikasi dan kunci penandatanganan yang sama di semua app store tempat Anda memublikasikan aplikasi, setiap app store dapat mengupdate penginstalan aplikasi Anda, terlepas dari tempat pengguna mendownload aplikasi awalnya.

Namun, hal ini dapat menyebabkan perilaku yang tidak dapat diprediksi bagi pengguna Anda, bergantung pada cara setiap app store memilih untuk menerapkan update aplikasi lintas toko. Misalnya, pengguna mungkin menonaktifkan update dari satu app store dan tidak menyadari bahwa app store lain mungkin masih terus menyediakan update.

Jika sebelumnya Anda mengizinkan update lintas app store tetapi ingin mulai memilih sumber update tertentu saat ada di perangkat, Anda dapat merilis aplikasi dengan kode versi yang lebih tinggi di app store yang diinginkan dan melanjutkan rilis dengan kode versi yang lebih rendah di app store lain. Setelah update kode versi yang lebih tinggi dari sumber pilihan diinstal, app store lain tidak akan dapat melakukan update silang di perangkat tersebut.