# Google Play Services

Google Play Services (in italiano Servizi di Google Play) è un framework proprietario di Google di servizi eseguiti in background e un pacchetto di API per dispositivi Android. Da quando è stato introdotto per la prima volta nel 2012, ha fornito un accesso semplice alle API di Google+ e OAuth 2.0, ma da allora si è espanso per coprire un'ampia varietà di servizi di Google, consentendo alle applicazioni di comunicare facilmente con i servizi attraverso strumenti comuni.

## Servizi

In parole semplici, Google Play Services è un software, sotto forma di app integrata nel sistema e trasparente per l'utente, che sovrintende all'erogazione di funzioni di base critiche del dispositivo. Evolve e migliora l'esperienza di utilizzo delle app. Si tratta, materialmente, di un pacchetto di librerie. È anch'essa presente su Google Play ed è regolarmente aggiornata. Questa soluzione è vantaggiosa per l'utente perché consente di avere periodicamente nuove funzioni di base o miglioramenti di quelle esistenti oppure delle app di Google (o i servizi di app di terze parti che fanno ricorso alle app Google) senza necessità di attendere una nuova release dell'intero sistema operativo Android.
I servizi in background di Google vengono forniti tramite l'app "Google Play Services" per Android, la quale viene utilizzata anche per aggiornare le app Android tramite Google Play. Questo pacchetto offre funzionalità di base come l'autenticazione con i servizi di Google, la sincronizzazione dei contatti, l'accesso alle impostazioni sulla privacy, la geolocalizzazione, il backup Android del dispositivo tramite l'account Google, l'aggiornamento delle app scaricate da Google Play. Inoltre è usata per le ricerche offline, la messaggistica cloud, le mappe e i giochi che ne fanno uso.. Essendo un'app caricata in background, consuma risorse in maniera "silente" e l'utente potrebbe voler disattivare i singoli servizi per risparmiarle oppure per proteggere la privacy (ad esempio la localizzazione).
L'adozione di una app che fornisce i servizi fondamentali di Google, permette anche ai dispositivi Android più vecchi (che hanno una versione di Android 4.0 o superiore) di poter usufruire delle più recenti funzionalità erogate; almeno in questa maniera si affronta il problema della frammentazione di Google.
Nel tempo l'app è diventata sia non disattivabile né disinstallabile (a meno di ricorrere a comandi via ADB o avere permessi di root) ma l'operazione rende il dispositivo fortemente instabile.
Google Services Framework, pur distinto da Google Play Services, è anch'esso un componente crtico di Android perché si occupa della comunicazione bidirezionale dei dati tra i servizi Google (anche quelli integrati nelle app di terze parti) e i server dell'infrastruttura di Google.

## API

Google Play Services è essenzialmente un'interfaccia API (Application Programming Interface) per gli sviluppatori per migliorare la comunicazione tra le app. Il pacchetto è composto da un insieme di microservizi, alcuni di questi sono descritti di seguito:
* Google Account Manager: si occupa di sincronizzare i dati dell'account Google, inclusi email e altri componenti correlati;
* Google Backup Transport: è il servizio che consente di eseguire il backup di contenuti e impostazioni del dispositivo, sincronizzandolo su Google Drive; questa funzione è relativa solo al backup e ripristino dell'account Google, cioè alla procedura Android integrata nel sistema, non a backup svolti da altri account/provider (a meno che non sia un servizio richiamato);
* Google Maps API: questa API permette alle applicazioni di sfruttare le funzionalità di Google Maps senza dover lasciare la app;
* Location API: questa API può essere utilizzata per eseguire azioni automatiche quando un utente entra o esce da un confine geografico specificato;
* Google Drive API: se sul dispositivo è installato Google Drive, la condivisione e l'archiviazione di file da altre app è facilitata con questa API;
* Google Play Game Services: questi servizi sono utilizzati per creare un'esperienza nelle sessioni di gioco multiplayer attraverso classifiche e risultati. Inoltre assicura di non perdere i progressi di un gioco sincronizzando e salvando i dati di gioco.
* Google+ platform: solitamente usata nelle app che offrono l'opzione di accesso "Accedi con Google+". Questo servizio consente di utilizzare un singolo nome utente e password per accedere a più account su più app.
* Google Cast Android API: consente alle applicazioni Android di trasmettere contenuti sullo schermo ad altri dispositivi tramite Google Cast.
* Google Mobile Ads: gli annunci per cellulari di Google vengono utilizzati per integrare annunci pubblicitari in applicazioni e visualizzare annunci come quelli basati sulla posizione o sulla cronologia di navigazione. In questa maniera gli sviluppatori di app possono monetizzare la loro app.

## Google Play Services per AR

Google Play Services per AR è il framework che eroga servizi per abilitare esperienze di realtà aumentata (AR), realizzate con ARCore. Gli aggiornamenti automatici di questo pacchetto (anch'esso disponibile su Play Store per i dispositivi supportati) garantiscono che le app con funzionalità AR possano funzionare senza download aggiuntivo.