The Nexus 4 and Owncloud work very nicely together to keep contacts and calendar in sync. Below are my notes for setting this up.
To get your CardDAV URL go into Contacts -> Click the gear icon in the bottom left -> There is a little icon that looks like the earth -> Click this to expose the CalDAV link
It will be something like: https://your.host.name/owncloud/remote.php/carddav/addressbooks/username/contact
where your.host.name is your hostname, and username is your username for owncloud
To get your Caldav URL go into Calendar -> Click the gear icon in the top right -> This exposes two URLs, I used the primary rather than the iOS address.
Something like: https://your.host.name/owncloud/remote.php/caldav/
Note that in both these examples I assume you are using https.
On your Android device (I have a Nexus 4), you want to go to the Google Play Store and buy & download ‘CardDAV-Sync’ and ‘CalDAV-Sync’. There are free versions with fewer features, but I’ve not used these so I can’t vouch for them.
If like me you have a disposition against paying for software, to make it easier you can remind yourself that these apps are i) very inexpensive ii) offer high utility and are iii) independently developed.
You can read about these apps at the developers website, which is http://dmfs.org/
If you are running the latest Android (Jelly Bean at the time of writing, which is the version on the Nexus 4), you also need to install the CalDAV sync Jelly Bean work around (available from the Play Store).
If you enable bi-directional sync, don’t forget to set the conflicts policy (either phone always wins or server always wins) to suit your preference.
These two apps have worked flawlessly for me; I would argue the Nexus 4 and Owncloud is a pretty strong combination. The ideal (IMHO) is to have a contact and calendar in one place and push/sync it to all mobile devices, and this facilitates that.