Bagaimana Google menerapkan fitur pemberitahuan push mereka? Apakah ini bekerja melalui pemungutan suara yang dilakukan oleh layanan yang berjalan di latar belakang atau dengan cara yang berbeda?
Bagaimana Google menerapkan fitur pemberitahuan push mereka? Apakah ini bekerja melalui pemungutan suara yang dilakukan oleh layanan yang berjalan di latar belakang atau dengan cara yang berbeda?
Jawaban:
Dari apa yang saya dengar selama konferensi pengembang Android di Israel:
Hanya ada soket TCP yang menunggu dalam mode terima di server Google cloud. Koneksi TCP telah dimulai oleh aplikasi Google Play. Itu sebabnya Google Play harus diinstal pada perangkat untuk membuat Google Cloud Messaging (GCM) (sebelumnya Android Cloud to Device Messaging Service - C2DM ) berfungsi.
Ketika soket klien TCP ini menerima beberapa pesan, pesan tersebut berisi informasi seperti nama paket aplikasi yang harus dialamatkan, dan tentu saja - data itu sendiri. Data ini diurai dan dikemas menjadi maksud yang disiarkan dan akhirnya diterima oleh aplikasi.
Soket TCP tetap terbuka meskipun kondisi radio perangkat berubah menjadi mode "idle". Aplikasi tidak harus berjalan untuk menerima maksud.
Informasi lebih lanjut di http://developer.android.com/google/gcm/gcm.html
Android menyimpan satu koneksi aktif ke server Google, tetapi tidak menggunakan banyak daya atau data, karena tidak ada lalu lintas yang dikirim sampai ada sesuatu yang mengirim pesan Google Cloud Messaging (GCM) ke aplikasi di ponsel Anda. Hanya ada satu koneksi di ponsel, yang digunakan oleh semua aplikasi: menginstal aplikasi baru yang menggunakan GCM tidak menambah beban tambahan.
Langkah pertama dalam GCM adalah bahwa server pihak ketiga (seperti server email) mengirimkan permintaan ke server GCM Google. Server ini kemudian mengirimkan pesan ke perangkat Anda, melalui koneksi terbuka itu. Sistem Android melihat pesan untuk menentukan aplikasi mana yang digunakan, dan memulai aplikasi itu. Aplikasi harus sudah terdaftar di Android untuk menggunakan GCM, dan harus memiliki izin yang relevan. Saat aplikasi dimulai, itu mungkin membuat pemberitahuan langsung dengan data dari pesan. Ukuran pesan GCM sangat terbatas, sehingga aplikasi mungkin malah membuka koneksi normal ke server pihak ketiga untuk mendapatkan informasi lebih lanjut (misalnya, mengunduh tajuk email baru).
Keuntungan menggunakan pemberitahuan push adalah aplikasi tidak harus berjalan secara berkala untuk memeriksa data baru, menghemat daya dan data. Keuntungan memiliki mekanisme terpusat seperti GCM adalah bahwa perangkat hanya membutuhkan satu koneksi jaringan terbuka dan sistem Android GCM adalah satu-satunya hal yang perlu tetap berjalan, daripada setiap aplikasi harus tetap berjalan di latar belakang untuk menjaga jaringannya sendiri koneksi ke server sendiri.
Anda dapat menerapkan pemberitahuan push di Android sendiri dengan koneksi tcp polling panjang. Tapi itu akan melibatkan mempertahankan soket ekstra => menguras baterai. Atau Anda dapat membuka koneksi secara berkala menggunakan Manajer Alarm.
Google mungkin membuka satu soket untuk semua notifikasi push C2DM, karenanya lebih hemat baterai.
Pada 10 April 2018, Google telah mencabut GCM. Server GCM dan API klien tidak digunakan lagi dan akan dihapus segera setelah 11 April 2019. Migrasikan aplikasi GCM ke Firebase Cloud Messaging (FCM), yang mewarisi infrastruktur GCM yang andal dan dapat diukur, ditambah banyak fitur baru.
Pada perangkat Android, ketika Anda mendapatkan pemberitahuan push, gambar aplikasi pengirim dan pesan muncul di bilah status. Tepat ketika klien mengetuk notifikasi, ia mendarat di aplikasi.