In order to implement push notifications for Android without using a third party service such as ACS or UrbanAirship, you must implement your own application server that stores and retrieves device registration ids that are created by Google-provided GCM Connection Servers. Here is the Google documentation for implementing a GCM Server.
Basically, push notifications are sent from the sending device to the application server and then through Google's GCM Servers to the destination devices, where the devices' operating system receives the push notification an displays it appropriately.
It may be easier to implement push notifications initially using one of the free accounts on the third party services (ACS, UrbanAirship), and once the mobile functionality is developed and tested, implement the application server and refactor the mobile code as needed.
Hope this helps. If so, please up-vote (need the rep to use other features in SO :)