Zastanawiam się, jak działa system powiadomień push?
Czy istnieje aktywne połączenie TCP / IP działające w tle z serwerami Google?
push-notifications
opc0de
źródło
źródło
Manifest
). Mogę sobie wyobrazić usługę Google wykonującą „prawdziwą robotę”, a aplikacja po prostu rejestruje „odbiorcę”. Powyższy opis był bardziej „ogólny”, a nie specyficzny dla Androida, i starałem się to uprościć;)Odpowiedzi:
Tak, Android utrzymuje jedno aktywne połączenie z serwerami Google, ale nie zużywa dużo energii ani danych, ponieważ nie jest przesyłany żaden ruch, dopóki coś nie wyśle wiadomości GCM do aplikacji w telefonie. Telefon ma tylko jedno połączenie, z którego korzystają wszystkie aplikacje: zainstalowanie nowej aplikacji korzystającej z GCM nie powoduje dodatkowego obciążenia.
Pierwszym krokiem w GCM jest to, że serwer innej firmy (taki jak serwer e-mail) wysyła żądanie do serwera GCM Google. Ten serwer wysyła następnie wiadomość do twojego urządzenia poprzez to otwarte połączenie. System Android sprawdza komunikat w celu ustalenia, dla której aplikacji jest przeznaczony, i uruchamia tę aplikację. Aby korzystać z GCM, aplikacja musi się zarejestrować w Androidzie i musi mieć odpowiednie uprawnienia. Po uruchomieniu aplikacji może od razu utworzyć powiadomienie z danymi z wiadomości. Wiadomości GCM mają bardzo ograniczony rozmiar, więc aplikacja może zamiast tego otworzyć normalne połączenie z serwerem innej firmy, aby uzyskać więcej informacji (na przykład pobierając nagłówki nowych wiadomości e-mail).
Zaletą korzystania z powiadomień push jest to, że aplikacje nie muszą być uruchamiane w regularnych odstępach czasu, aby sprawdzać nowe dane, oszczędzając zarówno energię, jak i dane. Zaletą posiadania scentralizowanego mechanizmu, takiego jak GCM, jest to, że urządzenie potrzebuje tylko jednego otwartego połączenia sieciowego, a system Android GCM jest jedyną rzeczą, która musi nadal działać, a nie każda aplikacja musi pozostać uruchomiona w tle, aby utrzymać własną sieć połączenie z własnym serwerem.
źródło
System operacyjny Android korzysta teraz z GCM (Google Cloud Messaging) dla powiadomień push WS. Możesz uzyskać lepszy pomysł tutaj ; da ci przegląd architektury o usłudze powiadamiania w trybie push z jej cyklem życia.
Mam nadzieję, że to pomoże.
źródło
Późna odpowiedź na stare pytanie, ale warto je zadać.
GCM został wycofany w kwietniu 2018 r., A Google zalecił użycie FCM, który jest podobny do GCM.
źródło