Як Google реалізував їх функцію push-сповіщення? Чи працює це шляхом опитування, яке виконується службою, що працює у фоновому режимі чи по-іншому?
Як Google реалізував їх функцію push-сповіщення? Чи працює це шляхом опитування, яке виконується службою, що працює у фоновому режимі чи по-іншому?
Відповіді:
З того, що я чув на конференції розробників Android в Ізраїлі:
Існує просто розетка TCP, що очікує в режимі прийняття на хмарному сервері Google. З'єднання TCP було ініційовано програмою Google Play. Ось чому Google Play повинен бути встановлений на пристрої, щоб зробити Google Cloud Messaging (GCM) (раніше Android Cloud to Device Service Messaging Service - C2DM ).
Коли цей клієнтський сокет TCP отримує якесь повідомлення, повідомлення містить інформацію, таку як назва пакету програми, до якої слід звертатися, і звичайно - самі дані. Ці дані аналізуються та упаковуються в наміри, які транслюються і в кінцевому підсумку отримуються додатком.
Розетка TCP залишається відкритою навіть тоді, коли стан радіо пристрою переходить у режим «непрацюючого». Щоб отримати наміри, програми не повинні працювати.
Більше інформації на http://developer.android.com/google/gcm/gcm.html
Android зберігає одне активне з'єднання з серверами Google, але він не використовує багато енергії або даних, оскільки по ньому не надсилається трафік, поки щось не надішле повідомлення Google Cloud Messaging (GCM) в додаток на вашому телефоні. На телефоні є лише одне з'єднання, яке використовується всіма програмами: установка нового додатка, який використовує GCM, не додає додаткового навантаження.
Першим кроком у GCM є те, що сторонній сервер (наприклад, сервер електронної пошти) надсилає запит на сервер GCM Google. Потім цей сервер надсилає повідомлення на ваш пристрій через відкрите з'єднання. Система Android розглядає повідомлення, щоб визначити, для чого це додаток, і запускає цю програму. Додаток повинен зареєструватися на Android для використання GCM, і він повинен мати відповідний дозвіл. Коли програма запуститься, вона може створити сповіщення одразу з даними повідомлення. Повідомлення GCM мають дуже обмежений розмір, тому програма може замість цього відкрити звичайне з'єднання із стороннім сервером для отримання додаткової інформації (наприклад, завантаження заголовків нових електронних листів).
Перевага використання push-сповіщень полягає в тому, що додатки не повинні запускатися через регулярні проміжки часу, щоб перевіряти наявність нових даних, економлячи і живлення, і дані. Перевагою централізованого механізму, такого як GCM, є те, що пристрою потрібне лише одне відкрите мережеве з'єднання, а система Android GCM - єдине, що потрібно продовжувати працювати, а не кожен додаток повинен працювати у фоновому режимі, щоб зберегти власну мережу підключення до власного сервера.
Ви можете реалізувати push-сповіщення на android самостійно за допомогою тривалого підключення tcp для опитування. Але це передбачає підтримання додаткового розетки => розряджання акумулятора. Або ви можете відкривати з'єднання через рівні проміжки часу за допомогою диспетчера сигналів.
Google, ймовірно, відкриває один розетку для всіх натискань на C2DM, отже, його ефективніше акумулятор.
Станом на 10 квітня 2018 року Google припинив GCM. API сервера і клієнтські API застаріли і будуть видалені, як тільки 11 квітня 2019 року. Перемістіть додатки GCM до Firebase Cloud Messaging (FCM), який успадковує надійну та масштабовану інфраструктуру GCM, а також багато нових функцій.
На пристроях Android, коли ви отримуєте push-сповіщення, на панелі стану відображаються зображення програми та повідомлення відправника. Коли клієнт натискає повідомлення, він / вона потрапляє на додаток.