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?
android
push-notification
polling
Khawar Raza
sumber
sumber
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
sumber
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.
Mengambil ini dari: Sumber Juga lihat di sini .
sumber
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.
sumber
https://firebase.google.com/docs/cloud-messaging/
sumber
Ya kau benar. Google memiliki layanan (Layanan GTalk) dan layanan ini meminta server Google dalam beberapa periode waktu.
sumber
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.
sumber