एंड्रॉइड O में नया ऑटोफिल फ्रेमवर्क पासवर्ड मैनेजरों की एक्सेसिबिलिटी सेवाओं से जुड़ी लंबे समय से चली आ रही समस्या का समाधान करेगा।
Google को रिलीज़ हुए एक महीना हो चुका है पहला Android O डेवलपर पूर्वावलोकन (समय निश्चित रूप से तेजी से बीतता है!), और एंड्रॉइड के किसी भी नए संस्करण की तरह - इसमें खोजने के लिए बहुत कुछ है। हमने प्रकाशित किया है बहुत सारे लेख Android O के बारे में पहले से ही बताया जा चुका है, लेकिन एक विशेषता है जिसके बारे में मुझे लगता है कि उस पर वास्तव में उतना ध्यान नहीं दिया गया है जिसका वह हकदार है: ऑटोफ़िल फ़्रेमवर्क.
Android O में ऑटोफ़िल
इन दिनों पासवर्ड प्रबंधकों की संख्या एक दर्जन से भी अधिक है (हालाँकि हम हैं)। ओपन-सोर्स KeePass का आंशिक), लेकिन यह केवल Android O के साथ ही है कि Google वास्तव में आधिकारिक तौर पर पासवर्ड प्रबंधकों का समर्थन करता है। एंड्रॉइड ओ के साथ, तृतीय-पक्ष एप्लिकेशन ऑटोफिल सेवा के रोल को भर सकते हैं, जो नए ऑटोफिल फ्रेमवर्क के माध्यम से ऐप्स के साथ संचार करते हैं। ऐसे ऐप्स जो मानक का उपयोग करते हैं देखना तत्व ऑटोफ़िल फ़्रेमवर्क के साथ बॉक्स से बाहर काम करेंगे, हालांकि ऐसे अतिरिक्त कदम हैं जो डेवलपर्स उठा सकते हैं
स्वतः भरण के लिए अनुकूलन करें यह सुनिश्चित करने के लिए कि ऐप के किसी भी कस्टम व्यू को ऑटोफिल किया जा सकता है।जब एक ऑटोफिल करने योग्य दृश्य फोकस में आता है, तो ऑटोफिल फ्रेमवर्क एक ऑटोफिल अनुरोध को लागू करेगा। ऑटोफ़िल सेवा कुछ ऑटोफ़िल डेटासेट (जैसे उपयोगकर्ता नाम, पासवर्ड, पता, क्रेडिट कार्ड नंबर इत्यादि) को वापस भेजकर प्रतिक्रिया देती है जिसे उपयोगकर्ता तब चुन सकता है। ऑटोफ़िल सेवा उपयोगकर्ता द्वारा सेटिंग्स -> ऐप्स और नोटिफिकेशन -> डिफ़ॉल्ट ऐप्स -> ऑटोफ़िल ऐप में निर्दिष्ट की जाती है।
उपरोक्त नए ऑटोफिल फ्रेमवर्क की व्याख्या अनुरोध करने वाले ऐप और ऑटोफिल सेवा दोनों पर क्या हो रहा है, इसका एक संक्षिप्त सारांश है। यहां आपकी समझ के लिए सबसे महत्वपूर्ण बात यह नहीं है कि Android O में ऑटोफ़िल कैसे काम करता है, बल्कि यह तथ्य है कि पासवर्ड प्रबंधक ऐप्स अब स्वयं यह पता लगाने में सक्षम नहीं हैं कि कोई दृश्य कब स्वत: भरा जा सकता है.
अनुशंसित पाठ: AgileBits दिखाता है कि Android O का ऑटोफ़िल फ़्रेमवर्क कैसा दिखेगा
Android O से पहले ऑटोफ़िल
इसकी तुलना एंड्रॉइड O से पहले ऑटोफ़िल कैसे काम करती थी, उससे करें। इससे पहले कि पासवर्ड प्रबंधकों के पास यह पता लगाने के लिए किसी भी प्रकार की आधिकारिक विधि होती थी कि कोई दृश्य कब स्वत: भरा जा सकता है एप्लिकेशन को स्वत: भरण योग्य खोजने के लिए वर्तमान दृश्य को स्कैन करने के लिए एक एक्सेसिबिलिटी सेवा लागू करनी थी खेत।
हालाँकि, एक्सेसिबिलिटी सेवा का उपयोग किया जा सकता है परिणामस्वरूप काफी अंतराल हुआ खास शर्तों के अन्तर्गत। हालाँकि, आपके विशिष्ट पासवर्ड मैनेजर की एक्सेसिबिलिटी सेवा से जुड़ा अंतराल इतना स्पष्ट है कि लास्टपास जैसी लोकप्रिय सेवाओं में भी समर्थन पृष्ठ मुद्दे को लेकर ऊपर. ये सहायता पृष्ठ आम तौर पर आपको बताते हैं कि उनके कारण होने वाली अत्यधिक देरी से निपटने के लिए आपका एकमात्र सहारा है एक्सेसिबिलिटी सेवा का उद्देश्य या तो एक्सेसिबिलिटी सेवा को अक्षम करना है या अपने स्वयं के कस्टम इनपुट का उपयोग करना शुरू करना है तरीका। किसी भी तरह से, आप किसी भी प्रकार की स्वतः भरण क्षमता खो देते हैं।
लेकिन लास्टपास की एक्सेसिबिलिटी सेवा, या किसी अन्य पासवर्ड मैनेजर की एक्सेसिबिलिटी सेवा वास्तव में इतनी देरी का कारण क्यों बनती है? इसका कारण यह है कि इन पासवर्ड प्रबंधकों को इनपुट फ़ील्ड का पता लगाने के लिए एक्सेसिबिलिटी सेवाओं का उपयोग कैसे करना पड़ता है। एक एक्सेसिबिलिटी सेवा गुण एक में परिभाषित किया गया है XML संसाधन फ़ाइल एपीके के भीतर, ताकि हम एपीके फ़ाइल को डीकंपाइल करके देख सकें कि सेवा कैसे काम करती है।
लास्टपास एपीके को डीकंपाइल करने से ली गई संसाधन फ़ाइल नीचे दी गई है:
"@string/accessibility_service_description"
android: accessibilityEventTypes="typeViewFocused|typeWindowContentChanged"
android: accessibilityFeedbackType="feedbackGeneric"
android: notificationTimeout="200"
android: accessibilityFlags="flagReportViewIds"
android: canRetrieveWindowContent="true"
android: canRequestEnhancedWebAccessibility="true"
xmlns: andro />
इससे, हम निम्नलिखित जानकारी प्राप्त कर सकते हैं: लास्टपास की एक्सेसिबिलिटी सेवा मॉनिटर करने के लिए दो इवेंट प्रकारों का अनुरोध करती है - TYPE_VIEW_FOCUSED और TYPE_WINDOW_CONTENT_CHANGED। वह ऐसा इसलिए करता है क्योंकि उसे यह जानना होता है कि किसी ऐप/वेबपेज की सामग्री कब बदलती है या फोकस में आती है, और फिर यह किसी भी पासवर्ड इनपुट फ़ील्ड को देखने के लिए वर्तमान विंडो सामग्री को पुनः प्राप्त करता है। लेकिन चूंकि सेवा लगातार दो अत्यधिक सक्रिय एक्सेसिबिलिटी इवेंट्स पर ऐसा करती है, इसलिए इसका परिणाम अंतराल होता है। एक्सेसिबिलिटी सेवाएँ कैसे देरी का कारण बन सकती हैं, इस पर अधिक गहन चर्चा के लिए, मैं इस मामले पर अपने पिछले लेख का संदर्भ देता हूँ।
अनुशंसित पाठ: "इरादे के मुताबिक काम करना" - एंड्रॉइड की एक्सेसिबिलिटी लैग में एक अन्वेषण
Android O एक पत्थर से दो शिकार करता है
Android O से पहले, पासवर्ड प्रबंधकों के डेवलपर वास्तव में इस अंतराल को कम करने के लिए बहुत कुछ नहीं कर सकते थे। ऐसा इसलिए है क्योंकि पासवर्ड प्रबंधकों के पास यह जानने का कोई तरीका नहीं था कि एक्सेसिबिलिटी सेवा को लगातार मॉनिटर करने के लिए सक्षम किए बिना ऑटोफिल करने योग्य इनपुट फ़ील्ड स्क्रीन पर कब थी। लेकिन एंड्रॉइड O में नए ऑटोफिल फ्रेमवर्क के लिए धन्यवाद, ये पासवर्ड मैनेजर अब अपनी एक्सेसिबिलिटी सेवाओं को बंद कर सकते हैं। इसके बजाय, जिन ऐप्स को डेटा प्रविष्टि की आवश्यकता है, वे स्वयं ऑटोफिल फ्रेमवर्क से ऑटोफिल सेवा को कॉल करने का अनुरोध करेंगे जो फिर डेटा भेजेगी। इस नए ढांचे के लिए धन्यवाद, न केवल उपयोगकर्ताओं के लिए पासवर्ड प्रविष्टि बहुत आसान हो जाएगी क्योंकि उन्हें अब किसी पर निर्भर नहीं रहना पड़ेगा अतिरिक्त इनपुट विधि, लेकिन पासवर्ड प्रबंधकों की एक्सेसिबिलिटी सेवाओं को सक्षम करने से जुड़ा अंतराल एक बात होगी अतीत।
मैं जानता हूं कि आप में से कुछ लोगों के लिए यह तथ्य अभूतपूर्व नहीं हो सकता है, लेकिन मैंने सोचा कि चूंकि एक्सेसिबिलिटी सर्विस के आसपास चर्चा इतनी धीमी थी कि यह विषय फिर से शुरू करने लायक हो सकता था। इस सप्ताह के अंत में विचार के लिए बस कुछ भोजन!
आप Android O के नए ऑटोफ़िल फ़्रेमवर्क के बारे में क्या सोचते हैं? नीचे टिप्पणी करके हमें बताएं!