एपीआई लेवल: 13
Android 3.2 (HONEYCOMB_MR2
) एक ऐसा प्लैटफ़ॉर्म है जिसमें उपयोगकर्ताओं और डेवलपर के लिए नई सुविधाएं जोड़ी गई हैं. नीचे दिए गए सेक्शन में, नई सुविधाओं और डेवलपर एपीआई के बारे में खास जानकारी दी गई है.
डेवलपर के लिए, Android 3.2 प्लेटफ़ॉर्म Android SDK के लिए डाउनलोड किया जा सकने वाला कॉम्पोनेंट. डाउनलोड किए जा सकने वाले प्लैटफ़ॉर्म में, Android लाइब्रेरी और सिस्टम इमेज के साथ-साथ, इम्यूलेटर स्किन का एक सेट और अन्य चीज़ें शामिल होती हैं. Android 3.2 के लिए ऐप्लिकेशन डेवलप करने या टेस्ट करने के लिए, Android SDK मैनेजर का इस्तेमाल करके, प्लैटफ़ॉर्म को अपने SDK में डाउनलोड करें.
प्लेटफ़ॉर्म हाइलाइट
उपयोगकर्ता के लिए नई सुविधाएं
- अलग-अलग तरह के टैबलेट के लिए ऑप्टिमाइज़ेशन
Android 3.2 में पूरे सिस्टम के कई तरह के ऑप्टिमाइज़ेशन शामिल हैं का इस्तेमाल करें, ताकि ज़्यादा से ज़्यादा टैबलेट डिवाइसों पर उपयोगकर्ताओं को बेहतरीन अनुभव मिल सके.
- तय साइज़ वाले ऐप्लिकेशन के साथ काम करने वाले ज़ूम की सुविधा
Android 3.2 में, कम्पैटबिलिटी ज़ूम मोड की नई सुविधा जोड़ी गई है. इससे, उपयोगकर्ताओं को बड़े डिवाइसों पर, तय साइज़ के ऐप्लिकेशन देखने का एक नया तरीका मिलता है. नया मोड, उन ऐप्लिकेशन के लिए स्टैंडर्ड यूज़र इंटरफ़ेस (यूआई) को बड़ा करने के बजाय, पिक्सल के हिसाब से स्केल करने का विकल्प देता है जिन्हें बड़ी स्क्रीन वाले डिवाइसों, जैसे कि टैबलेट पर चलाने के लिए डिज़ाइन नहीं किया गया है. नए मोड को सिस्टम बार में मौजूद मेन्यू आइकॉन से ऐक्सेस किया जा सकता है. यह उन ऐप्लिकेशन के लिए है जिनके काम करने के लिए, कंपैटबिलिटी की ज़रूरत होती है.
- एसडी कार्ड से मीडिया सिंक करना
एसडी कार्ड के साथ काम करने वाले डिवाइसों पर, उपयोगकर्ता अब सीधे मीडिया फ़ाइलें लोड कर सकते हैं एसडी कार्ड से लेकर उनका इस्तेमाल करने वाले ऐप्लिकेशन तक. सिस्टम की सुविधा, फ़ाइलें तैयार करती है सिस्टम मीडिया स्टोर से ऐप्लिकेशन ऐक्सेस कर सकता है.
डेवलपर के लिए नई सुविधाएं
- स्क्रीन मैनेज करने के लिए एक्सटेंडेड एपीआई
Android 3.2, प्लैटफ़ॉर्म के स्क्रीन सपोर्ट एपीआई में एक्सटेंशन की सुविधा देता है डेवलपर को ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) को मैनेज करने के अन्य तरीके उपलब्ध कराते हैं, ताकि वे Android डिवाइस इस्तेमाल करने वाले डिवाइस. इस एपीआई में, नए रिसॉर्स क्वालीफ़ायर और नए एट्रिब्यूट की ऐसी मेनिफ़ेस्ट होती हैं जो आपको इस बात पर ज़्यादा सटीक कंट्रोल देती हैं कि ऐप्लिकेशन को सामान्य साइज़ के बजाय अलग-अलग साइज़ में दिखाया जाता है साइज़ की कैटगरी.
यह प्लैटफ़ॉर्म, तय साइज़ वाले ऐप्लिकेशन और अलग-अलग स्क्रीन साइज़ के साथ काम करने वाले सीमित ऐप्लिकेशन के लिए, सबसे अच्छा डिसप्ले उपलब्ध कराने के लिए, ज़ूम के साथ काम करने वाला एक नया मोड भी उपलब्ध कराता है. यह मोड, यूज़र इंटरफ़ेस (यूआई) को स्क्रीन के छोटे हिस्से पर रेंडर करता है. इसके बाद, डिसप्ले पर उपलब्ध जगह को भरने के लिए, इसे बड़ा कर देता है. इस बारे में ज़्यादा जानकारी पाने के लिए screen support API और इससे मिलने वाले कंट्रोल के बारे में जानने के लिए, नीचे दिए गए सेक्शन देखें.
एपीआई की खास जानकारी
Screens Support API
Android 3.2 में, नई स्क्रीन के लिए सहायक एपीआई जोड़े गए हैं. इनकी मदद से, यह कंट्रोल किया जा सकता है कि अलग-अलग स्क्रीन साइज़ पर ऐप्लिकेशन कैसे दिखें. यह एपीआई, स्क्रीन के लिए सहायता देने वाले मौजूदा एपीआई पर आधारित है. इसमें प्लैटफ़ॉर्म का सामान्य स्क्रीन डेंसिटी मॉडल भी शामिल है. हालांकि, इसमें स्क्रीन के सामान्य साइज़ (जैसे, बड़ा या बहुत बड़ा) के बजाय, स्क्रीन के डाइमेंशन के हिसाब से, स्क्रीन की खास रेंज को सटीक तौर पर टारगेट करने की सुविधा भी शामिल है. डाइमेंशन को डेंसिटी-इंडिपेंडेंट पिक्सल यूनिट (जैसे, 600dp या 720dp चौड़ा) में मेज़र किया जाता है
किसी ऐप्लिकेशन का यूआई डिज़ाइन करते समय भी, प्लैटफ़ॉर्म की मदद से सघनता का ऐब्स्ट्रैक्ट उपलब्ध कराएं. इसका मतलब है कि आवेदनों को सभी डिवाइसों पर असल पिक्सल डेंसिटी के अंतर की भरपाई करती है. आपने लोगों तक पहुंचाया मुफ़्त में ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) को हॉरिज़ॉन्टल या वर्टिकल के हिसाब से डिज़ाइन कर सकता है स्टोरेज में जगह बची है. प्लैटफ़ॉर्म, उपलब्ध जगह की जानकारी देने के लिए तीन नई विशेषताओं का इस्तेमाल करता है: smallestWidth, width, और height.
- स्क्रीन की smallestWidth वैल्यू, स्क्रीन का सबसे छोटा साइज़ होती है. इसे डेंसिटी-इंडिपेंडेंट पिक्सल ("dp") यूनिट में मेज़र किया जाता है. स्क्रीन की ऊंचाई का या चौड़ाई, यह दोनों से छोटी होती है. पोर्ट्रेट ओरिएंटेशन वाली स्क्रीन के लिए, सबसे छोटी चौड़ाई आम तौर पर उसकी चौड़ाई पर आधारित होती है. वहीं, लैंडस्केप ओरिएंटेशन में यह उसकी ऊंचाई पर आधारित होती है. सभी मामलों में, सबसे छोटी चौड़ाई, स्क्रीन की किसी तय विशेषता से ली जाती है. साथ ही, ओरिएंटेशन के बावजूद इसकी वैल्यू नहीं बदलती. सबसे छोटी चौड़ाई, ऐप्लिकेशन के लिए अहम है, क्योंकि यह सबसे छोटी चौड़ाई दिखाती है जिसमें ऐप्लिकेशन यूज़र इंटरफ़ेस (यूआई) को ड्रॉ करना होगा. इसमें, सिस्टम के लिए रिज़र्व किए गए स्क्रीन एरिया शामिल नहीं हैं.
- इसके उलट, स्क्रीन की चौड़ाई और ऊंचाई ऐप्लिकेशन लेआउट के लिए मौजूदा हॉरिज़ॉन्टल या वर्टिकल स्पेस मौजूद है, जिसे मापा गया है "डीपी" में इकाइयां जिसमें सिस्टम के रिज़र्व किए गए स्क्रीन एरिया शामिल नहीं हैं. जब उपयोगकर्ता ओरिएंटेशन को लैंडस्केप और पोर्ट्रेट के बीच स्विच करता है, तो स्क्रीन की चौड़ाई और ऊंचाई बदल जाती है.
नई स्क्रीन सपोर्ट एपीआई को इस तरह डिज़ाइन किया गया है कि आप ऐप्लिकेशन का यूज़र इंटरफ़ेस (यूआई) मैनेज कर सकें मौजूदा स्क्रीन की सबसे छोटी चौड़ाई के हिसाब से फ़िल्टर करें. आप यह भी प्रबंधित कर सकते हैं ज़रूरत के हिसाब से मौजूदा चौड़ाई या ऊंचाई के हिसाब से यूज़र इंटरफ़ेस (यूआई). इन कामों के लिए, एपीआई ये टूल उपलब्ध कराता है:
- लेआउट और अन्य संसाधनों को लक्षित करने के लिए कम से कम सबसे छोटी चौड़ाई, चौड़ाई या ऊंचाई, और
- ऐप्लिकेशन की ज़्यादा से ज़्यादा सीमा तय करने के लिए नई मेनिफ़ेस्ट विशेषताएं स्क्रीन के साथ काम करने की सीमा
साथ ही, ऐप्लिकेशन अब भी सिस्टम से क्वेरी कर सकते हैं और यूज़र इंटरफ़ेस (यूआई) को मैनेज कर सकते हैं जैसा कि प्लैटफ़ॉर्म के पिछले वर्शन में होता है.
नए एपीआई की मदद से, सबसे छोटी चौड़ाई की मदद से स्क्रीन को सीधे टारगेट किया जा सकता है, चौड़ाई और ऊंचाई के साथ-साथ, यह सामान्य बात है विशेषताओं के आधार पर तैयार किए गए हैं. यहां दी गई टेबल में कुछ उदाहरण दिए गए हैं, जिन्हें "dp" यूनिट में मेज़र किया गया है.
टाइप | डेंसिटी (सामान्य) | डाइमेंशन (dp) | सबसे छोटी चौड़ाई (डीपी) |
---|---|---|---|
बेसलाइन फ़ोन | mdpi | 320x480 | 320 |
छोटा टैबलेट/बड़ा फ़ोन | एमडीपीआई | 480x800 | 480 |
7-इंच का टेबलेट | एमडीपीआई | 600x1024 | 600 |
10 इंच का टेबलेट | mdpi | 800x1280 | 800 |
यहां दिए गए सेक्शन में, स्क्रीन के लिए नई शर्तों और मेनिफ़ेस्ट एट्रिब्यूट के बारे में ज़्यादा जानकारी दी गई है. स्क्रीन का इस्तेमाल करने के तरीके के बारे में पूरी जानकारी के लिए support API, एक से ज़्यादा लोगों के लिए सहायता पाने की सुविधा देखें स्क्रीन.
स्क्रीन पर दिखने की सुविधा के लिए नए रिसॉर्स क्वालिफ़ायर
Android 3.2 में नए रिसॉर्स क्वालिफ़ायर की मदद से, स्क्रीन साइज़ की रेंज के लिए अपने लेआउट को बेहतर तरीके से टारगेट किया जा सकता है. क्वालिफ़ायर का इस्तेमाल करके, ऐसे संसाधन कॉन्फ़िगरेशन बनाए जा सकते हैं जिन्हें किसी खास कम से कम smallestWidth, मौजूदा चौड़ाई या मौजूदा ऊंचाई के लिए डिज़ाइन किया गया हो. इन्हें डेंसिटी-इंडिपेंडेंट पिक्सल में मेज़र किया जाता है.
नए क्वालीफ़ायर ये हैं:
swNNNdp
— इस प्रॉपर्टी की मदद से, सबसे छोटे width की वैल्यू तय की जाती है. इस वैल्यू के आधार पर, यह तय किया जाता है कि संसाधन का इस्तेमाल किस सबसे छोटे width पर किया जाना चाहिए. इस वैल्यू को "dp" इकाइयों में मेज़र किया जाता है. जैसा कि ऊपर बताया गया है, स्क्रीन की सबसे छोटी चौड़ाई स्थिर रहती है, भले ही स्क्रीन की दिशा कुछ भी हो. उदाहरण:sw320dp
,sw720dp
,sw720dp
.wNNNdp
औरhNNNdp
— इससे उस कम से कम चौड़ाई या ऊंचाई की जानकारी मिलती है जिस पर संसाधन का इस्तेमाल किया जाना चाहिए. इसे "dp" इकाइयों में मेज़र किया जाता है. जैसे जैसा कि ऊपर बताया गया है, स्क्रीन की चौड़ाई और ऊंचाई, स्क्रीन पर दिखाई दे सकता है और जब भी ओरिएंटेशन बदलता है. उदाहरण:w320dp
,w720dp
,h1024dp
.
ज़रूरत पड़ने पर, ओवरलैप होने वाले कई संसाधन कॉन्फ़िगरेशन भी बनाए जा सकते हैं. उदाहरण के लिए, 480 से ज़्यादा चौड़ाई वाली किसी भी स्क्रीन पर इस्तेमाल करने के लिए, कुछ संसाधनों को टैग किया जा सकता है dp, अन्य 600 dp से ज़्यादा चौड़ाई के लिए और अन्य 720 dp से ज़्यादा चौड़ाई के लिए. जब किसी स्क्रीन के लिए एक से ज़्यादा संसाधन कॉन्फ़िगरेशन ज़रूरी शर्तें पूरी करते हैं, तो सिस्टम सबसे ज़्यादा मैच करने वाला कॉन्फ़िगरेशन चुनता है. किसी स्क्रीन पर कौनसे संसाधन लोड किए जाएं, इस पर सटीक कंट्रोल के लिए, संसाधनों को एक क्वालीफ़ायर से टैग किया जा सकता है या कई नए या मौजूदा क्वालीफ़ायर को जोड़ा जा सकता है.
पहले बताए गए सामान्य डाइमेंशन के आधार पर, यहां कुछ उदाहरण दिए गए हैं. इनसे पता चलता है कि नए क्वालिफ़ायर का इस्तेमाल कैसे किया जा सकता है:
res/layout/main_activity.xml # For phones res/layout-sw600dp/main_activity.xml # For 7” tablets res/layout-sw720dp/main_activity.xml # For 10” tablets res/layout-w600dp/main_activity.xml # Multi-pane when enough width res/layout-sw600dp-w720dp/main_activity.xml # For large width
प्लैटफ़ॉर्म के पुराने वर्शन, नए क्वालिफ़ायर को अनदेखा कर देंगे. इससे आपको उन्हें ज़रूरत के हिसाब से मिलाएं, ताकि यह पक्का किया जा सके कि आपका ऐप्लिकेशन किसी भी डिवाइस पर शानदार दिखे. यहां यहां कुछ उदाहरण दिए गए हैं:
res/layout/main_activity.xml # For phones res/layout-xlarge/main_activity.xml # For pre-3.2 tablets res/layout-sw600dp/main_activity.xml # For 3.2 and up tablets
नए क्वालिफ़ायर का इस्तेमाल करने के तरीके के बारे में पूरी जानकारी के लिए, नए क्वालिफ़ायर का इस्तेमाल करना साइज़ क्वालिफ़ायर.
स्क्रीन के साइज़ के साथ काम करने के लिए नए मेनिफ़ेस्ट एट्रिब्यूट
यह फ़्रेमवर्क, <supports-screens>
मेनिफ़ेस्ट एट्रिब्यूट का एक नया सेट देता है.
अलग-अलग स्क्रीन साइज़ के लिए अपने ऐप्लिकेशन की सुविधा को मैनेज किया जाता है.
खास तौर पर, उन सबसे बड़ी और सबसे छोटी स्क्रीन के बारे में बताया जा सकता है जिन पर आपका ऐप्लिकेशन काम करता है. साथ ही, उस सबसे बड़ी स्क्रीन के बारे में भी बताया जा सकता है जिस पर ऐप्लिकेशन, सिस्टम के नए स्क्रीन के साथ काम करने वाले मोड के बिना काम करता है. ऊपर बताए गए रिसॉर्स क्वालीफ़ायर की तरह, नए
मेनिफ़ेस्ट एट्रिब्यूट उन स्क्रीन की रेंज तय करते हैं जो ऐप्लिकेशन पर काम करता है,
जैसा कि सबसे छोटी चौड़ाई के हिसाब से तय होता है.
स्क्रीन पर काम करने की सुविधा के लिए, नई मेनिफ़ेस्ट एट्रिब्यूट ये हैं:
android:compatibleWidthLimitDp="numDp"
— इस एट्रिब्यूट की मदद से, सबसे छोटे स्क्रीन साइज़ की जानकारी दी जा सकती है. इस साइज़ पर ऐप्लिकेशन, काम करने के लिए कम्पैटिबिलिटी मोड की ज़रूरत नहीं होती. अगर मौजूदा स्क्रीन, तय की गई वैल्यू से बड़ी है, तो सिस्टम ऐप्लिकेशन को सामान्य मोड में दिखाता है. हालांकि, उपयोगकर्ता चाहे, तो सिस्टम बार में मौजूद सेटिंग की मदद से, ऐप्लिकेशन को काम करने के मोड पर स्विच कर सकता है.android:largestWidthLimitDp="numDp"
— इस एट्रिब्यूट की मदद से, सबसे छोटे width की वह वैल्यू तय की जा सकती है जिस पर ऐप्लिकेशन को चलाने के लिए डिज़ाइन किया गया है. अगर मौजूदा स्क्रीन, तय की गई वैल्यू से बड़ी है, तो सिस्टम, ऐप्लिकेशन को ज़बरदस्ती स्क्रीन के साथ काम करने की सुविधा वाले मोड में ले जाता है, ताकि यह पक्का हो सके कि डिवाइस सही तरीके से काम करे मौजूदा स्क्रीन पर दिखाई दे सकता है.android:requiresSmallestWidthDp="numDp"
— इस एट्रिब्यूट की मदद से, सबसे कम smallestWidth तय की जा सकती है जिस पर ऐप्लिकेशन चल सकता है. अगर मौजूदा स्क्रीन, तय की गई वैल्यू से छोटी है, तो सिस्टम यह मान लेता है कि ऐप्लिकेशन, डिवाइस के साथ काम नहीं करता. हालांकि, इससे ऐप्लिकेशन को इंस्टॉल और चलाने से नहीं रोका जाता.
ध्यान दें: फ़िलहाल, Google Play, फ़िल्टर नहीं करता
इनमें से किसी भी एट्रिब्यूट के हिसाब से तय किए गए ऐप्लिकेशन के साथ काम करता है. फ़िल्टर करने की सुविधा, प्लैटफ़ॉर्म के अगले वर्शन में जोड़ी जाएगी. जिन ऐप्लिकेशन को स्क्रीन साइज़ के हिसाब से फ़िल्टर करने की ज़रूरत होती है वे मौजूदा <supports-screens>
एट्रिब्यूट का इस्तेमाल कर सकते हैं.
नए एट्रिब्यूट इस्तेमाल करने के तरीके के बारे में पूरी जानकारी के लिए, एलान करना स्क्रीन साइज़ की सुविधा.
स्क्रीन कंपैटबिलिटी मोड
Android 3.2, ऐप्लिकेशन के लिए नया स्क्रीन कम्पैटबिलटी मोड उपलब्ध कराता है इसमें यह एलान किया जा रहा है कि वे बड़ी स्क्रीन पर काम नहीं करेंगे क्या वे चल रहे हैं. यह नया "ज़ूम" मोड, पिक्सल-स्केल वाला है — यह ऐप्लिकेशन को स्क्रीन के छोटे हिस्से में रेंडर करता है और फिर मौजूदा स्क्रीन को भरने के लिए पिक्सल को स्केल करता है.
डिफ़ॉल्ट रूप से, सिस्टम उन ऐप्लिकेशन के लिए, स्क्रीन के साथ काम करने वाले मोड को उपयोगकर्ता के विकल्प के तौर पर उपलब्ध कराता है जिनके लिए इसकी ज़रूरत होती है. उपयोगकर्ता किसी उपलब्ध कंट्रोल का इस्तेमाल करके, ज़ूम मोड को चालू या बंद कर सकते हैं दबाएं.
ऐसा हो सकता है कि नया स्क्रीन साथ काम करने वाला मोड, सभी के लिए सही न हो ऐप्लिकेशन है, तो यह प्लैटफ़ॉर्म ऐप्लिकेशन को मेनिफ़ेस्ट का इस्तेमाल करके उसे बंद करने की अनुमति देता है एट्रिब्यूट की वैल्यू सबमिट करें. ऐप्लिकेशन के बंद होने पर, सिस्टम "ज़ूम" करने की सुविधा नहीं देता साथ काम करता है मोड को चालू करने का विकल्प भी है.
ध्यान दें: यह जानना ज़रूरी है कि अपने ऐप्लिकेशन में काम करने वाले मोड को कंट्रोल करने के लिए, कृपया Android पर बड़ी स्क्रीन पर काम करने वाले ऐप्लिकेशन के लिए नया मोड लेख पढ़ें डेवलपर ब्लॉग पर क्लिक करें.
720p वाले टेलीविज़न और इसके जैसे डिवाइसों के लिए नई स्क्रीन डेंसिटी
720p टेलीविज़न या इसके जैसे किसी दूसरे टीवी पर चलने वाले ऐप्लिकेशन की ज़रूरतों को पूरा करने के लिए
मध्यम सघनता वाली स्क्रीन, Android 3.2 में नई सामान्य सघनता,
tvdpi
, अनुमानित डीपीआई 213 के साथ. ऐप्लिकेशन, densityDpi
में नई डेंसिटी के लिए क्वेरी कर सकते हैं. साथ ही, टेलिविज़न और मिलते-जुलते डिवाइसों के लिए संसाधनों को टैग करने के लिए, नए tvdpi
क्वालिफ़ायर का इस्तेमाल कर सकते हैं. उदाहरण के लिए:
res/drawable-tvdpi/my_icon.png # Bitmap for tv density
सामान्य तौर पर, ऐप्लिकेशन को इस सघनता पर काम करने की ज़रूरत नहीं होनी चाहिए. जिन मामलों में 720 पिक्सल की स्क्रीन के लिए आउटपुट की ज़रूरत होती है उनमें प्लैटफ़ॉर्म, यूज़र इंटरफ़ेस (यूआई) एलिमेंट को अपने-आप स्केल कर सकता है.
यूज़र इंटरफ़ेस (यूआई) फ़्रेमवर्क
- फ़्रैगमेंट
Fragment.SavedState
के नए क्लास में राज्य बना हुआ है फ़्रैगमेंट इंस्टेंस से मिली जानकारी के ज़रिएsaveFragmentInstanceState()
.- नया तरीका
saveFragmentInstanceState()
दिए गए फ़्रैगमेंट के मौजूदा इंस्टेंस की स्थिति को सेव करता है. मौजूदा स्थिति से मैच करने वाले फ़्रैगमेंट का नया इंस्टेंस बनाते समय, इस स्थिति का इस्तेमाल किया जा सकता है. - नया तरीका
setInitialSavedState()
पहली बार बनाने पर, फ़्रैगमेंट के लिए सेव की गई शुरुआती स्थिति सेट करता है. - नया
onViewCreated()
कॉलबैक तरीका, उस फ़्रैगमेंट को सूचना देता है जोonCreateView()
वापस आ गया है, लेकिन व्यू में सेव की गई किसी भी स्थिति को वापस लाने से पहले. isDetached()
तरीके से तय होता है कि फ़्रैगमेंट को यूज़र इंटरफ़ेस (यूआई) से साफ़ तौर पर अलग कर दिया गया है.- नए
attach()
औरdetach()
तरीके से, ऐप्लिकेशन को यूज़र इंटरफ़ेस (यूआई) में फ़्रैगमेंट को फिर से अटैच या डिटैच करने की सुविधा मिलती है. - ओवरलोड के नए तरीके,
setCustomAnimations()
से आपको खास ऐनिमेशन सेट करने का विकल्प मिलता है एंट्री/बाहर निकलने की कार्रवाइयों के लिए चलाए जाने वाले संसाधन और खास तौर पर जब बैक स्टैक को पॉप-अप किया जा रहा है. लागू किए गए मौजूदा तरीके को इसमें शामिल नहीं किया जाता का इस्तेमाल करें.
- ActivityInfo और ApplicationInfo में स्क्रीन साइज़ की जानकारी
ActivityInfo
,configChanges
में बिट मास्क के तौर परCONFIG_SCREEN_SIZE
औरCONFIG_SMALLEST_SCREEN_SIZE
को जोड़ता है. बिट से पता चलता है कि कोई ऐक्टिविटी और सबसे छोटे स्क्रीन साइज़ को हैंडल कर पाए.ApplicationInfo
ने जोड़ाlargestWidthLimitDp
,compatibleWidthLimitDp
, औरrequiresSmallestWidthDp
फ़ील्ड, संबंधित<supports-screens>
एट्रिब्यूट से लिया गया है को भी व्यवस्थित करने का तरीका जानें.
- WindowManager से डिसप्ले साइज़ पाने में मदद करने वाले टूल
getSize()
औरgetRectSize()
जैसे नए तरीकों की मदद से, ऐप्लिकेशन को डिसप्ले का रॉ साइज़ मिलता है.
- नया सार्वजनिक "होलोग्राफ़िक" स्टाइल
- अब इस प्लैटफ़ॉर्म पर, टेक्स्ट, ऐक्शनबार विजेट, टैब वगैरह के लिए कई तरह के सार्वजनिक "होलोग्राफ़िक" स्टाइल उपलब्ध हैं. पूरी सूची के लिए,
R.style
देखें.
- अब इस प्लैटफ़ॉर्म पर, टेक्स्ट, ऐक्शनबार विजेट, टैब वगैरह के लिए कई तरह के सार्वजनिक "होलोग्राफ़िक" स्टाइल उपलब्ध हैं. पूरी सूची के लिए,
LocalActivityManager
,ActivityGroup
, औरLocalActivityManager
का इस्तेमाल अब नहीं किया जा सकता- नए ऐप्लिकेशन को इन क्लास के बजाय फ़्रैगमेंट का इस्तेमाल करना चाहिए. यहां की यात्रा पर हूं ले सकते हैं, तो आप v4 सहायता का उपयोग कर सकते हैं. लाइब्रेरी (कंपैटबिलिटी लाइब्रेरी), Android SDK में उपलब्ध है. v4 सहायता लाइब्रेरी, फ़्रैगमेंट एपीआई का ऐसा वर्शन उपलब्ध कराती है जो नीचे दी गई फ़ाइलों के साथ काम करता है Android 1.6 (एपीआई लेवल 4).
- Android 3.0 (एपीआई लेवल 11) या उसके बाद के वर्शन के लिए डेवलप किए जा रहे ऐप्लिकेशन के लिए, टैब को आम तौर पर यूज़र इंटरफ़ेस (यूआई) में दिखाया जाता है. इसके लिए, नए
ActionBar.newTab()
और उससे जुड़े एपीआई का इस्तेमाल किया जाता है, ताकि टैब को ऐक्शन बार के एरिया में रखा जा सके.
मीडिया फ़्रेमवर्क
- प्लैटफ़ॉर्म के मीडिया प्रोवाइडर (
MediaStore
) का इस्तेमाल करने वाले ऐप्लिकेशन, अब मीडिया डेटा को सीधे तौर पर हटाए जा सकने वाले एसडी कार्ड से पढ़ सकते हैं. हालांकि, ऐसा सिर्फ़ उन डिवाइसों पर किया जा सकता है जिनमें यह सुविधा काम करती है. ऐप्लिकेशन ये काम भी कर सकते हैं MTP API का उपयोग करके, सीधे SD कार्ड फ़ाइलों के साथ सहभागिता करें.
ग्राफ़िक्स
- Point और PointF में पार्सल की जा सकने वाली सुविधाएं
Point
औरPointF
क्लास में अबParcelable
इंटरफ़ेस और यूटिलिटी के तरीकेdescribeContents()
,readFromParcel()
, औरwriteToParcel()
शामिल हैं.
आईएमई फ़्रेमवर्क
- कार्रवाई बदलने वाली कुंजियों की मौजूदा स्थिति पाने के लिए,
नया
getModifiers()
तरीका.
यूएसबी फ़्रेमवर्क
- डिवाइस के लिए रॉ यूएसबी डिस्क्रिप्टर हासिल करने का नया
getRawDescriptors()
तरीका. इस तरीके का इस्तेमाल करके, ऐसे डिस्क्रिप्टर ऐक्सेस किए जा सकते हैं जो सीधे तौर पर, बेहतर लेवल के एपीआई के ज़रिए काम नहीं करते.
नेटवर्क
- नेटवर्क टाइप के लिए कॉन्स्टेंट
ConnectivityManager
, कॉन्सटेंटTYPE_ETHERNET
औरTYPE_BLUETOOTH
जोड़ता है.
टेलीफ़ोनी
- नया
NETWORK_TYPE_HSPAP
नेटवर्क टाइप कॉन्स्टेंट.
मुख्य सुविधाएं
- पार्स किए जा सकने वाले टूल
- नया इंटरफ़ेस
Parcelable.ClassLoaderCreator
अनुमति देता है उस ClassLoader को पाने वाला ऐप्लिकेशन जिसमें ऑब्जेक्ट बनाया जा रहा हो. ParcelFileDescriptor
ऑब्जेक्ट को मैनेज करने के लिए, नएadoptFd
,dup()
, औरfromFd()
.
- नया इंटरफ़ेस
- Binder और IBinder
Binder
औरIBinder
में मौजूदdumpAsync()
का नया तरीका, ऐप्लिकेशन को किसी तय फ़ाइल में डेटा डालने की अनुमति देता है. इससे यह पक्का होता है कि टारगेट, एसिंक्रोनस तरीके से लागू हो.- नया
IBinder
प्रोटोकॉल लेन-देन कोडTWEET_TRANSACTION
, ऐप्लिकेशन को ट्वीट भेजने देता है टारगेट ऑब्जेक्ट में जोड़े जाते हैं.
नई सुविधा के लिए कॉन्स्टेंट
इस प्लैटफ़ॉर्म पर हार्डवेयर की नई सुविधाएं जोड़ी गई हैं, जिनका एलान किया जा सकता है
साथ ही, बाहरी इकाइयों को जानकारी देने के लिए, जैसे कि Google
हार्डवेयर और सॉफ़्टवेयर की ज़रूरी क्षमताएँ. इनके साथ-साथ, सुविधा से जुड़ी अन्य कॉन्स्टेंट की जानकारी, <uses-feature>
मेनिफ़ेस्ट एलिमेंट में दी जाती है.
Google Play, ऐप्लिकेशन को उनके <uses-feature>
एट्रिब्यूट के हिसाब से फ़िल्टर करता है. इससे यह पक्का किया जाता है कि ऐप्लिकेशन सिर्फ़ उन डिवाइसों पर उपलब्ध हों जिन पर ज़रूरी शर्तें पूरी होती हैं.
- लैंडस्केप या पोर्ट्रेट मोड की ज़रूरी शर्तों के लिए फ़ीचर कॉन्स्टेंट
Android 3.2 में नई सुविधाएं जोड़ी गई हैं. इनकी मदद से, ऐप्लिकेशन यह तय कर सकते हैं कि उन्हें लैंडस्केप ओरिएंटेशन, पोर्ट्रेट ओरिएंटेशन या दोनों में से किस ओरिएंटेशन में डिसप्ले करना है. इन कॉन्सटेंट को तय करने का मतलब है कि ऐप्लिकेशन को ऐसे डिवाइस पर इंस्टॉल नहीं किया जाना चाहिए जो इससे जुड़े ओरिएंटेशन की सुविधा न देता हो. इसके उलट, अगर एक या दोनों स्थिरांक का एलान नहीं किया गया है, तो इससे पता चलता है कि ऐप्लिकेशन में, बिना एलान वाले ओरिएंटेशन के लिए कोई प्राथमिकता नहीं दी गई है. साथ ही, इसे किसी ऐसे डिवाइस पर इंस्टॉल किया जा सकता है जो उन्हें ऑफ़र नहीं करता.
android.hardware.screen.landscape
— ऐप्लिकेशन को लैंडस्केप ओरिएंटेशन में दिखाना ज़रूरी है.android.hardware.screen.portrait
— ऐप्लिकेशन को वर्टिकल ओरिएंटेशन में दिखाना ज़रूरी है.
लैंडस्केप और पोर्ट्रेट ओरिएंटेशन, दोनों में ठीक से काम करने वाले ऐप्लिकेशन के लिए, आम तौर पर ओरिएंटेशन से जुड़ी ज़रूरी शर्तों के बारे में बताना ज़रूरी नहीं होता. इसके बजाय, मुख्य रूप से किसी एक ओरिएंटेशन के लिए डिज़ाइन किया गया ऐप्लिकेशन, जैसे कि टेलीविज़न के लिए डिज़ाइन किया गया ऐप्लिकेशन, किसी एक कॉन्स्टेंट के बारे में बता सकता है, ताकि यह पक्का किया जा सके कि वह उन डिवाइसों पर उपलब्ध नहीं है जो ओरिएंटेशन की जानकारी नहीं देते.
अगर मेनिफ़ेस्ट में किसी गतिविधि के लिए,
android:screenOrientation
एट्रिब्यूट का इस्तेमाल करके, यह एलान किया गया है कि वह किसी खास ओरिएंटेशन में चलेगी, तो इससे यह भी पता चलता है कि ऐप्लिकेशन को उस ओरिएंटेशन की ज़रूरत है. - अन्य विशेषता स्थिरांक
android.hardware.faketouch.multitouch.distinct
— ऐप्लिकेशन में, दो या उससे ज़्यादा पॉइंट की अलग-अलग ट्रैकिंग के साथ, नकली मल्टीटच इनपुट की सुविधा होनी चाहिए.android.hardware.faketouch.multitouch.jazzhand
— ऐप्लिकेशन में, पांच या उससे ज़्यादा पॉइंट की अलग-अलग ट्रैकिंग के साथ, नकली मल्टीटच इनपुट की सुविधा होनी चाहिए.
एपीआई में अंतर की रिपोर्ट
Android 3.2 (एपीआई लेवल 13) में एपीआई से जुड़े सभी बदलावों के बारे में ज़्यादा जानने के लिए, एपीआई में अंतर की रिपोर्ट देखें.
एपीआई लेवल
Android 3.2 प्लेटफ़ॉर्म फ़्रेमवर्क एपीआई को मैन्युअल तौर पर इस्तेमाल किया जा सकता है. Android 3.2 API को एक पूर्णांक आइडेंटिफ़ायर असाइन किया जाता है — 13 — इसका मतलब है कि सेव किया जाता है. "एपीआई लेवल" कहा जाने वाला यह आइडेंटिफ़ायर, सिस्टम यह तय कर सके कि कोई ऐप्लिकेशन इसके साथ काम करता है या नहीं सिस्टम पर रीडायरेक्ट किया जा सकता है.
अपने ऐप्लिकेशन में Android 3.2 में लॉन्च किए गए एपीआई का इस्तेमाल करने के लिए, आपको ऐप्लिकेशन को Android 3.2 SDK टूल प्लैटफ़ॉर्म में दी गई Android लाइब्रेरी के हिसाब से कंपाइल करना होगा. अपनी ज़रूरतों के हिसाब से, आपको ऐप्लिकेशन के मेनिफ़ेस्ट में <uses-sdk>
एलिमेंट में android:minSdkVersion="13"
एट्रिब्यूट भी जोड़ना पड़ सकता है.
ज़्यादा जानकारी के लिए, एपीआई लेवल क्या है? लेख पढ़ें.