C2DM: your app-users must have the gmail account.
MQTT: when your connection reached to 1024, it will stop work because of it used "select model " of linux.
There is a free push service and api for android, you can try it: http://push-notification.org