Nothing can force you to use https between your app and your server.
In fact, even c2dm servers accept http.
The 'requirement' is to protect your users data and your credentials,
http can be trivially intercepted.
You don't need to get a signed cert either - you can use a self-signed cert,
but verify the signature on the client.
You control the client - unlike a browser, where you can't easily change the
cert validation. You'll need to override the HostnameVerifier to accept
self-signed and to do the verification.
I guess you could also have a public key included in your app, and just
encrypt the payload before sending it over HTTP - if you use a hosting
service that doesn't allow https.
Costin