हर रिलीज़ के साथ, कुछ खास Android API पुराने हो सकते हैं या उन्हें बेहतर बनाने की ज़रूरत पड़ सकती है. ऐसा डेवलपर को बेहतर अनुभव देने या प्लैटफ़ॉर्म की नई क्षमताओं को बढ़ावा देने के लिए करना होगा. ऐसे मामलों में, Android आधिकारिक तौर पर पुराने एपीआई का इस्तेमाल बंद कर देगा. साथ ही, डेवलपर को नए एपीआई का इस्तेमाल करने के लिए कहेगा.
बंद होने का मतलब है कि हमने एपीआई के लिए आधिकारिक सहायता बंद कर दी है. हालांकि, ये डेवलपर के लिए उपलब्ध रहेंगे. इस पेज पर बताया गया है कि Android की इस रिलीज़ में क्या सुविधाएं काम करती हैं. अन्य सुविधाओं के इस्तेमाल पर रोक लगाने के बारे में जानने के लिए, एपीआई में अंतर की रिपोर्ट देखें.
RenderScript
Android 12 से, RenderScript API का इस्तेमाल नहीं किया जा सकेगा. ये डिवाइस काम करते रहेंगे. हालांकि, हमें उम्मीद है कि डिवाइस और कॉम्पोनेंट बनाने वाली कंपनियां, समय के साथ हार्डवेयर से तेज़ी लाने की सुविधा बंद कर देंगी. हमारा सुझाव है कि GPU ऐक्सेलरेशन का पूरा फ़ायदा पाने के लिए, RenderScript से माइग्रेट करें.
Android प्लेलिस्ट
Android प्लेलिस्ट अब काम नहीं करेंगी. अब एपीआई का रखरखाव नहीं किया जा रहा है. हालांकि, यह काम करता रहेगा.
हमारा सुझाव है कि प्लेलिस्ट को m3u फ़ाइलों के तौर पर पढ़ें और सेव करें.
Display API के बंद होने की जानकारी
Android डिवाइस अब कई अलग-अलग फ़ॉर्म फ़ैक्टर में उपलब्ध हो रहे हैं. जैसे, बड़ी स्क्रीन वाले डिवाइस, टैबलेट, और फ़ोल्ड किए जा सकने वाले डिवाइस. हर डिवाइस के लिए कॉन्टेंट को सही तरीके से रेंडर करने के लिए, आपके ऐप्लिकेशन को स्क्रीन या डिसप्ले का साइज़ तय करना होगा. समय के साथ, Android ने इस जानकारी को वापस पाने के लिए अलग-अलग एपीआई उपलब्ध कराए. हमने Android 11 में, WindowMetrics
एपीआई को पेश किया है. साथ ही, इन तरीकों का इस्तेमाल बंद कर दिया है:
हमारा सुझाव है कि Android 12 में WindowMetrics
का इस्तेमाल करें. साथ ही, हम इन तरीकों का इस्तेमाल बंद कर रहे हैं:
ऐप्लिकेशन को अपनी विंडो की सीमाओं के बारे में क्वेरी करने के लिए, WindowMetrics
एपीआई का इस्तेमाल करना चाहिए. इसके अलावा, मौजूदा डेंसिटी के बारे में क्वेरी करने के लिए, Configuration.densityDpi
का इस्तेमाल करना चाहिए.
ध्यान दें कि Jetpack WindowManager
लाइब्रेरी में WindowMetrics
क्लास शामिल है, जो Android 4.0.1 (एपीआई लेवल 14) और इसके बाद वाले वर्शन पर काम करती है.
उदाहरण
यहां WindowMetrics
के इस्तेमाल के कुछ उदाहरण दिए गए हैं.
सबसे पहले, पक्का करें कि आपका ऐप्लिकेशन अपनी गतिविधियों को पूरी तरह से रीसाइज़ कर सकता हो.
कोई भी गतिविधि, यूज़र इंटरफ़ेस (यूआई) से जुड़े किसी भी काम के लिए गतिविधि के संदर्भ में मौजूद WindowMetrics
पर निर्भर होनी चाहिए, खास तौर पर WindowManager.getCurrentWindowMetrics()
.
अगर आपका ऐप्लिकेशन MediaProjection
बनाता है, तो बॉउंड का साइज़ सही होना चाहिए, क्योंकि प्रोजेक्शन डिसप्ले को कैप्चर करता है. अगर ऐप्लिकेशन का साइज़ पूरी तरह से बदला जा सकता है, तो ऐक्टिविटी कॉन्टेक्स्ट सही बाउंड दिखाता है.
Kotlin
val projectionMetrics = activityContext .getSystemService(WindowManager::class.java).maximumWindowMetrics
Java
WindowMetrics projectionMetrics = activityContext .getSystemService(WindowManager.class).getMaximumWindowMetrics();
अगर ऐप्लिकेशन का साइज़ पूरी तरह से नहीं बदला जा सकता, तो उसे WindowContext
इंस्टेंस से सीमाओं के बारे में क्वेरी करनी होगी. साथ ही, WindowManager.getMaximumWindowMetrics()
का इस्तेमाल करके, ऐप्लिकेशन के लिए उपलब्ध सबसे ज़्यादा डिसप्ले एरिया की WindowMetrics को वापस लाना होगा
Kotlin
val windowContext = context.createWindowContext(mContext.display!!, WindowManager.LayoutParams.TYPE_APPLICATION, null) val projectionMetrics = windowContext.getSystemService(WindowManager::class.java) .maximumWindowMetrics
Java
Context windowContext = mContext.createWindowContext(mContext.getDisplay(), WindowManager.LayoutParams.TYPE_APPLICATION, null; WindowMetrics projectionMetrics = windowContext.getWindowManager() .getMaximumWindowMetrics();