GCM (Google Cloud Messaging) is a free service that allows servers to send lightweight messages to Android apps and devices. It supports sending notifications to apps even if they aren't actively running. GCM handles all aspects of queueing messages and delivering them efficiently to apps. Developers can use GCM to notify apps of new data to fetch from the server, like messages in a chat app. The GCM architecture involves an Android app, a 3rd party app server, and Google GCM servers. Apps must register with GCM and get a registration ID to receive messages. Servers authenticate with API keys to send messages via the GCM connection server to apps.