Android 6.0 की मदद से, यह पक्का किया जा सकता है कि आपके ऐप्लिकेशन, प्लैटफ़ॉर्म के अगले वर्शन पर काम करेंगे. इस रिलीज़ में कई एपीआई और व्यवहार से जुड़े बदलाव शामिल हैं. इनसे आपके ऐप्लिकेशन पर असर पड़ सकता है. इस बारे में एपीआई की खास जानकारी और व्यवहार से जुड़े बदलाव में बताया गया है. इस रिलीज़ के साथ अपने ऐप्लिकेशन की जांच करते समय, सिस्टम में कुछ खास बदलाव हुए हैं. आपको इन पर ध्यान देना चाहिए, ताकि उपयोगकर्ताओं को अच्छा अनुभव मिल सके.
इस गाइड में बताया गया है कि Android 6.0 की सुविधाओं को अपने ऐप्लिकेशन के साथ कैसे टेस्ट किया जा सकता है. आपको इन सुविधाओं की जांच को प्राथमिकता देनी चाहिए, क्योंकि इनका आपके ऐप्लिकेशन के व्यवहार पर काफ़ी असर पड़ सकता है:
अनुमतियों की जांच करना
नए अनुमतियां मॉडल में, उपयोगकर्ता की ओर से आपके ऐप्लिकेशन को दी जाने वाली अनुमतियों का तरीका बदल गया है. इंस्टॉल करने के दौरान सभी अनुमतियां देने के बजाय, आपके ऐप्लिकेशन को रनटाइम के दौरान उपयोगकर्ता से अलग-अलग अनुमतियां मांगनी चाहिए. इस व्यवहार से, उपयोगकर्ताओं को हर ऐप्लिकेशन की गतिविधियों पर ज़्यादा बेहतर तरीके से कंट्रोल मिलता है. साथ ही, यह समझने में भी मदद मिलती है कि ऐप्लिकेशन किसी खास अनुमति का अनुरोध क्यों कर रहा है. उपयोगकर्ता किसी भी समय, किसी ऐप्लिकेशन को दी गई अनुमतियों को एक-एक करके दे सकते हैं या रद्द कर सकते हैं. रिलीज़ की इस सुविधा का आपके ऐप्लिकेशन के काम करने के तरीके पर काफ़ी असर पड़ सकता है. यह आपके ऐप्लिकेशन की कुछ सुविधाओं को काम करने से रोक सकता है या हो सकता है कि वे खराब स्थिति में काम करें.
इस बदलाव का असर, नए प्लैटफ़ॉर्म पर चल रहे सभी ऐप्लिकेशन पर पड़ेगा. भले ही, वे नए प्लैटफ़ॉर्म के वर्शन को टारगेट न करते हों. यह प्लैटफ़ॉर्म, लेगसी ऐप्लिकेशन के साथ सीमित तौर पर काम करता है. हालांकि, आपको अनुमतियों के नए मॉडल पर अपने ऐप्लिकेशन को माइग्रेट करने की योजना अभी से बनानी चाहिए. ऐसा इसलिए, ताकि प्लैटफ़ॉर्म के आधिकारिक लॉन्च के समय, आपके ऐप्लिकेशन का अपडेट किया गया वर्शन पब्लिश किया जा सके.
जांच करने से जुड़ी सलाह
अनुमतियों के नए व्यवहार के साथ, अपने ऐप्लिकेशन की जांच करने के लिए, यहां दी गई सलाह का इस्तेमाल करें.
- अपने ऐप्लिकेशन की मौजूदा अनुमतियों और उनसे जुड़े कोड पाथ की पहचान करें.
- अनुमति से सुरक्षित सेवाओं और डेटा के बीच यूज़र फ़्लो की जांच करें.
- अनुमति देने/रद्द करने के अलग-अलग कॉम्बिनेशन के साथ टेस्ट करें.
- कमांड लाइन से अनुमतियों को मैनेज करने के लिए,
adb
टूल का इस्तेमाल करें:- ग्रुप के हिसाब से अनुमतियां और स्थिति की सूची:
adb shell pm list permissions -d -g
- इस सिंटैक्स का इस्तेमाल करके एक या उससे ज़्यादा अनुमतियां दें या वापस लें:
adb shell pm [grant|revoke] <permission.name> ...
- ग्रुप के हिसाब से अनुमतियां और स्थिति की सूची:
- अनुमतियों का इस्तेमाल करने वाली सेवाओं के लिए, अपने ऐप्लिकेशन का विश्लेषण करें.
टेस्ट की रणनीति
अनुमतियों में बदलाव करने से, आपके ऐप्लिकेशन के स्ट्रक्चर और डिज़ाइन पर असर पड़ता है. साथ ही, उपयोगकर्ताओं को मिलने वाले अनुभव और फ़्लो पर भी असर पड़ता है. आपको अपने ऐप्लिकेशन के लिए, अनुमतियों के मौजूदा इस्तेमाल का आकलन करना चाहिए. साथ ही, आपको उन नए फ़्लो के लिए प्लान बनाना चाहिए जिन्हें आपको ऑफ़र करना है. प्लैटफ़ॉर्म के आधिकारिक रिलीज़ में, काम करने के तरीके की जानकारी मिलती है. हालांकि, आपको अपने ऐप्लिकेशन को अपडेट करने की योजना बनानी चाहिए और इन तरीकों पर भरोसा नहीं करना चाहिए.
उन अनुमतियों की पहचान करें जिनकी आपके ऐप्लिकेशन को ज़रूरत है और जिनका इस्तेमाल किया जाता है. इसके बाद, अनुमति से सुरक्षित सेवाओं का इस्तेमाल करने वाले अलग-अलग कोड पाथ ढूंढें. ऐसा करने के लिए, नए प्लैटफ़ॉर्म पर जांच करने और कोड का विश्लेषण करने के तरीकों को एक साथ अपनाएं. टेस्टिंग के दौरान, आपको ऐप्लिकेशन के targetSdkVersion
को एपीआई लेवल 23 में बदलकर, रनटाइम की अनुमतियों के लिए ऑप्ट-इन करने पर फ़ोकस करना चाहिए.
अनुमतियों को वापस लेने और जोड़ने के अलग-अलग कॉम्बिनेशन के साथ टेस्ट करें. इससे, अनुमतियों पर निर्भर उपयोगकर्ता फ़्लो को हाइलाइट किया जा सकता है. अगर कोई डिपेंडेंसी साफ़ तौर पर या लॉजिकल नहीं है, तो आपको उस फ़्लो को फिर से तैयार करने या अलग-अलग हिस्सों में बांटने पर विचार करना चाहिए. इससे डिपेंडेंसी को हटाया जा सकता है या यह साफ़ तौर पर बताया जा सकता है कि अनुमति की ज़रूरत क्यों है.
रनटाइम की अनुमतियों के काम करने के तरीके, जांच करने, और सबसे सही तरीकों के बारे में ज़्यादा जानने के लिए, सिस्टम की अनुमतियों के साथ काम करना लेख पढ़ें.
बैटरी सेवर और ऐप्लिकेशन स्टैंडबाय की जांच करना
Doze और ऐप्लिकेशन स्टैंडबाय मोड की बैटरी बचाने वाली सुविधाएं, बैकग्राउंड में होने वाली प्रोसेसिंग की सीमा तय करती हैं. डिवाइस के आइडल मोड में या आपके ऐप्लिकेशन के फ़ोकस में न होने पर, आपका ऐप्लिकेशन उतनी ही प्रोसेसिंग कर सकता है जितनी इन सुविधाओं की वजह से तय की गई है. सिस्टम, ऐप्लिकेशन पर ये पाबंदियां लगा सकता है: नेटवर्क का सीमित या कोई ऐक्सेस नहीं, बैकग्राउंड टास्क निलंबित करना, सूचनाएं निलंबित करना, डिवाइस को चालू करने के अनुरोधों को अनदेखा करना, और अलार्म. यह पक्का करने के लिए कि आपका ऐप्लिकेशन, बिजली बचाने वाले इन ऑप्टिमाइज़ेशन के साथ सही तरीके से काम करता है, आपको कम बैटरी वाली इन स्थितियों को सिम्युलेट करके अपने ऐप्लिकेशन की जांच करनी चाहिए.
Doze मोड की मदद से अपने ऐप्लिकेशन की जांच करना
अपने ऐप्लिकेशन के साथ Doze मोड की जांच करने के लिए:
- Android 7.0 (एपीआई लेवल 24) की सिस्टम इमेज की मदद से, हार्डवेयर डिवाइस या वर्चुअल डिवाइस को कॉन्फ़िगर करें.
- डिवाइस को अपनी डेवलपमेंट मशीन से कनेक्ट करें और अपना ऐप्लिकेशन इंस्टॉल करें.
- अपना ऐप्लिकेशन चलाएं और उसे चालू रखें.
- नीचे दिए गए निर्देशों को चलाकर, डिवाइस के Doze मोड में जाने की प्रक्रिया को सिम्युलेट करें:
$ adb shell dumpsys battery unplug $ adb shell dumpsys deviceidle step $ adb shell dumpsys deviceidle -h
- डिवाइस को फिर से चालू करने पर, अपने ऐप्लिकेशन के काम करने के तरीके पर नज़र रखें. पक्का करें कि डिवाइस, Doze मोड से बाहर आने पर, आसानी से काम करना शुरू कर दे.
ऐप्लिकेशन स्टैंडबाय के साथ ऐप्लिकेशन की जांच करना
अपने ऐप्लिकेशन के साथ ऐप्लिकेशन स्टैंडबाय मोड की जांच करने के लिए:
- Android 7.0 (एपीआई लेवल 24) की सिस्टम इमेज की मदद से, हार्डवेयर डिवाइस या वर्चुअल डिवाइस को कॉन्फ़िगर करें.
- डिवाइस को अपनी डेवलपमेंट मशीन से कनेक्ट करें और अपना ऐप्लिकेशन इंस्टॉल करें.
- अपना ऐप्लिकेशन चलाएं और उसे चालू रखें.
- यहां दिए गए निर्देशों का इस्तेमाल करके, ऐप्लिकेशन को स्टैंडबाय मोड में ले जाने की नकल करें:
$ adb shell am broadcast -a android.os.action.DISCHARGING $ adb shell am set-idle <packageName> true
- इस कमांड का इस्तेमाल करके, अपने ऐप्लिकेशन को चालू होने का अनुकरण करें:
$ adb shell am set-idle <packageName> false
- ऐप्लिकेशन के चालू होने पर, उसके काम करने के तरीके पर नज़र रखें. पक्का करें कि यह स्टैंडबाय मोड से आसानी से वापस आ जाए. खास तौर पर, आपको यह देखना चाहिए कि आपके ऐप्लिकेशन की सूचनाएं और बैकग्राउंड जॉब उम्मीद के मुताबिक काम कर रही हैं या नहीं.
ऐप्लिकेशन और डिवाइस के हिसाब से आइडेंटिफ़ायर के लिए, अपने-आप बैकअप लेने की सुविधा
अगर आपका ऐप्लिकेशन, डिवाइस के हिसाब से पहचान करने वाले किसी आइडेंटिफ़ायर को इंटरनल स्टोरेज में सेव कर रहा है, तो अपने-आप बैकअप लेने की सुविधा की मदद से, उपयोगकर्ता के डेटा का बैक अप लें में बताए गए सबसे सही तरीकों का पालन करके, स्टोरेज की जगह को अपने-आप बैकअप लेने की सुविधा से बाहर रखें.