I’ve been an Android fan and user since the days of the HTC Hero (which ended up in the hands of the Taliban after being lost in a Melbourne cab – but that’s another story), but one thing that has caused plenty of frustration over the years is how the contacts address book gets bloated.
In a device who’s prime function is communication, having an address book that is 10x bigger than it should be causes massive performance problems – from creating a new SMS/email message through to making a call from the dialer, having too many contacts becomes a daily pain in the butt.
My main address book in Google Apps is already pretty large, with a bit over 3000 contacts in it. To help with using Voice, and now Hangouts as a browser extension, I’ve also set up a sync where contacts created in my Apps account are synced (via Xapier) across to my personal Gmail account.
Having gotten the new Nexus 6 last week, I set up my accounts and mistakenly left the “sync” option on for Gmail – the result was a doubling up of contacts. Android is pretty clever at merging the view of them, but it doesn’t stop there being multiple contacts in the actual database on the phone.
Now at close to 7000 contacts, things are getting a bit bloated/heavy, but wait, it gets worse.
Install the LinkedIn app? Great, now you get a contact for each of your connections (another 4000 there). Facebook seems to do the same (1200 or so there), and then add Skype and you’ll get another contact for each of your Skype connections. I don’t use Whatsapp anymore because it destroyed my contacts list, creating what seemed like a new Whatsapp contact for every other apps contact and grinding my address book and compose processes to a halt.
All of this, combined with some of those apps seeming to multiple contacts, left me with a contact list of over 38,000 contacts – 10x more than I actually need (or want).
The first step was to do what I should have raced to do when setting up my phone (and what Google should make an option with checkboxes at the time of connection) – disabling my @gmail.com account sync.
Unfortunately, though, while disconnected, it didn’t actually remove the contacts from my phone (I can see why they’d make that choice – deleting is pretty final), and with all the other shit listed above, I really wanted to wipe the contact database clean and start again.
One (nuclear) option is to do a factory reset of your phone and start again (being quicker at the unsync) and choosing not to do address book synchronization for apps like LinkedIn and Skype in the first place. I didn’t really fancy having to go through the effort of setting up Google Authenticator codes, or having to re-setup everything from icons to apps, so this wasn’t appealing.
The better option is to use a great little free app called “Delete Contacts“. This app does what it’s name suggests – it deletes all of the contacts on your phone, either group by group or en-masse.
Since most of the apps that create extra contacts are just for consuming contacts (LinkedIn) or using a special purpose app to contact them (Skype), you don’t care too much about consequences of doing a delete on these, but your Google address book is more two-way.
I don’t know if using Delete Contacts would delete things from Google’s address book in the cloud, but didn’t want to take a chance. The steps to “unsync” changes from your phone back up to Google are:
- Open the “Contacts” app (this is in Lollypop – earlier versions have different paths, like going via “Settings”).
- Click on the menu option in the top right.
- Choose “Accounts”.
- Choose “Google”.
- Choose the account you want to unsync
- Untick the checkbox next to “Contacts”
- Repeat steps 5 and 6 for each Google account.
Once this is done, fire up Delete Contacts app. The first two options are “read only”, but choose the option half way down the screen called “Delete Contacts”. It will then delete all of your contacts.
You’ll probably need to wait a while (mine took most of the time this blog post took to write), and then go back into the section above where you unticked the Sync process and turn on just the account(s) you want to sync.
I was hoping that this would be enough, however, the method of deleting contacts we’ve followed here is a bit brutal. Basically, Android appears to store a “last modification” timestamp, and when the sync process runs it only fetches new contacts via Google’s API that were modified after that timestamp.
The solution, though, is pretty easy – you just need to modify all of your contacts, which is easier than it sounds.
- Go into Google Contacts.
- Create a new Group (link is in the left hand nav at the time of writing, below all the other groups)
- Call it something like “Test”.
- Then tick the checkbox in the top to select all the contacts on the page (100 at a time).
- Click on the “Groups” icon, and then select the “Test” group you created in Step 3.
Do this for each page of contacts (unfortunately there’s no “select all from all pages” option with Google Contacts). Once you’re done, you can delete the “Test” group you created in Step 3 above.
The reason you’re doing this is because by adding the contacts to this test group, you’ll have updated their “modified” timestamp, which means your phone will then download them as part of it’s normal sync. Within a few minutes (over wifi) you should see a crisp, clean new address book and faster responsiveness when you try and make a call or send a text message. Enjoy!