Je vais essayer de répondre à toutes vos questions en abordant la question la plus importante : Comment 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 les données qu'il reçoit du serveur web. L'une des méthodes possibles pour y parvenir consiste à écrire votre propre fichier Fournisseur de contenu 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/
A Fournisseur de contenu définit une interface cohérente pour interagir avec les données stockées. Elle pourrait également permettre à d'autres applications d'interagir avec vos données si vous le souhaitiez. Derrière votre Fournisseur de contenu peut être une base de données Sqlite, un cache ou tout autre mécanisme de stockage arbitraire.
Bien que je recommande vivement l'utilisation d'un Fournisseur de contenu avec une base de données Sqlite, vous pourriez utiliser n'importe quel mécanisme de stockage basé sur Java.
Format d'échange de données :
C'est le format que vous utilisez pour envoyer les données entre votre serveur web et votre application Android. Les deux formats les plus populaires actuellement sont XML et JSON. Lorsque vous choisissez votre format, vous devez réfléchir aux bibliothèques de sérialisation disponibles. Je sais par expérience qu'il existe une bibliothèque fantastique pour la sérialisation JSON appelée gson : https://github.com/google/gson mais 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 rafraîchir le contenu mobile pour refléter le contenu du serveur. Vous voudrez également notifier le serveur chaque fois que vous apportez des modifications locales au contenu et que vous souhaitez refléter ces modifications. Android fournit la fonction SyncAdapter comme moyen de résoudre facilement ce problème. Vous devrez enregistrer des comptes d'utilisateurs, puis Android effectuera de nombreuses opérations magiques pour vous, et vous permettra de vous synchroniser automatiquement. Voici un bon tutoriel : http://www.c99.org/2010/01/23/writing-an-Android-sync-provider-part-1/
En ce qui concerne la façon dont vous identifiez si les enregistrements sont identiques, vous créez généralement des éléments avec un identifiant unique que vous stockez à la fois sur l'appareil Android et sur le serveur. Vous pouvez l'utiliser pour vous assurer que vous vous référez à la même référence. En outre, vous pouvez stocker des attributs de colonne tels que "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 récemment écrites.
1 votes
Vous devez d'abord déterminer votre protocole de communication avec le serveur, c'est-à-dire les données que vous pouvez transférer et la manière dont vous pouvez le faire.
0 votes
C'est important pour moi de transférer des données SQLlite, mais j'aimerais savoir comment transférer d'autres données. Je ne comprends pas ce que vous voulez dire à propos du protocole.
0 votes
Par protocole, j'entends ceci simple.wikipedia.org/wiki/Internet_Protocol
1 votes
Essayez konysync, un produit de konylabs qui fournit des solutions de bout en bout sur diverses plates-formes (Android, Windows, ios), serveurs web, fournisseurs de données (salesforce, sap providers), bases de données (sqlserver, mysql...).