ऐप्लिकेशन का ओरिएंटेशन, आसपेक्ट रेशियो, और साइज़ में बदलाव करने की सुविधा

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

Android 16 (एपीआई लेवल 36) की मदद से, ऐप्लिकेशन को अलग-अलग डिवाइसों के हिसाब से अडजस्ट किया जा सकता है. साथ ही, स्क्रीन ओरिएंटेशन, आसपेक्ट रेशियो, और साइज़ बदलने से जुड़ी पाबंदियों को हटाकर, ऐप्लिकेशन को अलग-अलग डिसप्ले साइज़ के हिसाब से अडजस्ट किया जा सकता है. ये ओवरराइड, 600 डीपी से ज़्यादा चौड़ाई वाले डिवाइसों पर लागू होते हैं. इसका मतलब है कि:

  • टैबलेट
  • बड़ी स्क्रीन वाले फ़ोल्ड किए जा सकने वाले डिवाइसों के इनर डिसप्ले
  • डेस्कटॉप विंडोविंग (सभी फ़ॉर्म फ़ैक्टर पर)

API लेवल 36 को टारगेट करने वाले ऐप्लिकेशन का साइज़ बदला जा सकता है. साथ ही, अगर डिसप्ले की सबसे छोटी चौड़ाई >= 600dp है, तो उन्हें मल्टी-विंडो मोड (resizeableActivity="true" के बराबर) में खोला जा सकता है.

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

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

बदलाव

बड़ी स्क्रीन पर Android 16 (एपीआई लेवल 36) को टारगेट करने वाले ऐप्लिकेशन के लिए, मेनिफ़ेस्ट के इन एट्रिब्यूट और एपीआई को अनदेखा किया जाता है:

एट्रिब्यूट या एपीआई नज़रअंदाज़ की गई वैल्यू
screenOrientation portrait, landscape, reversePortrait, reverseLandscape, sensorPortrait, sensorLandscape, userPortrait, userLandscape
resizeableActivity सभी
minAspectRatio सभी
maxAspectRatio सभी
setRequestedOrientation()

getRequestedOrientation()
portrait, landscape, reversePortrait, reverseLandscape, sensorPortrait, sensorLandscape, userPortrait, userLandscape

अपवाद

Android 16 में किए गए बदलावों के ये अपवाद हैं:

  • sw600dp से छोटी डिसप्ले (ज़्यादातर फ़ोन, फ़्लिप किए जा सकने वाले डिवाइस, और बड़ी स्क्रीन वाले फ़ोल्ड किए जा सकने वाले डिवाइसों की बाहरी डिसप्ले)

  • android:appCategory फ़्लैग पर आधारित गेम

    Android ऐप्लिकेशन बंडल और Play ऐप्लिकेशन साइनिंग का इस्तेमाल करके अपना गेम पब्लिश करें. इससे Google Play को फ़्लैग मैनेज करने और ऐप्लिकेशन बंडल के फ़ायदे अपने-आप देने की अनुमति मिलती है. ऐप्लिकेशन मेनिफ़ेस्ट के बारे में खास जानकारी भी देखें.

  • आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) की सेटिंग में, उपयोगकर्ता ऐप्लिकेशन के डिफ़ॉल्ट व्यवहार के लिए ऑप्ट इन करता है

ऑप्ट आउट करें

To opt out of the API level 36 behavior, declare the PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY manifest property.

To opt out for a specific activity, set the property in the <activity> element:

<activity ...>
    <property
        android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
        android:value="true" />
    ...
</activity>

To opt out for your entire app, set the property in the <application> element:

<application ...>
    <property
        android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
        android:value="true" />
    ...
</application>

परीक्षण

यह जांचने के लिए कि Android 16 में हुए बदलावों का आपके ऐप्लिकेशन पर असर पड़ा है या नहीं, Android Studio में Pixel Tablet और Pixel Fold सीरीज़ के एम्युलेटर का इस्तेमाल करें. साथ ही, अपने ऐप्लिकेशन के मॉड्यूल build.gradle फ़ाइल में targetSdkPreview = "Baklava" सेट करें.

इसके अलावा, अपने टेस्ट डिवाइसों पर ऐप्लिकेशन के साथ काम करने वाले फ़्रेमवर्क का इस्तेमाल करें. इसके लिए, UNIVERSAL_RESIZABLE_BY_DEFAULT फ़्लैग चालू करें. कंपैटिबिलिटी फ़्रेमवर्क टूल देखें.

Espresso टेस्टिंग फ़्रेमवर्क और Jetpack Compose टेस्टिंग एपीआई की मदद से, टेस्टिंग को ऑटोमेट किया जा सकता है.

सामान्य समस्याएं

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

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

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

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

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

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

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

  • रिस्पॉन्सिव लेआउट बनाना: विंडो साइज़ क्लास में, रिस्पॉन्सिव लेआउट डिसप्ले डाइमेंशन में होने वाले बदलावों के हिसाब से अडजस्ट हो जाते हैं. इससे हमेशा ऐप्लिकेशन का सबसे अच्छा प्रज़ेंटेशन मिलता है.

टाइमलाइन

  • Android 16 (2025): एपीआई लेवल 36 को टारगेट करने वाले ऐप्लिकेशन के लिए, बड़ी स्क्रीन वाले डिवाइसों (स्क्रीन की सबसे कम चौड़ाई >= 600 डीपी) पर सभी ओरिएंटेशन और आसपेक्ट रेशियो के साथ-साथ ऐप्लिकेशन के साइज़ को बदलने की सुविधा उपलब्ध होगी. हालांकि, डेवलपर के पास ऑप्ट आउट करने का विकल्प होता है.

  • Android के 2026 वाले वर्शन के लिए: एपीआई लेवल 37 को टारगेट करने वाले ऐप्लिकेशन के लिए, सभी ओरिएंटेशन और आसपेक्ट रेशियो के साथ-साथ ऐप्लिकेशन के साइज़ को बदलने की सुविधा, बड़ी स्क्रीन वाले डिवाइसों (स्क्रीन की सबसे कम चौड़ाई >= 600 डीपी) के लिए डिफ़ॉल्ट रूप से उपलब्ध होगी. डेवलपर के पास, इससे ऑप्ट आउट करने का विकल्प नहीं होगा.

टारगेट एपीआई लेवल लागू होने वाले डिवाइस डेवलपर को ऑप्ट आउट करने की अनुमति है
36 (Android 16) बड़ी स्क्रीन वाले डिवाइस (सबसे कम स्क्रीन की चौड़ाई >= 600 डीपी) हां
37 (अनुमानित) बड़ी स्क्रीन वाले डिवाइस (सबसे कम स्क्रीन की चौड़ाई >= 600 डीपी) नहीं

किसी खास एपीआई लेवल को टारगेट करने की समयसीमा, ऐप्लिकेशन स्टोर के हिसाब से तय होती है. Google Play पर मौजूद ऐप्लिकेशन को अगस्त 2026 से एपीआई लेवल 36 और अगस्त 2027 से एपीआई लेवल 37 को टारगेट करना होगा.

अन्य संसाधन