mesagerie în cloud Google a economisi bateria și țesutul nervos prin intermediul butoanelor de notificări

Zdorovo atunci când aplicația are posibilitatea de a primi în mod constant actualizări de la server. Desigur, pentru a realiza cereri de rețea periodicheckie ușor, nu facem doar asta. Cu toate acestea, în cazul în care o cerere de duzină va bate în mod constant la serverele gestionate, telefona baterie sau tabletă se execută înainte de prânz.







Pentru biciclete programatori izobretali în dispozitive mobile a apărut sistemul Push-uvedomleny. Acesta este un serviciu de mesaje scurte, care sunt trimise la un furnizor de sistem de operare server de chepez central. Sisteme de operare dezvoltatorii de a realiza în mod independent, dispozitiv de comunicație periodicheskuyu la server, astfel încât mesajul și a venit timpul, și economii dispozitiv recursy maxime. Mod energosberezheniya, roaming, durata optimă de sesiune - toate acestea sunt luate de îngrijire prin crearea unei Push.

Google a dezvoltat un API numit Google Cloud Messaging, el dostupen pentru Android și pentru iOS. Utilizați acest serviciu este complet gratuit, adică DAROM. Să vedem ce fel de animal este și ceea ce este bun!

Cum funcționează

Multe dispozitive Android au de aplicații Google Baze cu caracteristici diferite, pentru funcționarea corectă a mesajului Push-răspunsuri Google Play Services pachet. În cazul în care este instalat acest pachet, ustroyctvo accesează periodic serverul cu o cerere de nalichii noi Push-mesaje. Frecvența acestor cereri depinde de multe parametrov: conexiune la Internet metoda, precum și alte condiții de baterii. În acest caz, pentru traficul ekonomii utilizatorul poate dezactiva chiar si acest serviciu.

Push-sepvery servi ca „lipici“ între dispozitiv poluchatelem și expeditorul mesajului. De la dezvoltator care utilizează GCM, este necesar pentru a face un mesaj neslozhnomu următoarea sintaxă, și apoi trimite POST-căutare pe serverul Google, kotory în continuare, în mod independent livra un mesaj la aparat.

mesagerie în cloud Google a economisi bateria și țesutul nervos prin intermediul butoanelor de notificări
Fig. 1. Schema raboty Google Cloud Messaging

înregistrare

După cum ați putea ghici, link-ul principal în GCM servicov - este serverele Google. Cloud de la aceasta companie efectuează lățime de bandă Kontrol și ia toate eforturile privind livrarea mesajelor, astfel încât primul pas este de sistem pentru a regictratsiya.

De asemenea, la prima pagină există o mare buton albastru fișiere de configurare generație. Ea sfopmiruet fișier de configurare Google-services.json, care sunt cusute toate parametrii necesari pentru serviciul raboty, inclusiv chei. Pentru a adăuga acest fișier de configurare pentru proiectul dumneavoastră, pur și simplu skopiruy în folderul rădăcină, aplicația, în cazul în care se află cererea de cod sursă.







Enclosure este gata de a utiliza instrumente, realizovannye în Serviciile Google Play, astfel încât trebuie să vă conectați module suplimentare la proiect. În Android Studio se face prin fișiere ppavki Gradle: config în proiectul podgruzhaem Google Services clasă, și în carcasă de configurare - uri GCM și Google Play.

fişierul manifest

Acum, du-te pentru a edita proiectul unui manifest. Pentru a economisi bateria, Android încearcă să trimită rapid aparatul la culcare, scăderea rachod bateriei și reducerea frecvenței procesorului. Acest lucru poate împiedica transmiterea și recepția datelor, astfel încât să fie posibilă aplicarea dolzhna pentru a preveni astfel de manevpu.

Pentru a deveni un destinatar al mesajului-Push, trebuie să adăugați rezoluția numită C2D_MESSAGE, în timpul acestei parametrul nume trebuie să fie numele complet al pachetului.

În prilozhenii noastre sunt module din Google Play Service, este de asemenea necesar să se scrie în manifest. Serviciul soobscheny GcmReceiver responsabil pentru primirea de server și, dacă este necesar, ajută aparatul nu intră în modul de economisire a energiei ekonomii:

După cum arată practica ispolzovaniya API diferite de Google, generarea și eliminarea dependenței cheie - cele mai multe sarcini consumatoare de timp. Punerea în aplicare a logicii API a proiectului este destul de simplu: ai nevoie doar sozdat mai multe obiecte și suprascrie clasele lor, responsabile pentru primirea și trimiterea dannyh. Unitatea nu poate fi aplicații de la Google, în acest caz, este necesar să se renunțe la Push-soobscheny. Verificarea prezenței API este după cum urmează.

APLICAT intra în clubul de elită destinatari Push-mesaj de ajutor una din metodele API Google. Vyzvat va fi convenabil pentru utilizarea clasa IntentService. Precum și clasa sa de service-mamă, se realizează în fundal pozvolyaet diferite sarcini CPU-intensive, cum ar fi vyzovy de rețea. Principalul avantaj al IntentService că, după toate problemele pe care le va comoara propria lor oprire a sistemului, în timp ce un serviciu convențional va continua să stea în fundal, ozhidaya comanda stopSelf () sau stopService (). Înregistrare apel Clasa GCM RegistrationIntentService.

De fapt, dezvoltatorii Google sunt pregătiți pentru noi, trebuie doar să apăsați butonul mare lupus si bucura de rezultate. API-ul GCM are clasa InstanceID capabil de pachete de rețea, în mod independent sformipovat cu datele de înregistrare și trimite-l la server. De la razpabotchika trebuie doar să specificați un identificator unic pachet (ID Sender, dar el uneori nazyvaetsya Numărul proiectului). Și fișier dacă google-services.json a fost copiat corect, gcm_defaultSenderId variabila în sine va apărea în Android Studio.

Metoda getToken returnează o altă opțiune unică - un identificator de dispozitiv, care este inclus cu GCM aplicație serviciu ustanovleno. Acest simbol este util mai târziu pentru a trimite soobscheny, deci trebuie să fie într-un fel transferate de la serverul de aplicații pentru razrabotchika. În acest moment, Google, din păcate, nu ajută, aveți nevoie pentru a funcționa în rețea realizovat însuși. Dar nu atât de mult timp în urmă într-un articol despre bibliotecile am scris despre Retrofite, atunci ea este doar din loc.

Google vă recomandă să actualizați periodic jeton pentru a evita komppometatsii și utilizarea de către hackeri. Pentru a iniția programele de aplicație sunt re-eliberare a cheii, pur și simplu apel încă o dată metoda getToken. Totuși, este posibil de a trimite o comandă pentru a servera reîmprospătare jeton pentru procesarea astfel komandy în cererea întâlnește clasa InstanceIDListenerService. Prezența în anexa acestui serviciu bazat în mod necesar, GCM nu va funcționa fără ea.

În această clasă, există o metodă edinstvenny onTokenRefresh, aceasta va determina sistemul într-un moment când prilozhenie poruncit să se actualizeze. Obiectivul principal al acestei metode - zapustit IntentService, conținând InstanceID.

Să examinăm acum caracteristici ale formipovaniya posturi. GCM are capacitatea de a trimite mesaje ca un server și un dispozitiv mobil la alte dispozitive cu aceeași aplicație. Astfel Logika construirea interogare rămâne, diferența este doar în adreca câmpurile și expeditor.

Articolul Continuare este disponibil numai abonaților

Opțiunea 2: Cumpără un singur articol