मैं बड़े प्रश्न को संबोधित करके आपके सभी सवालों का जवाब देने की कोशिश करूंगा: मैं वेबसर्वर और एंड्रॉइड ऐप के बीच डेटा कैसे सिंक कर सकता हूं?
अपने वेबसर्वर और एंड्रॉइड ऐप के बीच डेटा को सिंक करना आपके एंड्रॉइड डिवाइस पर विभिन्न घटकों के एक जोड़े की आवश्यकता होती है।
लगातार भंडारण:
यह आपके फोन वास्तव में वेबसर्वर से प्राप्त डेटा को संग्रहीत करता है। इसे पूरा करने के लिए एक संभव तरीका एक Sqlite डेटाबेस द्वारा समर्थित अपना स्वयं का कस्टम ContentProvider लिख रहा है। सामग्री प्रदाता के लिए एक अच्छा ट्यूटोरियल यहां पाया जा सकता है: http://thinkandroid.wordpress.com/2010/01/13/writing-your-own-contentprovider/
एक ContentProvider आपके संग्रहीत डेटा के साथ बातचीत करने के लिए एक सुसंगत इंटरफ़ेस को परिभाषित करता है। यदि आप चाहते हैं तो यह आपके डेटा के साथ अन्य अनुप्रयोगों को भी बातचीत करने की अनुमति दे सकता है। अपने ContentProvider के पीछे Sqlite डेटाबेस, Cache, या कोई भी मनमाना स्टोरेज मैकेनिज़्म हो सकता है।
जबकि मैं निश्चित रूप से एक ContentProvider का उपयोग करने की सलाह दूंगा एक SQLite डेटाबेस के साथ आप आप चाहते थे किसी भी जावा आधारित भंडारण का उपयोग कर सकते।
डेटा इंटरचेंज प्रारूप:
यह वह प्रारूप है जिसका उपयोग आप अपने वेबसर्वर और अपने एंड्रॉइड ऐप के बीच डेटा भेजने के लिए करते हैं। इन दिनों दो सबसे लोकप्रिय प्रारूप XML और JSON हैं। अपना प्रारूप चुनते समय, आपको यह सोचना चाहिए कि किस प्रकार के क्रमांकन पुस्तकालय उपलब्ध हैं। मैं जानता हूं कि जसोन सीरियलाइजेशन के लिए एक शानदार लाइब्रेरी है, जिसे गॉन कहा जाता है: https://github.com/google/gson , हालांकि मुझे यकीन है कि XML के लिए भी इसी तरह की लाइब्रेरी मौजूद हैं।
सिंक्रनाइज़ेशन सेवा
आप कुछ प्रकार के अतुल्यकालिक कार्य चाहते हैं जो आपके सर्वर से नया डेटा प्राप्त कर सकते हैं और सर्वर की सामग्री को प्रतिबिंबित करने के लिए मोबाइल सामग्री को ताज़ा कर सकते हैं। जब भी आप सामग्री में स्थानीय परिवर्तन करते हैं और उन परिवर्तनों को प्रतिबिंबित करना चाहते हैं, तो आप सर्वर को सूचित करना चाहते हैं। Android इस पैटर्न को आसानी से हल करने के तरीके के रूप में SyncAdapter पैटर्न प्रदान करता है । आपको उपयोगकर्ता खातों को पंजीकृत करने की आवश्यकता होगी, और फिर एंड्रॉइड आपके लिए बहुत सारे जादू का प्रदर्शन करेगा, और आपको स्वचालित रूप से सिंक करने की अनुमति देगा। यहाँ एक अच्छा ट्यूटोरियल है: http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1/
जैसे कि आप कैसे पहचानते हैं कि क्या रिकॉर्ड समान हैं, आमतौर पर आप एक अद्वितीय आईडी के साथ आइटम बनाएंगे जो आप एंड्रॉइड डिवाइस और सर्वर दोनों पर संग्रहीत करते हैं। आप यह सुनिश्चित करने के लिए उपयोग कर सकते हैं कि आप उसी संदर्भ का संदर्भ ले रहे हैं। इसके अलावा, आप यह सुनिश्चित करने के लिए कि आप हमेशा सबसे ताज़ा डेटा प्राप्त कर रहे हैं, या आप गलती से नए लिखे गए डेटा को नहीं लिखते हैं, आप "updated_at" जैसे कॉलम विशेषताओं को संग्रहीत कर सकते हैं।