ऐप्लिकेशन की मुख्य क्वालिटी

पिछले अपडेट की तारीख: 17 मई, 2021

ऐप्लिकेशन की क्वालिटी का आकलन करने का एक अच्छा तरीका यह है कि आप अपने ऐप्लिकेशन में वर्कफ़्लो को आज़माएं. साथ ही, यह देखें कि ऐप्लिकेशन इस्तेमाल करने का अनुभव कितना आसान और सुरक्षित है.

इस चेकलिस्ट में, क्वालिटी से जुड़ी ज़रूरी शर्तों और उनसे जुड़े टेस्ट के बारे में बताया गया है. इससे आपको अपने ऐप्लिकेशन की क्वालिटी का आकलन करने में मदद मिलती है. ऐसा हो सकता है कि इनमें से कुछ शर्तों को पूरा करना आसान न हो. टेस्ट की मदद से, आपको यह याद रखने में मदद मिलती है कि आपको इन शर्तों को अपने टेस्ट प्लान में शामिल करना है.

चेकलिस्ट में, ऐप्लिकेशन की कम से कम क्वालिटी के बारे में बताया गया है. सभी ऐप्लिकेशन को इस क्वालिटी को पूरा करना चाहिए. आपकी टेस्टिंग, यहां बताई गई बातों से कहीं ज़्यादा हो सकती है.

क्वालिटी चेकलिस्ट में मौजूद हर आइटम का एक यूनीक आईडी होता है. इसका इस्तेमाल करके, अपनी टीम से बातचीत की जा सकती है. इन दिशा-निर्देशों का पिछला वर्शन भी देखा जा सकता है.

विज़ुअल अनुभव

आपके ऐप्लिकेशन में, स्टैंडर्ड Android विज़ुअल डिज़ाइन और इंटरैक्शन पैटर्न होने चाहिए. इससे उपयोगकर्ताओं को एक जैसा और आसान अनुभव मिलता है.

जगह ID परीक्षण ब्यौरा
नेविगेशन VX-N1 CR-3 ऐप्लिकेशन में, स्टैंडर्ड बैक बटन नेविगेशन की सुविधा काम करती है. साथ ही, इसमें स्क्रीन पर दिखने वाले किसी कस्टम "बैक बटन" प्रॉम्प्ट का इस्तेमाल नहीं किया जाता.
VX-N2 CR-3 ऐप्लिकेशन में, वापस जाने / होम स्क्रीन पर जाने के लिए हावभाव से नेविगेट करने की सुविधा काम करती है.
VX-N3 CR-1
CR-3
CR-5

ऐप्लिकेशन, उपयोगकर्ता या ऐप्लिकेशन की स्थिति को सही तरीके से सेव करता है और उसे वापस लाता है.

फ़ोरग्राउंड से बाहर आने पर, ऐप्लिकेशन लोगों या ऐप्लिकेशन की मौजूदा स्थिति को सेव करके रखता है. साथ ही, यह ऐप्लिकेशन पर वापस जाने और इस पर स्थितियों में होने वाले अन्य बदलावों की वजह से डेटा को मिटने से बचाता है.

फ़ोरग्राउंड पर वापस आने पर, ऐप्लिकेशन को सेव की गई स्थिति और किसी भी अहम स्टेटफ़ुल लेन-देन को वापस लाना चाहिए. उदाहरण के लिए: बदलाव किए जा सकने वाले फ़ील्ड, गेम की प्रोग्रेस, मेन्यू, वीडियो, और ऐप्लिकेशन या गेम के अन्य सेक्शन में बदलाव.

  1. हाल ही में इस्तेमाल किए गए ऐप्लिकेशन पर ले जाने वाले स्विचर के ज़रिए, जब ऐप्लिकेशन फिर से शुरू किया जाता है, तो उपयोगकर्ता को उसी स्थिति में वापस ले जाया जाता है जिसमें उसने पिछली बार ऐप्लिकेशन का इस्तेमाल किया था.
  2. जब डिवाइस के स्लीप (लॉक) मोड से वापस आने के बाद ऐप्लिकेशन फिर से शुरू होता है, तो ऐप्लिकेशन उपयोगकर्ता को उसी स्थिति में ले जाता है जिसमें उसे पिछली बार इस्तेमाल किया गया था.
  3. जब ऐप्लिकेशन को होम स्क्रीन या 'सभी ऐप्लिकेशन' से फिर से लॉन्च किया जाता है, तो उसे इनमें से कोई एक काम करना चाहिए. यह इस बात पर निर्भर करता है कि ऐप्लिकेशन को आखिरी बार इस्तेमाल किए हुए कितना समय हो गया है:
    • अगर ऐप्लिकेशन का इस्तेमाल कुछ समय पहले (मिनटों में) किया गया था, तो ऐप्लिकेशन की स्थिति को उसकी पिछली स्थिति के जितना हो सके उतना वापस लाएं.
    • अगर ऐप्लिकेशन को पिछली बार इस्तेमाल किए हुए काफ़ी समय हो गया है, तो उसे पिछली स्थिति के जितना हो सके उतना वापस लाने की कोशिश करें; या उसे होम स्क्रीन या किसी अन्य डिफ़ॉल्ट स्थिति से शुरू करें.
सूचनाएं VX-S1 CR-9

सूचनाएं, डिज़ाइन से जुड़े दिशा-निर्देशों के मुताबिक हों. खास तौर पर:

  1. सूचनाओं का इस्तेमाल, क्रॉस-प्रमोशन या किसी अन्य प्रॉडक्ट का विज्ञापन दिखाने के लिए नहीं किया जाता. ऐसा करना, Play Store की नीतियों का उल्लंघन माना जाता है.
  2. सूचना के चैनल, सबसे सही तरीकों के हिसाब से तय किए जाते हैं. ऐसा इसलिए, ताकि सभी सूचनाएं एक ही चैनल से न भेजी जाएं.
  3. सूचना की सही प्राथमिकता चुनना.
  4. जहां भी हो सके, कई सूचनाओं को एक सूचना ग्रुप में रखा जाता है.
  5. ज़रूरत के मुताबिक, सूचनाओं के लिए टाइमआउट सेट करें.
  6. सूचनाएं सिर्फ़ तब तक दिखती हैं, जब तक उनसे जुड़े इवेंट चल रहे हों. जैसे, संगीत बजना या फ़ोन कॉल. ज़्यादा जानकारी के लिए, फ़ंक्शन सेक्शन देखें.
VX-S2 CR-9

मैसेजिंग ऐप्लिकेशन, सोशल ऐप्लिकेशन, और बातचीत के लिए:

  1. बातचीत के लिए, MessagingStyle सूचनाओं का इस्तेमाल करें.
  2. सीधे जवाब देने की सुविधा उपलब्ध हो.
  3. बातचीत के शॉर्टकट की सुविधा काम करती हो. साथ ही, सीधे तौर पर शेयर करने की सुविधा के लिए सबसे अच्छी रैंकिंग पाने के लिए, सबसे सही तरीके अपनाए गए हों.
  4. बबल सुविधा काम करती है.
यूज़र इंटरफ़ेस (यूआई) और ग्राफ़िक्स VX-U1 CR-5

यह ऐप्लिकेशन, लैंडस्केप और पोर्ट्रेट ओरिएंटेशन के साथ-साथ, डिवाइस के फ़ोल्ड और अनफ़ोल्ड होने की स्थितियों में काम करता है.

ओरिएंटेशन और फ़ोल्ड करने की स्थितियों में, एक जैसी सुविधाएं और कार्रवाइयां उपलब्ध होती हैं. साथ ही, दोनों में एक जैसी सुविधाएं काम करती हैं.

VX-U2 CR-5

ऐप्लिकेशन, दोनों ओरिएंटेशन में ऐप्लिकेशन विंडो को भरता है. साथ ही, कॉन्फ़िगरेशन में बदलाव की वजह से लेटरबॉक्स नहीं होता. जैसे, डिवाइस को फ़ोल्ड और अनफ़ोल्ड करना.

स्क्रीन के साइज़ में मामूली अंतर को ठीक करने के लिए, लेटरबॉक्सिंग का इस्तेमाल किया जा सकता है.

VX-U3 CR-5 ऐप्लिकेशन, डिसप्ले ओरिएंटेशन और डिवाइस को फ़ोल्ड करने और खोलने के बीच तेज़ी से होने वाले बदलावों को सही तरीके से मैनेज करता है. साथ ही, डिसप्ले रेंडरिंग की समस्याओं के बिना और स्थिति को बदले बिना काम करता है.
विज़ुअल क्वालिटी VX-V1 CR-all

ऐप्लिकेशन में ग्राफ़िक्स, टेक्स्ट, इमेज, और अन्य यूज़र इंटरफ़ेस (यूआई) एलिमेंट, बिना किसी गड़बड़ी, धुंधलेपन या पिक्सलेशन के दिखते हों.

  1. ऐप्लिकेशन को जहां तक हो सके, वेक्टर ड्रॉएबल का इस्तेमाल करना चाहिए.
  2. ऐप्लिकेशन, टारगेट की गई सभी स्क्रीन साइज़ और फ़ॉर्म फ़ैक्टर के लिए अच्छी क्वालिटी के ग्राफ़िक उपलब्ध कराता है.
  3. मेन्यू, बटन, और अन्य यूज़र इंटरफ़ेस (यूआई) एलिमेंट के किनारों पर कोई भी एलियासिंग नहीं दिख रही है.
VX-V2 CR-all

ऐप्लिकेशन में, टेक्स्ट और टेक्स्ट ब्लॉक को इस तरह से दिखाया गया हो कि वे ऐप्लिकेशन में इस्तेमाल की जा सकने वाली हर भाषा के लिए सही हों.

  1. कंपोज़िशन, ज़रूरी शर्तें पूरी करने वाले सभी डिवाइसों पर काम करती है.
  2. कोई भी अक्षर या शब्द कटा हुआ नहीं दिख रहा हो.
  3. बटन या आइकॉन में कोई भी शब्द रैप गलत तरीके से नहीं दिख रहा है.
  4. टेक्स्ट और आस-पास के एलिमेंट के बीच ज़रूरत के मुताबिक स्पेस है.
VX-V3 CR-all ऐप्लिकेशन का कॉन्टेंट और ऐप्लिकेशन में मौजूद सभी वेब कॉन्टेंट, डार्क थीम के साथ काम करते हों.
सुलभता VX-A1 CR-all

टच टारगेट का साइज़ कम से कम 48dp होना चाहिए. ज़्यादा जानें.

VX-A2 CR-all

ऐप्लिकेशन के टेक्स्ट और फ़ोरग्राउंड कॉन्टेंट का कंट्रास्ट अनुपात, बैकग्राउंड के साथ काफ़ी ज़्यादा होना चाहिए:

  • बड़े साइज़ के टेक्स्ट / ग्राफ़िक के लिए 3.0:1
  • छोटे टेक्स्ट के लिए 4.5:1 (18 पॉइंट से छोटा टेक्स्ट या अगर टेक्स्ट बोल्ड है और 14 पॉइंट से छोटा है)

कलर और कंट्रास्ट के बारे में ज़्यादा जानें.

VX-A3 CR-all हर यूज़र इंटरफ़ेस (यूआई) एलिमेंट के बारे में बताएं. हालांकि, contentDescription का इस्तेमाल करके TextView के बारे में न बताएं.

मुख्य सुविधाएं

आपके ऐप्लिकेशन को उम्मीद के मुताबिक काम करना चाहिए.

जगह ID परीक्षण ब्यौरा
ऑडियो FN-A1 CR-1
CR-8
जब ऐप्लिकेशन फ़ोरग्राउंड में वापस आता है, तब ऑडियो फिर से शुरू हो जाता है. इसके अलावा, यह उपयोगकर्ता को यह भी बताता है कि ऑडियो को रोका गया है.
FN-A2 CR-1
CR-2
CR-8
अगर ऑडियो चलाने की सुविधा मुख्य सुविधा है, तो ऐप्लिकेशन में बैकग्राउंड में ऑडियो चलाने की सुविधा होनी चाहिए.
FN-A3 CR-0

जब उपयोगकर्ता ऑडियो चलाना शुरू करता है, तो ऐप्लिकेशन को एक सेकंड के अंदर इनमें से कोई एक काम करना चाहिए:

  1. ऑडियो चलाना शुरू करें.
  2. ऑडियो डेटा तैयार किए जाने की प्रोसेस को विज़ुअल इंडिकेटर के तौर पर दिखाएं.
FN-A4 CR-0 ऑडियो चलने पर, ऐप्लिकेशन को ऑडियो फ़ोकस का अनुरोध करना चाहिए. साथ ही, ऑडियो बंद होने पर ऑडियो फ़ोकस को छोड़ देना चाहिए.
FN-A5 CR-0 ऐप्लिकेशन को ऑडियो फ़ोकस के लिए, अन्य ऐप्लिकेशन के अनुरोधों को मैनेज करना चाहिए. उदाहरण के लिए, जब कोई दूसरा ऐप्लिकेशन बोलता है, तो कोई ऐप्लिकेशन ऑडियो चलाने की आवाज़ कम कर सकता है.
मीडिया FN-M1 CR-0
CR-6
CR-8
अगर ऐप्लिकेशन बैकग्राउंड में ऑडियो चलाता है, तो उसे MediaStyle के साथ स्टाइल की गई सूचना बनानी होगी.
FN-M2 CR-0 अगर ऐप्लिकेशन में वीडियो चलाने की सुविधा है, तो उसमें पिक्चर में पिक्चर मोड में वीडियो चलाने की सुविधा होनी चाहिए.
FN-M3 CR-0 अगर ऐप्लिकेशन वीडियो को कोड करता है, तो उसे HEVC वीडियो कंप्रेस करने के स्टैंडर्ड का इस्तेमाल करना चाहिए.
शेयर करें FN-S1 CR-0 कॉन्टेंट शेयर करते समय, ऐप्लिकेशन को Android Sharesheet का इस्तेमाल करना चाहिए. यह ऐसे टारगेट का सुझाव दे सकता है जो कस्टम समाधानों के लिए उपलब्ध नहीं हैं.
बैकग्राउंड में चलने वाली सेवा FN-B1 CR-6 यह ऐप्लिकेशन, बैकग्राउंड में ज़रूरत से ज़्यादा समय तक चलने वाली सेवाओं को नहीं चलाता. उपयोगकर्ता के डिवाइस के ठीक से काम करने के लिए, सिस्टम बैकग्राउंड सेवाओं पर कई तरह की पाबंदियां लगाता है. बैकग्राउंड सेवाओं का इस्तेमाल इन कामों के लिए नहीं किया जाना चाहिए:
  • सूचनाएं पाने के लिए, नेटवर्क कनेक्शन बनाए रखना
  • ब्लूटूथ कनेक्शन बनाए रखना
  • जीपीएस को चालू रखना

अपने काम के लिए सही समाधान चुनने का तरीका जानें.

परफ़ॉर्मेंस और स्थिरता

आपके ऐप्लिकेशन की परफ़ॉर्मेंस, स्थिरता, और जवाब देने में लगने वाला समय लोगों की उम्मीद के मुताबिक हो. साथ ही, ऐप्लिकेशन लोगों की उम्मीद के मुताबिक डिवाइस पर काम करता हो.

जगह ID परीक्षण ब्यौरा
ऐप्लिकेशन को क्रैश या फ़्रीज़ होने जैसी समस्याओं से बचाना PS-S1 CR-all
SD-1
ऐप्लिकेशन क्रैश नहीं होता या यूज़र इंटरफ़ेस (यूआई) थ्रेड को ब्लॉक नहीं करता. इससे एएनआर (Android Not Responding) वाली गड़बड़ियां नहीं होती हैं. Google Play की प्री-लॉन्च रिपोर्ट का इस्तेमाल करके, ऐप्लिकेशन के क्रैश या फ़्रीज़ होने से जुड़ी संभावित समस्याओं का पता लगाएं. डप्लॉयमेंट के बाद, Google Play डेवलपर कंसोल में Android की ज़रूरी जानकारी पेज पर ध्यान दें.
परफ़ॉर्मेंस PS-P1 CR-all
SD-1
ऐप्लिकेशन जल्दी लोड हो जाता है. अगर ऐप्लिकेशन को लोड होने में दो सेकंड से ज़्यादा समय लगता है, तो उपयोगकर्ता को स्क्रीन पर फ़ीडबैक मिलता है. जैसे, प्रोग्रेस इंडिकेटर या इसी तरह का कोई अन्य संकेत.
PS-P2 CR-all
SD-1
ऐप्लिकेशन को हर 16 मि॰से॰ में फ़्रेम रेंडर करने चाहिए, ताकि 60 फ़्रेम प्रति सेकंड का फ़्रेम रेट हासिल किया जा सके. डेवलपर, टेस्टिंग के दौरान हार्डवेयर यूआई रेंडरिंग की प्रोफ़ाइल विकल्प का इस्तेमाल कर सकते हैं. अगर कोई समस्या है, तो धीरे-धीरे रेंडर होने की समस्या का पता लगाने के लिए टूल उपलब्ध हैं.
PS-P3 PM-1 StrictMode चालू होने पर (नीचे StrictMode की टेस्टिंग देखें), ऐप्लिकेशन की टेस्टिंग करते समय कोई भी लाल रंग का फ़्लैश (StrictMode से परफ़ॉर्मेंस से जुड़ी चेतावनियां) नहीं दिखता है. लाल रंग के फ़्लैश से पता चलता है कि स्टोरेज, नेटवर्क ऐक्सेस या मेमोरी लीक से जुड़ी समस्याएं हैं.
SDK टूल PS-T1 CR-0 ऐप्लिकेशन, Android प्लैटफ़ॉर्म के सार्वजनिक तौर पर उपलब्ध सबसे नए वर्शन पर चलता है. साथ ही, यह क्रैश नहीं होता और इसकी मुख्य सुविधाओं पर भी कोई बुरा असर नहीं पड़ता.
PS-T2 SP-1 ऐप्लिकेशन, targetSdk वैल्यू सेट करके, Google Play की ज़रूरी शर्तों के मुताबिक Android SDK के नए वर्शन को टारगेट करता है.
PS-T3 SP-1 ऐप्लिकेशन को Android SDK के नए वर्शन के साथ बनाया गया है. इसके लिए, compileSdk वैल्यू सेट की गई है.
PS-T4 SP-2
SP-3
इस्तेमाल किए गए Google या तीसरे पक्ष के सभी एसडीके अप-टू-डेट हों. इन एसडीके में किए गए सुधार, जैसे कि स्थिरता, कंपैटिबिलिटी या सुरक्षा से जुड़े सुधार, लोगों के लिए समय पर उपलब्ध होने चाहिए.

Google के एसडीके के लिए, Google Play services की मदद से काम करने वाले एसडीके का इस्तेमाल करें. हालांकि, ऐसा सिर्फ़ तब करें, जब वे उपलब्ध हों. ये एसडीके, पुराने वर्शन के साथ काम करते हैं. साथ ही, इन्हें अपने-आप अपडेट किया जाता है. इनसे आपके ऐप्लिकेशन पैकेज का साइज़ कम हो जाता है और डिवाइस पर मौजूद संसाधनों का बेहतर तरीके से इस्तेमाल किया जा सकता है.

डेवलपर, ऐप्लिकेशन के पूरे कोडबेस के लिए ज़िम्मेदार होता है. इसमें इस्तेमाल किए गए तीसरे पक्ष के सभी एसडीके शामिल हैं.

PS-T5 SP-3 ऐप्लिकेशन, गैर-एसडीके इंटरफ़ेस का इस्तेमाल नहीं करता है.
PS-T6 SP-2 प्रोडक्शन ऐप्लिकेशन में कोई भी डीबग लाइब्रेरी शामिल नहीं की गई है. इससे परफ़ॉर्मेंस के साथ-साथ सुरक्षा से जुड़ी समस्याएं हो सकती हैं.
बैटरी PS-B1 BA-1 ऐप्लिकेशन, Android 6.0 में पेश की गई पावर मैनेजमेंट की सुविधाओं (डूज़ मोड और ऐप्लिकेशन स्टैंडबाय) के साथ ठीक से काम करता है. अगर पावर मैनेजमेंट की वजह से मुख्य फ़ंक्शन में रुकावट आती है, तो ज़रूरी शर्तें पूरी करने वाले ऐप्लिकेशन ही छूट का अनुरोध कर सकते हैं. डोज़ मोड और ऐप्लिकेशन स्टैंडबाय मोड में, इस्तेमाल के अन्य उदाहरणों के लिए सहायता देखें.

डेवलपमेंट के दौरान, डेवलपर एडीबी के इन निर्देशों का इस्तेमाल करके, ऐप्लिकेशन स्टैंडबाय और डोज़ मोड की जांच कर सकते हैं.

बैटरी के इस्तेमाल के मामले में, डेवलपर Android Studio Power Profiler या Battery Historian टूल का इस्तेमाल कर सकते हैं. साथ ही, वे बैकग्राउंड में किए जाने वाले काम की योजना बनाकर, बैटरी के ज़्यादा इस्तेमाल की समस्या का पता लगा सकते हैं.

निजता और सुरक्षा

आपका ऐप्लिकेशन, उपयोगकर्ता के डेटा और निजी जानकारी को सुरक्षित तरीके से मैनेज करे. साथ ही, इसके लिए सही लेवल की अनुमति ली गई हो.

इस चेकलिस्ट के अलावा, Google Play Store पर पब्लिश किए गए ऐप्लिकेशन को उपयोगकर्ता के डेटा से जुड़ी नीतियों का भी पालन करना होगा, ताकि उपयोगकर्ताओं की निजता को सुरक्षित रखा जा सके.

जगह ID परीक्षण ब्यौरा
अनुमतियां SC-P1 SC-4 ऐप्लिकेशन, सिर्फ़ ज़रूरी अनुमतियों का अनुरोध करता है, ताकि वह इस्तेमाल के मौजूदा मामले में काम कर सके. जगह की जानकारी जैसी कुछ अनुमतियों के लिए, हो सके, तो सटीक जानकारी के बजाय अनुमानित जानकारी का इस्तेमाल करें.
SC-P2

ऐप्लिकेशन, संवेदनशील डेटा (जैसे कि मैसेज (एसएमएस), कॉल लॉग या जगह की जानकारी) या पैसे चुकाकर इस्तेमाल की जाने वाली सेवाओं (जैसे कि डायलर या मैसेज (एसएमएस)) को ऐक्सेस करने की अनुमति सिर्फ़ तब मांगता है, जब वह सीधे तौर पर ऐप्लिकेशन के मुख्य इस्तेमाल के मामलों से जुड़ी हो. इन अनुमतियों से जुड़े असर के बारे में, उपयोगकर्ता को साफ़ तौर पर बताया जाना चाहिए.

इस आधार पर कि अनुमतियों का इस्तेमाल कैसे किया जा रहा है, आपके ऐप्लिकेशन के इस्तेमाल के उदाहरण को पूरा करने के लिए, कोई दूसरा तरीका हो सकता है. इसके लिए, संवेदनशील जानकारी को ऐक्सेस करने की ज़रूरत नहीं होगी. उदाहरण के लिए, किसी उपयोगकर्ता के संपर्कों से जुड़ी अनुमतियों का अनुरोध करने के बजाय, इंप्लिसिट इंटेंट का इस्तेमाल करके ऐक्सेस का अनुरोध करना ज़्यादा सही हो सकता है.

SC-P3 CR-0 ऐप्लिकेशन, रनटाइम की अनुमतियों का अनुरोध कॉन्टेक्स्ट में करता है. ऐसा तब किया जाता है, जब किसी फ़ंक्शन का अनुरोध किया जाता है. ऐप्लिकेशन के स्टार्टअप के दौरान, पहले से ही ऐसा नहीं किया जाता.
SC-P4 CR-0

ऐप्लिकेशन में यह साफ़ तौर पर बताया गया हो कि कुछ अनुमतियों की ज़रूरत क्यों है. इसके अलावा, किसी अनुमति की ज़रूरत क्यों है, यह बताने के लिए सुझाए गए तरीके का पालन किया गया हो.

SC-P5 CR-0 अगर उपयोगकर्ता किसी अनुमति को अस्वीकार करते हैं या उसे वापस लेते हैं, तो ऐप्लिकेशन को ग्रेसफ़ुली डिग्रेड होना चाहिए. ऐप्लिकेशन को उपयोगकर्ता को ऐप्लिकेशन का ऐक्सेस पूरी तरह से ब्लॉक नहीं करना चाहिए.
डेटा और फ़ाइलें SC-DF1 SC-1 सभी संवेदनशील डेटा को ऐप्लिकेशन के इंटरनल स्टोरेज में सेव किया जाता है.
SC-DF2 SC-10 सिस्टम लॉग या ऐप्लिकेशन के लॉग में, उपयोगकर्ता का कोई निजी या संवेदनशील डेटा लॉग नहीं किया जाता.
SC-DF3 ऐप्लिकेशन, पहचान के मकसद से रीसेट नहीं किए जा सकने वाले किसी भी हार्डवेयर आईडी का इस्तेमाल नहीं करता है. जैसे, आईएमईआई.
पहचान SC-ID1 CR-0 यह ऐप्लिकेशन, खाते के क्रेडेंशियल और अन्य संवेदनशील जानकारी अपने-आप भरने के लिए सुझाव देता है. जैसे, क्रेडिट कार्ड की जानकारी, पता, और फ़ोन नंबर.
SC-ID2 CR-0 Credential Manager for Android को इंटिग्रेट करें. इससे आपको साइन इन करने का बेहतरीन अनुभव मिलेगा. साथ ही, पासकी, फ़ेडरेटेड आइडेंटिटी, और पारंपरिक पासवर्ड के लिए एक ही प्लैटफ़ॉर्म मिलेगा.
SC-ID3 CR-0 ऐप्लिकेशन, वित्तीय लेन-देन या संवेदनशील जानकारी को सुरक्षित रखने के लिए, बायोमेट्रिक पुष्टि की सुविधा देता है. जैसे, उपयोगकर्ता के ज़रूरी दस्तावेज़.
ऐप्लिकेशन कॉम्पोनेंट SC-AC1 SC-5

यह ऐप्लिकेशन, सभी गतिविधियों, सेवाओं, ब्रॉडकास्ट रिसीवर, और खास तौर पर कॉन्टेंट प्रोवाइडर के लिए, android:exported एट्रिब्यूट को साफ़ तौर पर सेट करता है.

सिर्फ़ उन ऐप्लिकेशन कॉम्पोनेंट को एक्सपोर्ट किया जाता है जो दूसरे ऐप्लिकेशन के साथ डेटा शेयर करते हैं या जिन्हें दूसरे ऐप्लिकेशन से शुरू किया जाना चाहिए.

SC-AC2 CR-0
SC-4

सभी इंटेंट और ब्रॉडकास्ट के लिए, सबसे सही तरीके अपनाए गए हों:

  1. अगर डेस्टिनेशन ऐप्लिकेशन के बारे में साफ़ तौर पर बताया गया है, तो साफ़ तौर पर बताए गए इंटेंट का इस्तेमाल करें.
  2. अनुमतियों को किसी ऐसे ऐप्लिकेशन पर ट्रांसफ़र करने के लिए इंटेंट का इस्तेमाल करें जिसके पास पहले से ही अनुमति है.
  3. सभी ऐप्लिकेशन के साथ सुरक्षित तरीके से डेटा शेयर करें.
  4. जिन इंटेंट में पेलोड होता है उनकी इस्तेमाल करने से पहले पुष्टि की जाती है.
  5. अगर आपको किसी इंटेंट को दूसरे ऐप्लिकेशन पर भेजना है, ताकि वह ऐप्लिकेशन, कॉलिंग ऐप्लिकेशन में कॉल बैक शुरू कर सके और उसकी उम्मीद कर सके, तो एक्स्ट्रा में नेस्ट किया गया इंटेंट शामिल न करें. PendingIntent का इस्तेमाल करें.
  6. PendingIntent सेट अप करते समय, जहां लागू हो वहां immutable फ़्लैग को साफ़ तौर पर सेट करें.
SC-AC3 SC-3 आपके ऐप्लिकेशन के बीच कॉन्टेंट शेयर करने वाले सभी कॉम्पोनेंट, कस्टम अनुमतियों के लिए android:protectionLevel="signature" का इस्तेमाल करते हैं. इसमें गतिविधियां, सेवाएं, ब्रॉडकास्ट रिसीवर, और खास तौर पर कॉन्टेंट देने वाली कंपनियां शामिल हैं.

ऐप्लिकेशन को इंस्टॉल किए गए पैकेज की सूची को ऐक्सेस करने पर निर्भर नहीं रहना चाहिए. Android 11 से, इस सुविधा के ऐक्सेस पर पाबंदी लगा दी गई है.

नेटवर्किंग SC-N1 SC-9 पूरा नेटवर्क ट्रैफ़िक, एसएसएल पर भेजा जाता है.
SC-N2 SC-6 ऐप्लिकेशन, नेटवर्क सुरक्षा कॉन्फ़िगरेशन का एलान करता है.
SC-N3 अगर ऐप्लिकेशन Google Play services का इस्तेमाल करता है, तो ऐप्लिकेशन शुरू होने पर, सुरक्षा सेवा देने वाली कंपनी की सेवा शुरू हो जाती है.
WebViews SC-W1 SC-6 लोकल कॉन्टेंट ऐक्सेस करने के लिए, setAllowUniversalAccessFromFileURLs() का इस्तेमाल न करें. इसके बजाय, WebViewAssetLoader का इस्तेमाल करें.
SC-W2 SC-7 WebViews को गैर-भरोसेमंद कॉन्टेंट के साथ addJavaScriptInterface() का इस्तेमाल नहीं करना चाहिए.

Android 6.0 और इसके बाद के वर्शन पर, इसके बजाय एचटीएमएल मैसेज चैनल का इस्तेमाल करें.

प्लान लागू करना SC-E1 ऐप्लिकेशन, ऐप्लिकेशन के APK से बाहर के कोड को डाइनैमिक तरीके से लोड नहीं करता है. डेवलपर को Android ऐप्लिकेशन बंडल का इस्तेमाल करना चाहिए. इसमें Play Feature Delivery और Play ऐसेट डिलीवरी शामिल हैं.

अगस्त 2021 से, Google Play Store पर मौजूद सभी नए ऐप्लिकेशन के लिए, Android ऐप्लिकेशन बंडल का इस्तेमाल करना ज़रूरी है.

क्रिप्टोग्राफी SC-C1 यह ऐप्लिकेशन, मज़बूत क्रिप्टोग्राफ़िक एल्गोरिदम और रैंडम नंबर जनरेटर का इस्तेमाल करता है. ये दोनों चीज़ें प्लैटफ़ॉर्म से मिलती हैं. साथ ही, ऐप्लिकेशन में कस्टम एल्गोरिदम लागू नहीं किए जाते.

Google Play

पक्का करें कि आपके ऐप्लिकेशन, Google Play पर पब्लिश किए जा सकते हों.

जगह ID परीक्षण ब्यौरा
नीतियां GP-P1 GP-all ऐप्लिकेशन, Google Play Developer Content Policy की शर्तों का पूरी तरह से पालन करता हो. साथ ही, इसमें आपत्तिजनक कॉन्टेंट न हो, दूसरों की बौद्धिक संपत्ति या ब्रैंड का इस्तेमाल न किया गया हो वगैरह.
GP-P2 GP-1 ऐप्लिकेशन के मैच्योरिटी लेवल को कॉन्टेंट रेटिंग से जुड़े दिशा-निर्देशों के मुताबिक सही तरीके से सेट किया गया हो.
ऐप्लिकेशन की ज़्यादा जानकारी वाला पेज GP-D1 GP-1
GP-2

ऐप्लिकेशन के फ़ीचर ग्राफ़िक में, इस सहायता लेख में दिए गए दिशा-निर्देशों का पालन किया गया है. पक्का करें कि:

  1. ऐप्लिकेशन की लिस्टिंग में अच्छी क्वालिटी वाला फ़ीचर ग्राफ़िक शामिल हो.
  2. फ़ीचर ग्राफ़िक में डिवाइस की इमेज, स्क्रीनशॉट या ऐसा छोटा टेक्स्ट शामिल नहीं होना चाहिए जिसे छोटा करने पर पढ़ा न जा सके. साथ ही, यह टेक्स्ट उस सबसे छोटी स्क्रीन पर भी नहीं दिखना चाहिए जिस पर आपका ऐप्लिकेशन काम करता है.
  3. फ़ीचर ग्राफ़िक, विज्ञापन जैसा नहीं होना चाहिए.
GP-D2 GP-1 ऐप्लिकेशन के स्क्रीनशॉट और वीडियो में, Android के अलावा किसी दूसरे डिवाइस को न तो दिखाया गया हो और न ही उसका रेफ़रंस दिया गया हो.
GP-D3 GP-1 ऐप्लिकेशन के स्क्रीनशॉट या वीडियो में, ऐप्लिकेशन के कॉन्टेंट और अनुभव के बारे में गुमराह करने वाली जानकारी नहीं दी गई है.
इस्तेमाल करने वाले के लिए सहायता GP-X1 GP-1 अगर Google Play पेज के 'समीक्षाएं' टैब में, उपयोगकर्ताओं की ओर से रिपोर्ट किए गए सामान्य बग को दोहराया जा सकता है और वे कई अलग-अलग डिवाइसों पर दिखते हैं, तो उन्हें ठीक किया जाता है. अगर बग सिर्फ़ कुछ डिवाइसों पर दिखता है, तो भी आपको उसे ठीक करना चाहिए. ऐसा तब करना चाहिए, जब वे डिवाइस खास तौर पर लोकप्रिय हों या नए हों.

टेस्ट एनवायरमेंट सेट अप करना

इस चेकलिस्ट के लिए टेस्ट एनवायरमेंट सेट अप करने के लिए, हमारा सुझाव है कि आप यह तरीका अपनाएं:

  • एम्युलेटर टेस्टिंग पर फ़ोकस किया गया है - Android Emulator, अलग-अलग Android वर्शन और स्क्रीन रिज़ॉल्यूशन पर अपने ऐप्लिकेशन को टेस्ट करने का एक बेहतरीन तरीका है. आपको इम्यूलेट किए गए डिवाइस (एवीडी) सेट अप करने चाहिए, ताकि टारगेट किए गए उपयोगकर्ताओं के लिए सबसे सामान्य फ़ॉर्म फ़ैक्टर और हार्डवेयर/सॉफ़्टवेयर कॉम्बिनेशन को दिखाया जा सके. हमारा सुझाव है कि फ़ोन के अलावा, अन्य डिवाइसों पर भी टेस्टिंग करें. इसके लिए, कम से कम इन एम्युलेटर का इस्तेमाल करें:
    • फ़ोल्ड किए जा सकने वाले डिवाइस - 7.6 इंच का फ़ोल्ड-इन डिसप्ले, जिसमें आउटर डिसप्ले भी शामिल है. यह AVD मैनेजर में फ़ोन के तौर पर दिखता है.
    • टैबलेट - Pixel C 9.94” (2,560 पिक्सल x 1,800 पिक्सल).
    • मोबाइल ऐप्लिकेशन की सूचनाओं की जांच करने के लिए, किसी फ़ोन / टैबलेट या एम्युलेटर को Wear OS एम्युलेटर - Wear OS Round 1.84” से जोड़ें.
  • हार्डवेयर डिवाइस - आपके टेस्ट एनवायरमेंट में, कुछ ऐसे हार्डवेयर डिवाइस शामिल होने चाहिए जो मुख्य फ़ॉर्म फ़ैक्टर और हार्डवेयर/सॉफ़्टवेयर के उन कॉम्बिनेशन को दिखाते हों जो फ़िलहाल उपभोक्ताओं के लिए उपलब्ध हैं. बाज़ार में मौजूद हर डिवाइस पर टेस्ट करना ज़रूरी नहीं है. इसके बजाय, आपको कुछ ऐसे डिवाइसों पर ध्यान देना चाहिए जो आपके ऐप्लिकेशन के लिए सही हों. इसके लिए, हर फ़ॉर्म फ़ैक्टर के लिए एक या दो डिवाइसों का इस्तेमाल किया जा सकता है.
  • डिवाइस टेस्ट लैब - अलग-अलग तरह के डिवाइसों पर अपने ऐप्लिकेशन की टेस्टिंग करने के लिए, तीसरे पक्ष की सेवाओं का भी इस्तेमाल किया जा सकता है. जैसे, Firebase टेस्ट लैब.
  • Android के नए वर्शन पर टेस्ट करें - आपको अपने टारगेट यूज़र बेस के लिए, Android के चुनिंदा वर्शन पर टेस्ट करना चाहिए. साथ ही, आपको हमेशा Android के नए वर्शन (फ़िलहाल, Android 14) पर टेस्ट करना चाहिए. इससे यह पक्का होता है कि बदलावों के नए वर्शन से, आपके ऐप्लिकेशन का इस्तेमाल करने वाले लोगों के अनुभव पर बुरा असर न पड़े.

यूनिट टेस्टिंग, इंटिग्रेशन टेस्टिंग, और यूज़र इंटरफ़ेस (यूआई) टेस्टिंग के साथ-साथ टेस्टिंग के बारे में ज़्यादा जानकारी पाने के लिए, Android टेस्टिंग की बुनियादी बातें देखें.

टेस्ट करने की प्रोसेस

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

टाइप टेस्ट ब्यौरा
Core Suite सीआर-0

ऐप्लिकेशन के सभी हिस्सों पर जाएं. जैसे, सभी स्क्रीन, डायलॉग, सेटिंग, और उपयोगकर्ता के सभी फ़्लो.

  1. अगर ऐप्लिकेशन में कॉन्टेंट में बदलाव करने, कॉन्टेंट बनाने, गेम खेलने या मीडिया चलाने की सुविधा मिलती है, तो इन सभी सुविधाओं को टेस्ट करें.
  2. ऐप्लिकेशन की टेस्टिंग करते समय, दूसरे ऐप्लिकेशन से होने वाली रुकावटों को शामिल करें. जैसे, सूचना या फ़ोन कॉल मिलना. साथ ही, डिवाइस के एट्रिब्यूट में कुछ समय के लिए होने वाले बदलावों को लागू करें. जैसे, नेटवर्क कनेक्टिविटी, बैटरी फ़ंक्शन, जीपीएस की उपलब्धता, और सिस्टम लोड.
  3. इन-ऐप्लिकेशन खरीदारी के सभी फ़्लो डालें और उनकी जांच करें
सीआर-1 हर ऐप्लिकेशन की स्क्रीन पर, डिवाइस के होम बटन को दबाएं या जेस्चर नेविगेशन में ऊपर की ओर स्वाइप करें. इसके बाद, 'सभी ऐप्लिकेशन' स्क्रीन से ऐप्लिकेशन को फिर से लॉन्च करें.
सीआर-2 हर ऐप्लिकेशन की स्क्रीन से, किसी दूसरे ऐप्लिकेशन पर स्विच करें. इसके बाद, हाल ही में इस्तेमाल किए गए ऐप्लिकेशन के स्विचर का इस्तेमाल करके, टेस्ट किए जा रहे ऐप्लिकेशन पर वापस जाएं.
सीआर-3 हर ऐप्लिकेशन की स्क्रीन (और डायलॉग) पर, 'वापस जाएं' बटन दबाएं या वापस जाने के लिए स्वाइप करने वाले जेस्चर का इस्तेमाल करें.
CR-5 हर ऐप्लिकेशन की स्क्रीन पर, डिवाइस को लैंडस्केप और पोर्ट्रेट ओरिएंटेशन में कम से कम तीन बार घुमाएं. साथ ही, उसे फ़ोल्ड और अनफ़ोल्ड करें.
CR-6 टेस्ट ऐप्लिकेशन को बैकग्राउंड में भेजने के लिए, किसी दूसरे ऐप्लिकेशन पर स्विच करें. सेटिंग में जाएँ और देखें कि बैकग्राउंड में टेस्ट ऐप्लिकेशन की कोई सेवा चल रही है या नहीं. Android 4.0 और इसके बाद के वर्शन में, ऐप्लिकेशन स्क्रीन पर जाएं और "चल रहा है" टैब में जाकर ऐप्लिकेशन ढूंढें.
CR-7 डिवाइस को स्लीप मोड में डालने के लिए, पावर बटन दबाएं. इसके बाद, स्क्रीन को चालू करने के लिए फिर से पावर बटन दबाएं.
CR-8 डिवाइस पर स्क्रीन लॉक सेट अप करें. डिवाइस को स्लीप मोड में ले जाने के लिए, पावर बटन दबाएं. इससे डिवाइस लॉक हो जाता है. इसके बाद, स्क्रीन को चालू करने और डिवाइस को अनलॉक करने के लिए, पावर बटन को फिर से दबाएं.
सीआर-9 सूचना पैनल में, ऐप्लिकेशन की ओर से दिखाई जा सकने वाली सभी तरह की सूचनाओं को ट्रिगर करें और देखें. सूचनाओं को बड़ा करें. यह सुविधा Android 4.1 और इसके बाद के वर्शन पर काम करती है. इसके बाद, उपलब्ध सभी कार्रवाइयों पर टैप करें.
CR-10 Doze और ऐप्लिकेशन स्टैंडबाय मोड में, इस्तेमाल के अन्य उदाहरणों के लिए सहायता की समीक्षा करें.
SD कार्ड पर इंस्टॉल करें SD-1 अगर ऐप्लिकेशन को डिवाइस के एसडी कार्ड में इंस्टॉल किया जा सकता है, तो Core Suite को फिर से इंस्टॉल करें.

ऐप्लिकेशन को एसडी कार्ड में ले जाने के लिए, सेटिंग > ऐप्लिकेशन की जानकारी > एसडी कार्ड में ले जाएं का इस्तेमाल किया जा सकता है.

परफ़ॉर्मेंस और स्टेबिलिटी एसपी-1 Android मेनिफ़ेस्ट फ़ाइल और बिल्ड कॉन्फ़िगरेशन की समीक्षा करें. इससे यह पक्का किया जा सकेगा कि ऐप्लिकेशन को एसडीके के उपलब्ध सबसे नए वर्शन (targetSdk और compileSdk) के हिसाब से बनाया गया है.
SP-2 build.gradle फ़ाइल में जाकर देखें कि कोई पुरानी डिपेंडेंसी तो नहीं है.
SP-3 गैर-एसडीके इंटरफ़ेस के इस्तेमाल का पता लगाने के लिए, Android Studio के लिंट टूल का इस्तेमाल करें. टेस्टिंग के अन्य तरीके भी उपलब्ध हैं.
Performance Monitoring PM-1 StrictMode की प्रोफ़ाइलिंग की सुविधा चालू करके, Core Suite को फिर से चलाएं.

गारबेज कलेक्शन और उपयोगकर्ता अनुभव पर इसके असर पर ध्यान दें.

बैटरी BA-1 बैटरी बचाने (डोज़) और ऐप्लिकेशन स्टैंडबाय के सभी साइकल में, Core Suite को दोहराएं.

अलार्म, टाइमर, सूचनाएं, सिंक करने की सुविधा वगैरह पर ध्यान दें. ज़रूरी शर्तों और दिशा-निर्देशों के लिए, बैटरी बचाने (डोज़) और ऐप्लिकेशन स्टैंडबाय मोड के साथ टेस्टिंग करना लेख पढ़ें.

सुरक्षा SC-1 बाहरी स्टोरेज में सेव किया गया पूरा डेटा देखें.
SC-2 देखें कि बाहरी स्टोरेज से लोड किए गए डेटा को कैसे मैनेज और प्रोसेस किया जाता है.
SC-3 Android मेनिफ़ेस्ट फ़ाइल में तय किए गए सभी कॉन्टेंट प्रोवाइडर की समीक्षा करें. पक्का करें कि हर सेवा देने वाली कंपनी के पास सही protectionLevel हो.
SC-4 मेनिफ़ेस्ट फ़ाइल में, रनटाइम के दौरान, और डिवाइस पर ऐप्लिकेशन की सेटिंग स्क्रीन (सेटिंग > ऐप्लिकेशन की जानकारी) में जाकर, अपने ऐप्लिकेशन के लिए ज़रूरी सभी अनुमतियों की समीक्षा करें.
SC-5 Android मेनिफ़ेस्ट फ़ाइल में तय किए गए सभी ऐप्लिकेशन कॉम्पोनेंट की एक्सपोर्ट स्थिति की समीक्षा करें. एक्सपोर्ट की गई प्रॉपर्टी को सभी कॉम्पोनेंट के लिए साफ़ तौर पर सेट किया जाना चाहिए.
SC-6 ऐप्लिकेशन के नेटवर्क सुरक्षा कॉन्फ़िगरेशन की समीक्षा करें. साथ ही, यह पक्का करें कि कॉन्फ़िगरेशन पर कोई लिंट चेक फ़ेल न हो.
SC-7 हर WebView के लिए, उस पेज पर जाएं जिसके लिए JavaScript ज़रूरी है.
SC-8 हर वेबव्यू में, उन साइटों और कॉन्टेंट पर जाने की कोशिश करें जिन्हें आपका ऐप्लिकेशन सीधे तौर पर लोड नहीं करता है.
SC-9 ऐसा Network Security Configuration सेट करें जो cleartext ट्रैफ़िक को बंद करता हो. इसके बाद, ऐप्लिकेशन की जांच करें.
SC-10 ऐप्लिकेशन चलाएं और सभी मुख्य फ़ंक्शन इस्तेमाल करें. साथ ही, डिवाइस के लॉग पर नज़र रखें. उपयोगकर्ता की कोई भी निजी जानकारी लॉग नहीं की जानी चाहिए.
Google Play GP-1 अपनी डेवलपर प्रोफ़ाइल, ऐप्लिकेशन की जानकारी, स्क्रीनशॉट, फ़ीचर ग्राफ़िक, कॉन्टेंट रेटिंग, और उपयोगकर्ता के सुझाव या राय देखने के लिए, Google Play कंसोल में साइन इन करें.
GP-2 अपने फ़ीचर ग्राफ़िक और स्क्रीनशॉट डाउनलोड करें. इसके बाद, उन्हें उन डिवाइसों और फ़ॉर्म फ़ैक्टर के डिसप्ले साइज़ के हिसाब से छोटा करें जिन्हें आपको टारगेट करना है.
GP-3 ऐप्लिकेशन या एक्सपैंशन फ़ाइल डाउनलोड में पैकेज किए गए सभी ग्राफ़िकल ऐसेट, मीडिया, टेक्स्ट, कोड लाइब्रेरी, और अन्य कॉन्टेंट की समीक्षा करें.

StrictMode का इस्तेमाल करके टेस्टिंग करना

परफ़ॉर्मेंस की जांच करने के लिए, हमारा सुझाव है कि अपने ऐप्लिकेशन में StrictMode को चालू करें. साथ ही, इसका इस्तेमाल उन कार्रवाइयों का पता लगाने के लिए करें जो परफ़ॉर्मेंस, नेटवर्क ऐक्सेस, फ़ाइल पढ़ने/लिखने वगैरह पर असर डाल सकती हैं. मुख्य थ्रेड और अन्य थ्रेड, दोनों पर संभावित रूप से समस्या पैदा करने वाली कार्रवाइयों का पता लगाएं.

StrictMode.ThreadPolicy.Builder का इस्तेमाल करके, हर थ्रेड के लिए मॉनिटरिंग की नीति सेट अप की जा सकती है. साथ ही, detectAll() का इस्तेमाल करके, ThreadPolicy में मॉनिटरिंग की सभी सुविधाओं को चालू किया जा सकता है.

पक्का करें कि आपने penaltyFlashScreen() का इस्तेमाल करके, ThreadPolicy के लिए नीति के उल्लंघनों की विज़ुअल सूचना पाने की सुविधा चालू की हो.