अलग-अलग प्लैटफ़ॉर्म के वर्शन के साथ काम करता है

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

Android के हर वर्शन पर काम करने वाले सक्रिय डिवाइसों का डिस्ट्रिब्यूशन जानने के लिए, Android Studio के नए प्रोजेक्ट विज़र्ड का इस्तेमाल करें. यह डिस्ट्रिब्यूशन, Google Play Store पर आने वाले डिवाइसों की संख्या पर आधारित होता है. आम तौर पर, हमारा सुझाव है कि आप अपने ऐप्लिकेशन को नए वर्शन पर टारगेट करते हुए, 90% ऐक्टिव डिवाइसों के साथ काम करने की सुविधा दें.

सलाह: आपको बेहतरीन सुविधाएं देने के लिए, कई Android वर्शन की सुविधाओं का इस्तेमाल करने के लिए, आपको अपने ऐप्लिकेशन में Android सपोर्ट लाइब्रेरी का इस्तेमाल करना चाहिए, इससे आपको पुराने वर्शन पर, हाल ही के कई प्लैटफ़ॉर्म एपीआई इस्तेमाल करने की सुविधा मिलती है.

कम से कम और टारगेट एपीआई लेवल की जानकारी देना

AndroidManifest.xml फ़ाइल आपके ऐप्लिकेशन के बारे में जानकारी देता है और पहचान करता है कि Android के कौनसे वर्शन काम करते हैं. खास तौर पर, <uses-sdk> एलिमेंट के लिए minSdkVersion और targetSdkVersion एट्रिब्यूट, सबसे कम एपीआई लेवल की पहचान करते हैं. यह लेवल, आपके ऐप्लिकेशन के साथ काम करता है. साथ ही, यह भी पता चलता है कि आपने अपने ऐप्लिकेशन को सबसे ज़्यादा किस एपीआई लेवल के लिए डिज़ाइन और टेस्ट किया है.

उदाहरण के लिए:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
    <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
    ...
</manifest>

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

रनटाइम के दौरान सिस्टम का वर्शन देखें

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

Kotlin

private fun setUpActionBar() {
    // Make sure we're running on Honeycomb or higher to use ActionBar APIs
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        actionBar.setDisplayHomeAsUpEnabled(true)
    }
}

Java

private void setUpActionBar() {
    // Make sure we're running on Honeycomb or higher to use ActionBar APIs
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        ActionBar actionBar = getActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
    }
}

ध्यान दें: एक्सएमएल संसाधनों को पार्स करते समय, Android उन एक्सएमएल एट्रिब्यूट को अनदेखा कर देता है जो मौजूदा डिवाइस पर काम नहीं करते. इसलिए, एक्सएमएल एट्रिब्यूट का इस्तेमाल सुरक्षित तरीके से किया जा सकता है. ये एट्रिब्यूट सिर्फ़ नए वर्शन के साथ काम करते हैं. इस बात की चिंता नहीं करनी चाहिए कि पुराने वर्शन में इस कोड का इस्तेमाल करने पर क्या होगा. उदाहरण के लिए, अगर आपने targetSdkVersion="11" सेट किया है, तो आपके ऐप्लिकेशन में Android 3.0 और उसके बाद के वर्शन पर, डिफ़ॉल्ट रूप से ActionBar शामिल होता है. इसके बाद, ऐक्शन बार में मेन्यू आइटम जोड़ने के लिए, आपको अपने मेन्यू रिसॉर्स एक्सएमएल में android:showAsAction="ifRoom" सेट करना होगा. ऐसा करना सुरक्षित है में नहीं, क्योंकि Android के पुराने वर्शन showAsAction एट्रिब्यूट का इस्तेमाल करें (इसका मतलब है कि आपको अलग से नहीं वर्शन res/menu-v11/ में).

प्लैटफ़ॉर्म स्टाइल और थीम का इस्तेमाल करें

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

अपनी गतिविधि को डायलॉग बॉक्स की तरह दिखाने के लिए:

<activity android:theme="@android:style/Theme.Dialog">

अपनी गतिविधि का बैकग्राउंड पारदर्शी बनाने के लिए:

<activity android:theme="@android:style/Theme.Translucent">

/res/values/styles.xml में बताई गई अपनी पसंद के मुताबिक बनाई गई थीम को लागू करने के लिए:

<activity android:theme="@style/CustomTheme">

अपने पूरे ऐप्लिकेशन (सभी गतिविधियों) पर कोई थीम लागू करने के लिए, <application> एलिमेंट में android:theme एट्रिब्यूट जोड़ें:

<application android:theme="@style/CustomTheme">

थीम बनाने और उनका इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, स्टाइल और थीम गाइड पढ़ें.