Local blog for Italian speaking developers
Doze in Android 6.0 Marshmallow: come è stato usato da Twitter per migliorare le prestazioni delle notifiche
15 febbraio 2016
In ottobre abbiamo pubblicato un
post del blog
sull’integrazione tra Google Cloud Messaging (GCM) e Doze in Android 6.0 Marshmallow che consente di offrire all’utente miglioramenti in termini di prestazioni e usabilità. In questo scenario, i messaggi con priorità normale permettono al dispositivo di restare in modalità Doze, mentre quelli con priorità alta riattivano dispositivo interrompendone il “sonnellino”. Per dare un ottimo esempio di questa funzionalità e delle best practice in Android, abbiamo parlato con il team tecnico di Twitter.
Twitter ha condotto ricerche approfondite sul tipo di messaggi che devono avere una priorità alta dal momento che questo tipo di priorità può riattivare il dispositivo interrompendo la modalità Doze. Per soddisfare le proprie esigenze specifiche, per Twitter era importante che la trasmissione dei messaggi diretti avesse una priorità alta, mentre le menzioni avrebbero avuto una priorità normale.
Luke Millar, Android Engineering Manager presso Twitter, ha spiegato che “grazie ad Android M abbiamo la possibilità di essere più eco-consapevoli in termini di risparmio energetico. Questa funzione ci consente di specificare il tipo di notifiche che riattivano un dispositivo in modalità Doze e quelle che non interrompono questa sospensione. In genere indichiamo a GCM di attendere e di non trasmettere le notifiche push fino alla riattivazione successiva del telefono dell’utente. Tuttavia, gli utenti si aspettano di ricevere alcune notifiche push immediatamente, come le notifiche per i messaggi diretti, perciò le abbiamo impostate come notifiche con priorità alta. È bello essere in grado di specificare quando e come arriveranno ai nostri utenti queste notifiche.”
Per testare Doze, i tecnici di Twitter hanno seguito la procedura
descritta
sul sito Android Developers. La procedura spiega come utilizzare i comandi adb per simulare la modalità Doze su un dispositivo fisico o virtuale. Grazie a questo metodo, Twitter è stata in grado di verificare con successo in che modo avrebbero funzionato le sue priorità di messaggistica in un ambiente del mondo reale.
Un’altra best practice utilizzata da Twitter è stata la trasmissione di payload di dimensioni maggiori, come per l’invio di
Highlight di Twitter
. In questo caso si è scelto di trasmettere i metadati nella notifica, che è stata quindi utilizzata per sincronizzare l’applicazione al fine di ottenere gli Highlight richiesti. In altre parole, i contenuti degli Highlight non sono stati trasmessi in una notifica; è stato invece attivato un meccanismo di sincronizzazione per aggiornare i contenuti dell’app.
Per ulteriori informazioni sull’uso di GCM con le app in ambienti in standby segnaliamo questa
documentazione
.
Ulteriori informazioni su Google Cloud Messaging e sul relativo utilizzo per le notifiche nelle applicazioni Android, iOS e Web sono reperibili sul sito Google Developers
qui
.
Etichette
Android
Firebase
Google Cloud Platform
GDL
Eventi
Google Developers Live
machine learning
App
Google Play
Chrome
Cloud
api
GDLItalia
GDE
TensorFlow
iOS
AppEngine
GDG
AMP
Cloud Functions
Google Assistant
Android Studio
BigQuery
Google Developers Expert
Università
Google AppEngine
Actions on Google
Android Wear
Deep Learning
GAE
Google Play Store
HTML5
JavaScript
Maps
AngularJS
Annunci
Cloud Machine Learning
Kubernetes
Polymer
Android Things
Community
DevTools
Google App Engine
IoT
Kotlin
intelligenza artificiale
Cloud Firestore
Entrepreneurship
Firebase Analytics
Google Cast
Google I/O
security
Dart
Drive
Google Data Studio
Google Play Games
Android O
Cloud Spanner
Cloud TPU
Compute Engine
Flutter
GSoC
Games
Google Compute Engine
Material Design
Mobile
PWA
Startup
open source
AIY Project
Apps Script
Crashlytics
Diversity
Firebase Cloud Messaging
Google Maps
Gsuite
Python
Research
VR
coding
AR
ARCore
Augmented Reality
Cardboard
Cloud AI
Dialogflow
Firebase Realtime Database
Gmail
Google Cloud Messaging
Google ContainerEngine
Google Play Console
Responsive Design
Women
beacons
cloud storage
node JS
unity
API Cloud Vision
Add-ons
Android Jetpack
Android P
AndroidDevStory
Brillo
Classroom
DevFest
Fabric
G Suite
GWT
GoLang
Google Brain
Google Container Engine
Google I/O Extended
ML kit
Mobile Sites
Prediction
Project Tango
SDK
Stackdriver
Tales
Testing
Udacity
Virtual Reality
WTM
YouTube
analytics
api.ai
courses
reti neurali
sign-in
ARkit
Android App bundle
Android Architecture
Android Architecture Components
Android Go
Android Instant App
Android Pie
AndroidTV
Angular
AutoML
Betatesting
C++
Certification
Cloud Service Platform
Cloud Shell
Community Connector
Computer Science
Converge
Conversation Design
Emulatore Android
GCE
GDD
Gboard
Glass
Go
Google App Script
Google Cloud Functions
Google Cloud billing
Google Developer Days
Google Identity Platform
Google Launchpad
Google Lens
Google Now
Google Photos
Google Plus
Google+
GoogleDevWeekly
GoogleLaunchpad
Graph
Ingress
Instant Apps
Knative
Lighthouse
Localization
Mondaygram
Monetization
NativeScript
PHA
Resonance Audio
Serverless
TensorFlow Lite
UX
WWW
Wear OS
Web
WebAssembly
authsub
botnet
cancer
chatbot
codelab
daydream
designer
hashcode
kids
maker
nearby
oauth
openid
realtime
verify apps
Archivio Blog
2019
feb
gen
2018
dic
nov
ott
set
ago
lug
giu
mag
apr
mar
feb
gen
2017
dic
nov
ott
set
ago
lug
giu
mag
apr
mar
feb
gen
2016
dic
nov
ott
set
ago
lug
giu
mag
apr
mar
feb
gen
2015
dic
nov
ott
set
ago
lug
giu
mag
apr
mar
feb
gen
2014
dic
nov
ott
set
ago
lug
giu
mag
apr
mar
feb
gen
2013
dic
nov
ott
set
ago
lug
giu
mag
apr
mar
feb
gen
Feed
Follow @GoogleDevsItaly