I am syncing using SyncAdapter, custom ContentProvider and AccountManager services. I am a bit stucked with the synchronization implementation. I have been greatly helped by the SDK example "SampleSyncAdapter" for Contacts which stores the mobile device IDs (_id in Android) in the server tables so when it responds with the dirty list, the device knows whether to add or update content. 
Does this pattern mean that I have to add a new server side columns for every client? I might support other platforms in the future (e.g. iPhone data IDs - I'm not familiar with its SDK).
 
     
     
    