J'essaierai de répondre à toutes vos questions en répondant à la question plus large: comment puis-je synchroniser les données entre un serveur Web et une application Android?
La synchronisation des données entre votre serveur Web et une application Android nécessite quelques composants différents sur votre appareil Android.
Stockage persistant:
C'est ainsi que votre téléphone stocke réellement les données qu'il reçoit du serveur Web. Une méthode possible pour y parvenir consiste à écrire votre propre ContentProvider personnalisé soutenu par une base de données Sqlite. Un tutoriel décent pour un fournisseur de contenu peut être trouvé ici: http://thinkandroid.wordpress.com/2010/01/13/writing-your-own-contentprovider/
Un ContentProvider définit une interface cohérente pour interagir avec vos données stockées. Il pourrait également permettre à d'autres applications d'interagir avec vos données si vous le souhaitez. Derrière votre ContentProvider peut se trouver une base de données Sqlite, un cache ou tout mécanisme de stockage arbitraire.
Bien que je recommanderais certainement d'utiliser un ContentProvider avec une base de données Sqlite, vous pouvez utiliser n'importe quel mécanisme de stockage basé sur Java que vous souhaitez.
Format d'échange de données:
Il s'agit du format que vous utilisez pour envoyer les données entre votre serveur Web et votre application Android. Les deux formats les plus populaires de nos jours sont XML et JSON. Lorsque vous choisissez votre format, vous devez penser au type de bibliothèques de sérialisation disponibles. Je sais d'emblée qu'il existe une bibliothèque fantastique pour la sérialisation json appelée gson: https://github.com/google/gson , bien que je suis sûr que des bibliothèques similaires existent pour XML.
Service de synchronisation
Vous aurez besoin d'une sorte de tâche asynchrone qui peut obtenir de nouvelles données de votre serveur et actualiser le contenu mobile pour refléter le contenu du serveur. Vous souhaiterez également informer le serveur chaque fois que vous apportez des modifications locales au contenu et souhaitez refléter ces modifications. Android fournit le modèle SyncAdapter comme un moyen de résoudre facilement ce modèle. Vous devrez enregistrer des comptes d'utilisateurs, puis Android effectuera beaucoup de magie pour vous et vous permettra de synchroniser automatiquement. Voici un bon tutoriel: http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1/
Quant à la façon dont vous identifiez si les enregistrements sont les mêmes, vous créerez généralement des éléments avec un identifiant unique que vous stockerez à la fois sur l'appareil Android et sur le serveur. Vous pouvez l'utiliser pour vous assurer que vous faites référence à la même référence. De plus, vous pouvez stocker des attributs de colonne comme "updated_at" pour vous assurer que vous obtenez toujours les données les plus récentes, ou que vous n'écrivez pas accidentellement sur des données nouvellement écrites.