डिवाइस पर काम करने से जुड़ी खास जानकारी

Android को कई अलग-अलग डिवाइसों पर चलाने के लिए डिज़ाइन किया गया है. जैसे, फ़ोन, टैबलेट, और टीवी होते हैं. तरह-तरह के डिवाइस होने से, ऑडियंस को ध्यान में रखकर तैयार किया गया है. सभी डिवाइसों पर आपके ऐप्लिकेशन को सफल बनाने के लिए, यह ज़रूरी है कि सुविधा में होने वाले उतार-चढ़ाव को सहन कर सकती है और ऐसा लचीला यूज़र इंटरफ़ेस उपलब्ध करा सकती है जो सुविधा के हिसाब से ज़रूरत के मुताबिक काम कर सके कॉन्फ़िगरेशन पर जा सकते हैं.

डिवाइस पर काम करने से जुड़ी मदद के लिए, Android एक डाइनैमिक ऐप्लिकेशन फ़्रेमवर्क उपलब्ध कराता है जिसमें आप कॉन्फ़िगरेशन-विशिष्ट स्टैटिक ऐप्लिकेशन संसाधन फ़ाइलें, जैसे अलग-अलग स्क्रीन साइज़ के लिए अलग-अलग एक्सएमएल लेआउट. Android फिर मौजूदा डिवाइस कॉन्फ़िगरेशन के आधार पर सही संसाधन लोड करता है. के साथ अपने ऐप्लिकेशन के डिज़ाइन और अतिरिक्त ऐप्लिकेशन संसाधनों के आधार पर, सिंगल ऐप्लिकेशन पैकेज (APK), जो कई तरह के उपयोगकर्ता अनुभव को ऑप्टिमाइज़ करता है डिवाइस हैं.

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

"एक साथ काम करने की सुविधा" क्या होती है मतलब?

Android डेवलपमेंट के मामले में, दो तरह से काम किया जा सकता है: डिवाइस के साथ काम करने की सुविधा और ऐप्लिकेशन के साथ काम करने की सुविधा.

Android एक ओपन सोर्स प्रोजेक्ट है, इसलिए कोई भी हार्डवेयर मैन्युफ़ैक्चरर आपको ऐसा डिवाइस बनाना होगा जो Android ऑपरेटिंग सिस्टम पर चलता हो. हालांकि, एक डिवाइस "Android डिवाइस पर काम करता हो" केवल तभी जब वह Android एक्ज़ीक्यूशन एनवायरमेंट. Android की सटीक जानकारी एक्ज़ीक्यूशन एनवायरमेंट को Android कंपैटबिलिटी प्रोग्राम. हर डिवाइस के लिए, कंपैटबिलिटी टेस्ट सुइट को पास करना ज़रूरी है (सीटीएस) के साथ काम करता है.

ऐप्लिकेशन डेवलपर के तौर पर, आपको इस बात की चिंता करने की ज़रूरत नहीं है कि Android के साथ काम करता है. सिर्फ़ Android के साथ काम करने वाले डिवाइसों में ही ये शामिल हैं Google Play Store पर टैप करें. इसलिए, अगर कोई उपयोगकर्ता Google Play Store से आपका ऐप्लिकेशन इंस्टॉल करता है, तो Android के साथ काम करने वाले डिवाइस का इस्तेमाल कर रहे हों.

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

डिवाइसों पर अपने ऐप्लिकेशन की उपलब्धता को कंट्रोल करना

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

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

डिवाइस की सुविधाएं

डिवाइस में मौजूद सुविधाओं के आधार पर, अपने ऐप्लिकेशन की उपलब्धता को मैनेज करने के लिए, Android फ़ीचर आईडी: सभी डिवाइसों पर उपलब्ध है. उदाहरण के लिए, कंपास सेंसर के लिए सुविधा आईडी FEATURE_SENSOR_COMPASS, और ऐप विजेट की सुविधा आईडी है FEATURE_APP_WIDGETS.

अगर ज़रूरी हो, तो लोगों को आपका ऐप्लिकेशन इंस्टॉल करने से तब रोका जा सकता है, जब वे डिवाइस में सुविधा का एलान करने पर, ज़रूरी सुविधा नहीं मिलती <uses-feature> आपके ऐप्लिकेशन के घटकर मेनिफ़ेस्ट फ़ाइल का इस्तेमाल करता है.

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

<manifest ... >
    <uses-feature android:name="android.hardware.sensor.compass"
                  android:required="true" />
    ...
</manifest>

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

हालांकि, अगर आपके ऐप्लिकेशन के मुख्य फ़ंक्शन के लिएज़रूरी नहीं डिवाइस की सुविधा, required एट्रिब्यूट की वैल्यू "false" को सबमिट करें और रनटाइम के दौरान डिवाइस की सुविधा देखें. अगर मौजूदा डिवाइस पर ऐप्लिकेशन की सुविधा उपलब्ध नहीं है, तो मिलते-जुलते ऐप्लिकेशन फ़ीचर पर काम कर सकते हैं. उदाहरण के लिए, यह क्वेरी की जा सकती है कि कोई सुविधा कॉल करने पर उपलब्ध hasSystemFeature() अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस तरह:

Kotlin

if (!packageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
    // This device doesn't have a compass. Turn off the compass feature.
    disableCompassFeature()
}

Java

PackageManager pm = getPackageManager();
if (!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
    // This device doesn't have a compass. Turn off the compass feature.
    disableCompassFeature();
}

खरीदारी के लिए उपलब्धता को कंट्रोल करने के लिए इस्तेमाल किए जा सकने वाले सभी फ़िल्टर के बारे में जानकारी पाने के लिए डाउनलोड करें, देखें Google Play पर फ़िल्टर दस्तावेज़.

प्लेटफ़ॉर्म वर्शन

अलग-अलग डिवाइस पर Android प्लैटफ़ॉर्म के अलग-अलग वर्शन चल सकते हैं, जैसे Android 12 या Android 13. प्लैटफ़ॉर्म के हर वर्शन में अक्सर एपीआई जोड़े जाते हैं पिछले वर्शन में उपलब्ध नहीं था. यह बताने के लिए कि एपीआई का कौनसा सेट मौजूद है, तो हर प्लैटफ़ॉर्म वर्शन एपीआई लेवल. उदाहरण के लिए, Android 12, एपीआई लेवल 31, और Android 13, एपीआई लेवल 33.

आपको यह बताना होगा कि minSdkVersion और targetSdkVersion आपकी build.gradle फ़ाइल में मौजूद मान:

Kotlin

android {
    defaultConfig {
        applicationId = "com.example.myapp"

        // Defines the minimum API level required to run the app.
        minSdkVersion(30)

        // Specifies the API level used to test the app.
        targetSdkVersion(33)
        ...
    }
}

ग्रूवी

android {
    defaultConfig {
        applicationId 'com.example.myapp'

        // Defines the minimum API level required to run the app.
        minSdkVersion 30

        // Specifies the API level used to test the app.
        targetSdkVersion 33
        ...
    }
}

build.gradle फ़ाइल के बारे में ज़्यादा जानकारी के लिए, पढ़ें अपने बिल्ड को कॉन्फ़िगर करें.

Android का हर एक वर्शन, Android ऐप्लिकेशन के साथ काम करने की सुविधा देता है पिछले प्लैटफ़ॉर्म वर्शन के एपीआई का इस्तेमाल कर रहा है, इसलिए आपका ऐप्लिकेशन शामिल किए गए Android API का इस्तेमाल करते समय Android के आने वाले वर्शन.

हालांकि, अगर आपका ऐप्लिकेशन नए प्लैटफ़ॉर्म वर्शन में जोड़े गए एपीआई का इस्तेमाल करता है, लेकिन को उसके मुख्य फ़ंक्शन के लिए ज़रूरी नहीं है. इसलिए, एपीआई लेवल को यहां देखें यह रनटाइम और इसकी मदद से, एपीआई लेवल पर बहुत कम है. इस मामले में, minSdkVersion को सबसे कम वैल्यू पर सेट करें के लिए अपने ऐप्लिकेशन के मुख्य फ़ंक्शन का इस्तेमाल करें. इसके बाद, मौजूदा सिस्टम के मुख्य फ़ंक्शन से तुलना करें वर्शन, SDK_INT, कोडनेम कॉन्सटेंट में Build.VERSION_CODES जो उस एपीआई लेवल से जुड़ा हो जिसे आपको जांचना है, जैसा कि यहां दिखाया गया है उदाहरण:

Kotlin

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
    // Running on something older than API level 11, so disable
    // the drag and drop features that use ClipboardManager APIs.
    disableDragAndDrop()
}

Java

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
    // Running on something older than API level 11, so disable
    // the drag and drop features that use ClipboardManager APIs.
    disableDragAndDrop();
}

स्क्रीन कॉन्फ़िगरेशन

Android, अलग-अलग साइज़ के डिवाइसों पर काम करता है. जैसे, फ़ोन, टैबलेट, और टीवी. यहां की यात्रा पर हूं अलग-अलग कैटगरी में डिवाइस को स्क्रीन टाइप के हिसाब से कैटगरी में बांटकर, Android इन चीज़ों की हर डिवाइस: स्क्रीन का साइज़ (स्क्रीन का साइज़) और स्क्रीन की सघनता (स्क्रीन पर पिक्सल का भौतिक घनत्व, जिसे डीपीआई). काम करने के अलग-अलग तरीके कॉन्फ़िगरेशन, Android इन वैरिएंट को सामान्य रूप से ग्रुप में बांटता है, ताकि वे इन्हें टारगेट करना आसान होता है:

  • चार सामान्य साइज़: छोटा, सामान्य, बड़ा, और बड़ा
  • कई सामान्य डेंसिटी: mdpi (मीडियम), hdpi (हाई), xhdpi (अतिरिक्त ज़्यादा), xxhdpi (एक्स्ट्रा-एक्स्ट्रा हाई), और अन्य

डिफ़ॉल्ट रूप से, आपका ऐप्लिकेशन सभी स्क्रीन साइज़ और डेंसिटी के साथ काम करता है. क्योंकि सिस्टम आपके यूज़र इंटरफ़ेस (यूआई) लेआउट और इमेज रिसॉर्स में, हर स्क्रीन के लिए ज़रूरी है. सामान्य स्क्रीन के लिए ऑप्टिमाइज़ की गई बिटमैप इमेज उपलब्ध कराएं डेंसिटी.

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

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

कारोबारी वजहों से अपने ऐप्लिकेशन की उपलब्धता को कंट्रोल करना

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

तकनीकी अनुकूलता के लिए फ़िल्टर करना—जैसे कि ज़रूरी हार्डवेयर घटक—हमेशा आपके APK या एएबी में मौजूद जानकारी पर आधारित होते हैं फ़ाइल से लिए जाते हैं. लेकिन गैर-तकनीकी वजहों से फ़िल्टर करना, जैसे कि भौगोलिक स्थान-भाषा—को हमेशा Google Play Console से हटा दिया जाएगा.

दूसरे संसाधन:

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