Synchronizing PIM data on Android
This won't be strictly a programming-related post, but as you may find this information useful, particularly if you want to quickly get your new Android phone synchronized without reading through tons of (largely outdated) articles and spending hours reading forums for user opinions, I still post it.
Unfortunately, synchronizing PIM (Personal information management) data (calendars and contacts; let alone tasks!) with Android phones is in no way as seamless as is with, say, Palm OS, Windows Mobile or even the iPhone. There's no ActiveSync / Windows Mobile Device Center or iTunes at all, which would make all this really easy, automatic and even without the need for deploying any new software.
First and foremost, you will want to decide whether you want to synchronize though your Gmail account. Unless you really need to synchronize your PIM data with your Gmail account, I'd choose the direct, Gmail-less way as it offers the easiest synchronization – exactly the same as you may have been accustomed to on other, PIM synchronization wise, superior platforms.
Let's start with the latter, that is, direct (offline) synchronization. In my tests, for this and most cost-effective (it's, actually, free), I've found the best is MyPhoneExplorer. It, in addition to be able to sync over not only USB but also Wi-Fi and Bluetooth, not only reliably(!!) synchronizes contact and calendar entries (it passed all my “add a contact on the phone / Outlook side and check whether the changes get synchronized” tests), but also backs up SMS messages, call lists (just like advanced tools back in the Windows Mobile days). It's also very popular at SyncDroid, the best site dedicated to the question of synchrozining under Android.
Should you want to use it over USB (which I did with a Samsung Galaxy Mini), you'll also need to install the USB drivers for the phone. With Samsung phones, you'll need to download and install the pretty much bloated Kies for this (for non-Samsung manufacturers, you'll need to get their respective drivers instead, of course). After installation, Windows (tested under XP) will locate the drivers. Don't be afraid, you won't need to use Kies any more – its sole purpose is installing the drivers of the phone. (There may be separate, much less bloated driver downloads for Samsung phones – use Google, should you absolutely want to avoid installing Kies. I didn't want to waste time on this.)
While using MyPhoneExplorer is really-really easy and straightforward, keep in mind that you must configure it for each kind of PIM data (Calendar / Contacts with Android phones as storing Tasks databases are not supported by the mobile operating system) to be synchronized with Outlook, and not only with MyPhoneExplorer. Also note that it, as with almost all data synchronization tools, allows for one-direction synchronization only. This helped me a lot when, at first, I wanted to get rid of the dozens of nameless (see the problem with Gmail importing CSV files with an empty “Name” field) contacts on the Android phone I previously synchronized the contents of the Gmail account. With setting the synchronization direction to be strictly from-Outlook-to-phone, I could easily get rid of all the (bad) contacts of the phone without having to delete them myself on the phone, one-by-one, by hand. After this, of course, I've set the synchronization direction back to bidirectional so that changes, new records etc. are correctly synchronized in both direction.
Unfortunately, Android doesn't have a built-in Tasks application, unlike the long-gone Windows Mobile and Palm OS, or the forthcoming iOS5 (Reminders; pre-iOS5 OS'es don't have a native Tasks client). This means you need to go to http://gmail.com/tasks from your Android Web browser to see your Gmail tasks – unless you install a third-party, strictly local, non-browser-based Tasks application capable of synchronizing with either Outlook or Gmail (or both). (I haven't looked around for third-party Tasks apps.)
Unfortunately, unlike with Contacts, there isn't any official, third party app-free way of importing Tasks from Outlook. The latter can export them as CSV files (and a lot other formats) but, as opposed to directly importing the Contacts CSV files, right now it's not possible to directly import these files into Gmail.
Problems with directly importing Contacts into Gmail
The biggest hurdle is Gmail's not supporting any name subfield except for the “catch-up” Name, when you use CSV import as is explained at the 2003 / 2007 Outlook migration docs of Microsoft. This means your contacts, as long as you haven't paid attention to not only nicely separate its name fields but also entering the full name into the Name field of Outlook, will be anonymous. The subfields will be imported, but will be pretty much useless when synched back to your Android headset.
Unfortunately, Microsoft's above-linked tutorials on the migration doesn't even mention this problem. Neither does Google's. I've read through several third-party tutorials (1, 2 etc.) but they don't help much either. Needless to say, Outlook doesn't let for mapping (in this case, just concatenating the subfields) either. This means without third party support (or, without your manually filling in the Name fields) it's not possible to migrate your Outlook contacts to Gmail.
Dynamic Outlook synchronization with Gmail
Google's own (business) client (Google Apps Sync for Microsoft Outlook) is commercial and costs $5 per user per month. User wár17 HERE recommends KiGoo http://www.getkigoo.com/support.html but, as it seems, it's no longer free and the dead / non-working links (e.g., the FAQ) aren't really promising.
Note that the most recommended MyPhoneExplorer can also synchronize with Gmail. (I haven't tested how this works as direct, USB-based synchronization worked just fine and I didn't want a middleware possibly introducing non-trivial errors and bugs not visible at once.)
There's only one product by Google that does synchronize and is free (unlike the above-mentioned Google Apps Sync for Microsoft Outlook): Google Calendar Sync. As you may have already guessed, it only synchronizes Calendar items (no Tasks / no Contacts). As I needed to sync the latter, I haven't really tested it; hope it fares better than CompanionLink for Outlook introduced below.
CompanionLink for Outlook
A lot of people (an example HERE; the SyncDroid folks also recommend it on their main page) recommend CompanionLink's products; namely, CompanionLink for Outlook. (Note that some people don't like it.) In my tests, it was far less reliable than MyPhoneExplorer. It has never synchronized new Contact entries entered over the Gmail side (including ones added on the phone itself) to the desktop Outlook. The opposite direction (apart from the initial synchronization, which worked by also correctly synchronizing the Name field, unlike with the CSV-based import as is outlined above.
Note that CompanionLink for Outlook stores Outlook tasks as Calendar entries (they can't be seen in the real Tasks window in either a desktop or an Android Web browser) and doesn't seem to synchronize them from Gmail back to the desktop Outlook either.
There's another overview, mostly on direct, local solutions not using Gmail at all.