android - मुझे एंड्रॉइड खाता प्रबंधक का उपयोग किसके लिए करना चाहिए?




accountmanager (3)

मैंने एंड्रॉइड एसडीके में खाता प्रबंधक देखा है और इसका उपयोग खाता जानकारी संग्रहीत करने के लिए किया जाता है। इस प्रकार, मुझे इसके बारे में कोई सामान्य चर्चा नहीं मिल रही है। क्या किसी को भी खाता प्रबंधक के पीछे क्या इरादा है और यह आपको क्या खरीदता है, इस बारे में किसी भी उपयोगी चर्चा के बारे में पता है? इस बारे में कोई राय किस प्रकार के खातों के लिए उपयुक्त है? क्या यह वह जगह होगी जहां आप अपने उपयोगकर्ता की खाता जानकारी सामान्य वेब सेवा के लिए रखेंगे?


खाता प्रबंधक वर्ग आपके फोन खातों के साथ एकीकृत है। इसलिए यदि आप सभी गाइड का पालन करते हैं और इसे सही तरीके से काम करते हैं तो आप मेनू "सेटिंग्स-> खाते और सिंक" मेनू के अंतर्गत अपने खाते देखेंगे। वहां से आप उन्हें अनुकूलित कर सकते हैं या उन्हें हटा भी सकते हैं। इसके अलावा खाता प्रबंधक के पास आपके खातों के प्रमाणीकरण टिकटों का कैश है। इसका उपयोग तब भी किया जा सकता है जब आप अपने खाते को सिंक्रनाइज़ करने की योजना नहीं बनाते (जहां तक ​​मुझे पता है)।

यदि आप नहीं चाहते हैं कि आपके खाते उस मेनू के अंतर्गत दिखाई दें, तो आपको खाता प्रबंधक का उपयोग नहीं करना चाहिए और खाते के डेटा कहीं और स्टोर नहीं करना चाहिए (शायद साझा प्राथमिकताओं में) http://developer.android.com/guide/topics/data/data -storage.html


यह सवाल थोड़ा पुराना है, लेकिन मुझे लगता है कि यह अभी भी अच्छी रुचि है।

ContentProvider AccountManager , ContentProvider और ContentProvider एक साथ जाओ।

पर तुम कर सकते हो:

AccountManager / SyncAdapter / ContentProvider :

  • खाता AccountManager अपने प्रमाण-पत्रों को परिभाषित करने के लिए उपयोगकर्ताओं को केंद्रीय बिंदु (सेटिंग्स> खाते) देता है
  • एंड्रॉइड निर्णय लेता है जब सिंक्रनाइज़ेशन SyncAdapter माध्यम से किया जा सकता है। बैटरी को अनुकूलित करने के लिए यह अच्छा हो सकता है (उदाहरण के लिए नेटवर्क डाउन होने पर कोई सिंक नहीं किया जाता है)
  • ContentProvider अनुप्रयोगों में डेटा साझा करने का एक सुविधाजनक तरीका है नोट: एंड्रॉइड पर इंटर-प्रोसेस संचार के अन्य तरीके हैं।
  • ContentProvider पृष्ठभूमि थ्रेड में डेटाबेस एक्सेस शेड्यूल करता है AsyncQueryHanlder पृष्ठभूमि थ्रेड में AsyncQueryHanlder से पूछताछ करने में मदद करता है, अनुप्रयोग को उत्तरदायी (एएनआर) त्रुटियों को रोकता है जबकि आपको स्पष्ट रूप से थ्रेडिंग को संभालने की आवश्यकता नहीं होती है।
  • ContentProvider ContentResolver के पर्यवेक्षक से संबंध ContentProvider : इसका मतलब है कि सामग्री बदलते समय विचारों को सूचित करना आसान है

निचली पंक्ति : फ्रेमवर्क ContentProvider / ContentProvider / ContentProvider मदद करता है यदि आप किसी वेब संसाधन से डेटा सिंक्रनाइज़ करना चाहते हैं। एपीआई 7 पर नकली / गूंगा कार्यान्वयन की आवश्यकता है

  • यदि आप केवल डेटा स्टोर करना चाहते हैं, तो आपको डेटा संग्रहण के लिए एक सरल तंत्र पर विचार करना चाहिए
  • यदि आपको केवल एकमात्र संसाधन लाने की आवश्यकता है, तो आप AsyncTaskLoader उपयोग कर सकते हैं
  • यदि आप छवियों को असीमित रूप से लोड करना चाहते हैं, तो आप स्क्वायर पिकासो जैसे विशेष पुस्तकालयों का उपयोग कर सकते हैं
  • यदि आप केवल किसी दिए गए समय पर कुछ कोड निष्पादित करना चाहते हैं, तो आप सेवा / अलार्म पर विचार कर सकते हैं
  • केवल एपीआई> = 7 से उपलब्ध है (इससे कोई फर्क नहीं पड़ता)

अंत में, यदि आप SyncAdapter उपयोग करते हैं, तो फायरबेस क्लाउड मैसेजिंग (पहले Google क्लाउड मैसेजिंग) उर्फ ​​को "ताज़ा नोटिफिकेशन" पर गंभीर अपडेट और ऑप्टिमाइज्ड बैटरी उपयोग करने पर गंभीरता से विचार करें।


AccountManager निम्नलिखित कारणों से अच्छा है:

  • सबसे पहले एक खाता प्रकार के तहत ऐप की सुविधाओं तक पहुंच के विभिन्न स्तरों के साथ एकाधिक खाता नामों को स्टोर करना है। उदाहरण के लिए, एक वीडियो स्ट्रीमिंग ऐप में, किसी के पास दो खाता नाम हो सकते हैं: एक सीमित संख्या में वीडियो तक डेमो पहुंच के साथ और दूसरा सभी वीडियो तक पूर्ण-महीने पहुंच के साथ। Accounts का उपयोग करने का यह मुख्य कारण नहीं है, हालांकि, चूंकि आप इस फैंसी-दिखने वाले Accounts की आवश्यकता के बिना आसानी से अपने ऐप में इसे प्रबंधित कर सकते हैं ...।
  • Accounts का उपयोग करने का दूसरा लाभ उपयोगकर्ता द्वारा अधिकृत प्राधिकरण द्वारा अनुरोध किए जाने पर उपयोगकर्ता नाम और पासवर्ड के साथ पारंपरिक प्राधिकरण से छुटकारा पाने के लिए है, क्योंकि प्रमाणीकरण पृष्ठभूमि में होता है और उपयोगकर्ता को केवल कुछ शर्त में उनके पासवर्ड के लिए कहा जाता है, जिसे मैं बाद में प्राप्त करूंगा।
  • एंड्रॉइड में Accounts सुविधा का उपयोग करना किसी के अपने खाते के प्रकार को परिभाषित करने की आवश्यकता को भी हटा देता है। आप शायद Google खाते का उपयोग प्राधिकरण के लिए कर रहे हैं, जो एक नया खाता बनाने और उपयोगकर्ता के लिए इसके प्रमाण-पत्र याद रखने की परेशानी बचाता है।
  • सेटिंग्स → खातों के माध्यम से Accounts को स्वतंत्र रूप से जोड़ा जा सकता है
  • क्रॉस-प्लेटफ़ॉर्म उपयोगकर्ता प्राधिकरण आसानी से Accounts का उपयोग करके प्रबंधित किया जा सकता है। उदाहरण के लिए, ग्राहक आवर्ती लॉग इन की आवश्यकता के बिना अपने एंड्रॉइड डिवाइस और पीसी में एक ही समय में संरक्षित सामग्री तक पहुंच सकते हैं।
  • सुरक्षा बिंदु से, सर्वर के हर अनुरोध में एक ही पासवर्ड का उपयोग करने से गैर-सुरक्षित कनेक्शन में संभावित छिपाने की अनुमति मिलती है। पासवर्ड चोरी को रोकने के लिए पासवर्ड एन्क्रिप्शन पर्याप्त नहीं है।
  • अंत में, एंड्रॉइड में Accounts सुविधा का उपयोग करने का एक महत्वपूर्ण कारण क्लाइंट (उपयोगकर्ता) के प्रमाण-पत्रों के समझौता किए बिना Accounts पर निर्भर किसी भी व्यवसाय में शामिल दोनों पक्षों को अलग करना है, जिसे प्रमाणीकरणकर्ता और संसाधन स्वामी कहा जाता है। शर्तें अस्पष्ट लग सकती हैं, लेकिन जब तक आप निम्नलिखित अनुच्छेद पढ़ नहीं लेते तब तक हार न दें ... 😉

मुझे बाद में वीडियो स्ट्रीमिंग ऐप के उदाहरण के साथ विस्तृत करने दें। कंपनी ए प्रीमियम स्ट्रीमिंग सेवाओं के साथ अपने कुछ सदस्यों को प्रदान करने के लिए कंपनी बी के साथ अनुबंध में एक वीडियो स्ट्रीमिंग व्यवसाय धारक है। कंपनी बी अपने उपयोगकर्ता को पहचानने के लिए उपयोगकर्ता नाम और पासवर्ड विधि नियोजित करता है। कंपनी ए के लिए बी के प्रीमियम सदस्यों को पहचानने के लिए, बी से उनकी सूची प्राप्त करने और समान उपयोगकर्ता नाम / पासवर्ड मिलान तंत्र का उपयोग करने का एक तरीका होगा। इस तरह, प्रमाणीकरणकर्ता और संसाधन मालिक वही हैं (कंपनी ए)। उपयोगकर्ताओं के अलावा दूसरे पासवर्ड को याद करने के दायित्व के अलावा, यह बहुत संभव है कि वे ए से सेवाओं का उपयोग करने के लिए अपनी कंपनी बी प्रोफाइल के समान पासवर्ड सेट करें। यह स्पष्ट रूप से अनुकूल नहीं है।

उपर्युक्त कमियों को दूर करने के लिए, ओथ को पेश किया गया था। प्रमाणीकरण के लिए एक खुले मानक के रूप में, उपर्युक्त उदाहरण में, ओएथ ने मांग की है कि अधिकृत उपयोगकर्ता (तृतीय पक्ष) के लिए एक्सेस टोकन नामक कुछ टोकन जारी करके कंपनी बी (प्रामाणिक) द्वारा प्रमाणीकरण किया जाए और उसके बाद कंपनी ए (संसाधन स्वामी) प्रदान करें टोकन तो कोई टोकन का मतलब कोई पात्रता नहीं है।

मैंने here. अपनी वेबसाइट पर AccountManager पर इस पर और अधिक विस्तार किया here.





accountmanager