एंड्रॉइड O ब्रेकिंग ऐप्स है जो स्टेटस बार के शीर्ष पर ओवरले होता है

एंड्रॉइड O TYPE_APPLICATION_OVERLAY के पक्ष में TYPE_SYSTEM_OVERLAY को अस्वीकार कर देता है, जिसके परिणामस्वरूप स्टेटस बार के शीर्ष पर ओवरले करने वाले ऐप्स टूट जाते हैं।

नई उपयोगकर्ता-सामना वाली सुविधाओं को रेखांकित करने वाली पोस्टों की झड़ी लग गई एंड्रॉइड ओ यह अब धीमा होना शुरू हो गया है क्योंकि उपयोगकर्ताओं के पास अपने डिवाइस पर सॉफ़्टवेयर का परीक्षण करने के लिए कई सप्ताह का समय है। हालाँकि, गुप्त रूप से किए गए कई बदलाव हैं जो धीरे-धीरे उजागर हो रहे हैं। हमने पिछले दिनों Android O पर चलने वाले Nexus और Pixel डिवाइसों के बारे में ऐसे ही एक बदलाव के बारे में पोस्ट किया था SDCardFS को अपनाना. लेकिन आज, हम एक ऐसे बदलाव पर चर्चा करना चाहेंगे जो कुछ ऐप्स के डेवलपर्स को प्रभावित करेगा, खासकर उन ऐप्स को स्टेटस बार के शीर्ष पर ओवरले. ये अनुप्रयोग प्रतीत होते हैं Android O डेवलपर पूर्वावलोकन में टूटा हुआ, जिसे पहली नज़र में आप एक साधारण बग के रूप में खारिज कर सकते हैं, लेकिन संदर्भ दस्तावेज़ में गहराई से जाने पर, यह हो सकता है एक इच्छित परिवर्तन गूगल द्वारा.


एंड्रॉइड O स्टेटस बार ओवरले को तोड़ता है

एंड्रॉइड के बारे में मेरी पसंदीदा चीजों में से एक यह है कि यह कितना अनुकूलन योग्य है। जो उपयोगकर्ता रूट किए गए हैं या कस्टम रोम चला रहे हैं वे मूल रूप से बिना किसी प्रतिबंध के अपने सिस्टम स्टेटस बार को मूल रूप से थीम दे सकते हैं, लेकिन यदि आपका डिवाइस अनरूट है तो आपके पास कम विकल्प उपलब्ध हैं। सौभाग्य से, Google Play Store पर ऐसे कई एप्लिकेशन हैं जो आपको यह बदलने की अनुमति देते हैं कि स्टेटस बार बुनियादी स्तर पर कैसा दिखता है। यह मौजूदा स्टेटस बार पर एक कस्टम स्टेटस बार प्रदर्शित करने के लिए सिस्टम ओवरले विंडोज़ के चतुर संयोजन के कारण संभव है, सूचनाएं प्रदर्शित करने के लिए अधिसूचना श्रोता, और कस्टम को प्रासंगिक रूप से रंगने की अनुमति देने के लिए वैकल्पिक रूप से एक एक्सेसिबिलिटी सेवा स्टेटस बार।

ऊपर दिए गए दो स्क्रीनशॉट दिखाते हैं कि प्ले स्टोर पर उपलब्ध कई स्टेटस बार ओवरले ऐप्स में से किसी एक का उपयोग करते समय मेरा नोटिफिकेशन बार कैसा दिखेगा। ये स्क्रीनशॉट EMUI 5.0 पर चलने वाले अनरूटेड Huawei Mate 9 पर लिए गए थे। आपमें से जो लोग ईएमयूआई से परिचित नहीं हैं, उनके लिए स्टेटस बार उपरोक्त स्क्रीनशॉट जैसा बिल्कुल नहीं दिखता है। इसके बजाय, यह इस तरह दिखता है:

यदि आपको अपने स्टॉक स्टेटस बार के दिखने के तरीके से कोई आपत्ति नहीं है, तो जैसे ऐप्स स्थिति या सामग्री स्थिति पट्टी ईश्वरीय वरदान हैं. लेकिन यदि, या जब आपका डिवाइस Android O पर अपडेट होता है, तो ये एप्लिकेशन अब काम नहीं कर सकते हैं। यहां बताया गया है कि Android O डेवलपर पूर्वावलोकन चलाने वाले Google Pixel पर ये वही दो ऐप्स कैसे दिखते हैं:

ओवरले द्वारा मूल स्थिति पट्टी को अवरुद्ध करने के बजाय, यह ओवरले जैसा दिखता है ओवरलैप मूल स्टेटस बार के साथ जिसके परिणामस्वरूप भारी गड़बड़ी होती है।

दुर्भाग्य से, यह प्रभावी रूप से इन जैसे ऐप्स को बेकार बना देता है। और यह केवल आपके विशिष्ट स्टेटस बार थीम एप्लिकेशन ही नहीं हैं जो इससे प्रभावित होते हैं - वे सभी ऐप्स प्रभावित होते हैं जिन्हें स्टेटस बार के शीर्ष पर ओवरले दिखाने की आवश्यकता होती है.

यहां कुछ लोकप्रिय ऐप्स की सूची दी गई है जो बेकार हो सकते हैं:

  • स्थिति (500,000 - 1,000,000 इंस्टाल)
  • सामग्री स्थिति पट्टी (1,000,000 - 5,000,000 इंस्टाल)
  • कूल टूल - सिस्टम आँकड़े (500,000 - 1,000,000 इंस्टाल)
  • telecine (50,000 - 100,000 इंस्टाल)
  • स्वच्छ स्थिति पट्टी (100,000 - 500,000 इंस्टाल)
  • टाइनीकोर (100,000 - 500,000 इंस्टाल)

और कुछ ऐप्स की सूची जो काम करेंगे, लेकिन अब स्टेटस बार के शीर्ष पर ओवरले नहीं हो सकते (पिछली कार्यक्षमता को सीमित करते हुए):

  • सांझ (5,000,000 - 10,000,000 इंस्टाल)
  • सचेत (100,000 - 500,000 इंस्टाल)
  • संसाधन मॉनिटर मिनी (50,000 - 100,000 इंस्टाल)
  • नेटवर्क मॉनिटर मिनी (1,000,000 - 5,000,000 इंस्टाल)

प्ले स्टोर पर कई और ऐप्स हैं जो स्टेटस बार के शीर्ष पर किसी प्रकार के ओवरले का उपयोग करते हैं, लेकिन आप पहले ही बता सकते हैं कि इस तरह के बदलाव से कई ऐप्स प्रभावित होंगे जिनका उपयोग संभावित रूप से लाखों लोगों द्वारा किया जाता है उपयोगकर्ता. तो यहाँ क्या हो रहा है?


TYPE_SYSTEM_OVERLAY को अस्वीकृत किया जा रहा है

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

टाइप_सिस्टम_ओवरले

विंडो प्रकार: सिस्टम ओवरले विंडो, जिसे अन्य सभी चीज़ों के शीर्ष पर प्रदर्शित करने की आवश्यकता होती है। इन विंडो को इनपुट फोकस नहीं लेना चाहिए, अन्यथा वे कीगार्ड के साथ हस्तक्षेप करेंगे। बहुउपयोगकर्ता सिस्टम में केवल स्वामी की विंडो पर ही दिखाई देता है।

संक्षेप में, यह विंडो प्रकार किसी ऐप को स्क्रीन पर किसी भी तत्व के शीर्ष पर चित्र बनाने की अनुमति देता है - जिसमें स्टेटस बार भी शामिल है। हालाँकि, Android O से शुरू करके, इस विंडो प्रकार को हटा दिया गया है। गैर-सिस्टम ऐप्स के लिए, Google अनुशंसा करता है कि डेवलपर्स इसके बजाय TYPE_APPLICATION_OVERLAY का उपयोग करें। उद्धृत करने के लिए संदर्भ पृष्ठ यह नया विंडो प्रकार क्या करता है:

TYPE_APLICATION_OVERLAY

विंडो प्रकार: एप्लिकेशन ओवरले विंडो सभी गतिविधि विंडो (बीच के प्रकार) के ऊपर प्रदर्शित होती हैं FIRST_APPLICATION_WINDOW और LAST_APPLICATION_WINDOW) लेकिन स्टेटस बार या IME जैसी महत्वपूर्ण सिस्टम विंडो के नीचे।

उपयोगकर्ता के लिए दृश्य अव्यवस्था को कम करने और संसाधनों का प्रबंधन करने के लिए सिस्टम किसी भी समय इन विंडो की स्थिति, आकार या दृश्यता को बदल सकता है।

सिस्टम इस विंडो प्रकार के साथ प्रक्रियाओं के महत्व को समायोजित करेगा ताकि कम-मेमोरी-किलर द्वारा उन्हें ख़त्म करने की संभावना को कम किया जा सके।

बहु-उपयोगकर्ता सिस्टम में केवल स्वामी की स्क्रीन पर ही दिखाई देता है।

जैसा कि आप देख सकते हैं, यह नया विंडो प्रकार ऐप्स को अन्य सभी गतिविधि विंडो के शीर्ष पर सामग्री को ओवरले करने की अनुमति देता है के अलावा "महत्वपूर्ण सिस्टम विंडो जैसे स्टेटस बार या IME" (IME का तात्पर्य कीबोर्ड से है)। यह फेसबुक मैसेंजर जैसे ऐप्स के लिए ठीक है, क्योंकि उस ऐप द्वारा प्रदान किए गए चैटहेड्स का स्टेटस बार के शीर्ष पर बैठने का कोई उद्देश्य नहीं है, लेकिन यह उन अधिकांश ऐप्स को नकारात्मक रूप से प्रभावित करता है जिनका मैंने पहले उल्लेख किया था।

इसके अलावा, इस समय डेवलपर्स के उपयोग के लिए कोई समाधान नहीं दिखता है। कोई उम्मीद कर सकता है कि, Android O पर इस समस्या से बचने के लिए, डेवलपर्स केवल SDK 25 (Android 7.1.1) को लक्षित करने के लिए अपने ऐप्स बनाते हैं। हालाँकि, जैसा कि बताया गया है Reddit पर स्टेटस के डेवलपर, गूगल के पास है जगह ले ली TYPE_SYSTEM_OVERLAY TYPE_APPLICATION_OVERLAY के साथ, और परिवर्तन है लक्ष्य SDK से स्वतंत्र संस्करण। TYPE_SYSTEM_OVERLAY का उपयोग करने वाले डेवलपर्स को वर्तमान में अनुकूलता बनाए रखने के लिए TYPE_APPLICATION_OVERLAY का उपयोग करना पड़ता है, इसलिए, इससे कोई फर्क नहीं पड़ता कि कोई विशेष ऐप किस लक्ष्य SDK संस्करण पर आधारित है, यह अब Android O पर TYPE_SYSTEM_OVERLAY का उपयोग नहीं किया जाएगा.


इसके बारे में क्या किया जा सकता है?

यह बिल्कुल स्पष्ट नहीं है कि Google ने यह परिवर्तन क्यों किया है, क्योंकि उन्होंने अभी तक कोई आधिकारिक स्पष्टीकरण नहीं दिया है। मेरा अनुमान है कि यह एंड्रॉइड पर सुरक्षा में सुधार करने का एक प्रयास है, जिससे बिना सोचे-समझे उपयोगकर्ताओं को गलती से ऐसे ऐप्स इंस्टॉल करने से रोका जा सके जो उनके स्टेटस बार को दुर्भावनापूर्ण रूप से ब्लॉक या प्रतिस्थापित करते हैं। दुर्भाग्य से, यह परिवर्तन कई बिल्कुल वैध अनुप्रयोगों को पकड़ लेता है जो क्रॉसफ़ायर में TYPE_SYSTEM_OVERLAY का उपयोग करते हैं।

इस सुविधा का उपयोग करने वाले डेवलपर्स ने एंड्रॉइड के इश्यू ट्रैकर पर बग रिपोर्ट खोली हैं (#260787 और #36574245) परिवर्तन का विरोध करने और एक वैकल्पिक एपीआई के लिए पूछने के लिए, लेकिन एक Googler ने ट्रैकर पर टिप्पणी की नीचे दिया बयान:

स्थिति: ठीक नहीं किया जाएगा (इच्छित व्यवहार)

हमने उत्पाद और इंजीनियरिंग टीम से संपर्क किया है और सुझाव मिला है कि डेवलपर्स SHOW_WHEN_LOCKED गतिविधियों का उपयोग कर सकते हैं डिवाइस लॉक होने पर दिखाएं, लेकिन अब जानबूझकर लॉकस्क्रीन/अधिसूचना शेड पर दिखाना संभव नहीं है

अभी के लिए, ऐसा प्रतीत होता है कि ये डेवलपर्स भाग्य से बाहर हैं, क्योंकि डेवलपर्स ने बताया है कि FLAG_SHOW_WHEN_LOCKED अभी भी विंडोज़ को स्टेटस बार के शीर्ष पर ओवरलेड करने की अनुमति नहीं देता है। यह स्पष्ट नहीं है कि इन ऐप्स के डेवलपर Google से चीजों को बदलने के लिए प्रार्थना करने या इसके बारे में हंगामा करने के अलावा क्या कर सकते हैं।

चूँकि यह Android O के लिए पहला डेवलपर पूर्वावलोकन है, इसलिए Google के लिए इन्हें बदलना अभी भी संभव है दिमाग और उन ऐप्स के लिए यह कार्यक्षमता प्रदान करें जो Android O को लक्षित नहीं करते हैं, या Google को पुनर्स्थापित करने के लिए टाइप_सिस्टम_ओवरले। लेकिन अगर चीजें वैसी ही रहीं जैसी वे वर्तमान में हैं, तो आप ऐसा कर सकते हैं इन ऐप्स को अलविदा कहो. और यह बहुत शर्म की बात होगी.


मेरे लिए इनमें से कई ऐप्स का परीक्षण करने के लिए एली इरविन को धन्यवाद!