It allows third-party application servers to send lightweight messages to
their Android applications. The messaging service is not designed for sending a
lot of user content via the messages. Rather, it should be used to tell the
application that there is new data on the server, so that the application can
fetch it.
C2DM makes no guarantees about delivery or the order of messages. So, for
example, while you might use this feature to tell an instant messaging
application that the user has new messages, you probably would not use it to
pass the actual messages.
An application on an Android device doesn’t need to be running to receive
messages. The system will wake up the application via Intent broadcast when the
the message arrives, as long as the application is set up with the proper
broadcast receiver and permissions.