Android 4.3
Jelly Bean का बेहतर वर्शन, Android 4.3 में आपका स्वागत है!
Android 4.3 में, परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के साथ-साथ, उपयोगकर्ताओं और डेवलपर के लिए बेहतरीन नई सुविधाएं शामिल हैं. इस दस्तावेज़ में, डेवलपर के लिए उपलब्ध नई सुविधाओं के बारे में जानकारी दी गई है.
नए डेवलपर एपीआई के बारे में ज़्यादा जानने के लिए, Android 4.3 के एपीआई का दस्तावेज़ देखें.
www.android.com पर जाकर, Jelly Bean में उपयोगकर्ताओं के लिए उपलब्ध नई सुविधाओं के बारे में ज़्यादा जानें.
तेज़, आसान, और ज़्यादा रिस्पॉन्सिव
Android 4.3, Jelly Bean में पहले से मौजूद परफ़ॉर्मेंस से जुड़े सुधारों पर आधारित है — vsync टाइमिंग, ट्रिपल बफ़रिंग, टच में लगने वाले समय में कमी, सीपीयू इनपुट बूस्ट, और हार्डवेयर की मदद से 2D रेंडरिंग — और इसमें नए ऑप्टिमाइज़ेशन जोड़े गए हैं, ताकि Android और भी तेज़ हो सके.
ग्राफ़िक्स की परफ़ॉर्मेंस को बेहतर बनाने के लिए, हार्डवेयर से तेज़ी से काम करने वाला 2D रेंडरर अब ड्रॉइंग निर्देशों की स्ट्रीम को ऑप्टिमाइज़ करता है. साथ ही, ड्रॉ ऑपरेशन को फिर से व्यवस्थित करके और मर्ज करके, इसे ज़्यादा असरदार जीपीयू फ़ॉर्मैट में बदलता है. मल्टीथ्रेड प्रोसेसिंग के लिए, रेंडरर अब कुछ टास्क करने के लिए, एक से ज़्यादा सीपीयू कोर पर मल्टीथ्रेडिंग का इस्तेमाल भी कर सकता है.
Android 4.3 में, आकार और टेक्स्ट को रेंडर करने की सुविधा को भी बेहतर बनाया गया है. सर्कल और राउंडेड रेक्टैंगल जैसी आकृतियां अब ज़्यादा बेहतर तरीके से और बेहतर क्वालिटी में रेंडर की जाती हैं. टेक्स्ट के लिए ऑप्टिमाइज़ेशन में, एक से ज़्यादा फ़ॉन्ट या जटिल ग्लिफ़ सेट (CJK) का इस्तेमाल करने पर बेहतर परफ़ॉर्मेंस, टेक्स्ट को स्केल करने पर बेहतर रेंडरिंग क्वालिटी, और ड्रॉप शैडो को तेज़ी से रेंडर करने की सुविधा शामिल है.
विंडो बफ़र के बेहतर तरीके से बंटवारे की वजह से, आपके ऐप्लिकेशन के लिए इमेज बफ़र तेज़ी से बंटता है. इससे विंडो बनाने पर, रेंडरिंग शुरू होने में लगने वाला समय कम हो जाता है.
बेहतर परफ़ॉर्मेंस वाले ग्राफ़िक के लिए, Android 4.3 में OpenGL ES 3.0 की सुविधा जोड़ी गई है. साथ ही, इसे फ़्रेमवर्क और नेटिव एपीआई, दोनों के ज़रिए ऐप्लिकेशन के लिए ऐक्सेस किया जा सकता है. जिन डिवाइसों पर यह सुविधा काम करती है उन पर, हार्डवेयर की मदद से तेज़ी से काम करने वाला 2D रेंडरिंग इंजन, OpenGL ES 3.0 का फ़ायदा लेता है. इससे टेक्स्चर मैनेजमेंट को ऑप्टिमाइज़ किया जाता है और ग्रेडिएंट रेंडरिंग की फ़िडेलिटी को बेहतर बनाया जाता है.
बेहतर परफ़ॉर्मेंस वाले ग्राफ़िक के लिए OpenGL ES 3.0
Android 4.3 में, Khronos OpenGL ES 3.0 के लिए प्लैटफ़ॉर्म की सुविधा जोड़ी गई है. इससे, काम करने वाले डिवाइसों पर गेम और अन्य ऐप्लिकेशन में बेहतरीन परफ़ॉर्मेंस वाले 2D और 3D ग्राफ़िक की सुविधाएं मिलती हैं. Android नेटिव डेवलपमेंट किट (NDK) की मदद से, फ़्रेमवर्क एपीआई या नेटिव एपीआई बाइंडिंग का इस्तेमाल करके, OpenGL ES 3.0 और उससे जुड़े EGL एक्सटेंशन का फ़ायदा लिया जा सकता है.
OpenGL ES 3.0 में दी गई नई सुविधाओं में, बेहतर विज़ुअल इफ़ेक्ट को तेज़ करने, स्टैंडर्ड सुविधा के तौर पर बेहतर क्वालिटी वाले ETC2/EAC टेक्स्चर कंप्रेसन, इंटिजर और 32-बिट फ़्लोटिंग पॉइंट के साथ GLSL ES शेडिंग लैंग्वेज का नया वर्शन, बेहतर टेक्स्चर रेंडरिंग, और स्टैंडर्ड टेक्स्चर साइज़ और रेंडर-बफ़र फ़ॉर्मैट शामिल हैं.
OpenGL ES 3.0 एपीआई का इस्तेमाल करके, बहुत ही जटिल और बेहतर ग्राफ़िक बनाए जा सकते हैं. ये ग्राफ़िक, काम करने वाले कई Android डिवाइसों पर चलते हैं. साथ ही, इन डिवाइसों पर एक ही स्टैंडर्ड टेक्चर-कंप्रेसन फ़ॉर्मैट का इस्तेमाल किया जा सकता है.
OpenGL ES 3.0 एक वैकल्पिक सुविधा है, जो डिवाइस में मौजूद ग्राफ़िक्स हार्डवेयर पर निर्भर करती है. Nexus 7 (2013), Nexus 4, और Nexus 10 डिवाइसों पर यह सुविधा पहले से ही उपलब्ध है.
बेहतर ब्लूटूथ कनेक्टिविटी
ब्लूटूथ स्मार्ट डिवाइसों और सेंसर से कनेक्ट करने की सुविधा
अब ऐसे ऐप्लिकेशन डिज़ाइन और बनाए जा सकते हैं जो ब्लूटूथ स्मार्ट टेक्नोलॉजी का इस्तेमाल करने वाले, कम पावर वाले छोटे डिवाइसों और सेंसर के साथ इंटरैक्ट करते हैं.
Android 4.3 में, Bluetooth Smart Ready के लिए प्लैटफ़ॉर्म की सुविधा पहले से मौजूद है. साथ ही, इसमें एपीआई का एक स्टैंडर्ड सेट भी दिया गया है. इसका इस्तेमाल करके, ऐप्लिकेशन आस-पास मौजूद डिवाइसों को ढूंढ सकते हैं, GATT सेवाओं के लिए क्वेरी कर सकते हैं, और विशेषताओं को पढ़/लिख सकते हैं.
नए एपीआई की मदद से, आपके ऐप्लिकेशन दिलचस्पी के डिवाइसों और सेवाओं को बेहतर तरीके से स्कैन कर सकते हैं. हर डिवाइस के लिए, यूयूआईडी की मदद से यह देखा जा सकता है कि उस पर GATT की कौनसी सेवाएं काम करती हैं. साथ ही, डिवाइस आईडी और सिग्नल की क्षमता के हिसाब से कनेक्शन मैनेज किए जा सकते हैं. डिवाइस पर होस्ट किए गए GATT सर्वर से कनेक्ट करके, विशेषताओं को पढ़ा या लिखा जा सकता है. इसके अलावा, जब भी विशेषताओं में बदलाव होता है, तब सूचनाएं पाने के लिए किसी लिसनर को रजिस्टर किया जा सकता है.
किसी भी GATT प्रोफ़ाइल के लिए सहायता लागू की जा सकती है. स्टैंडर्ड विशेषताओं को पढ़ा या लिखा जा सकता है. इसके अलावा, ज़रूरत के हिसाब से कस्टम विशेषताओं के लिए सहायता जोड़ी जा सकती है. आपका ऐप्लिकेशन, क्लाइंट या सर्वर, दोनों के तौर पर काम कर सकता है. साथ ही, दोनों मोड में डेटा भेज और पा सकता है. ये एपीआई सामान्य होते हैं. इसलिए, इनकी मदद से अलग-अलग डिवाइसों के साथ इंटरैक्ट किया जा सकता है. जैसे, प्रॉक्सिमिटी टैग, स्मार्टवॉच, फ़िटनेस मीटर, गेम कंट्रोलर, रिमोट कंट्रोल, स्वास्थ्य से जुड़े डिवाइस वगैरह.
ब्लूटूथ स्मार्ट रेडी की सुविधा, Nexus 7 (2013) और Nexus 4 डिवाइसों पर पहले से ही उपलब्ध है. आने वाले महीनों में, Android के साथ काम करने वाले कई डिवाइसों पर यह सुविधा उपलब्ध होगी.
AVRCP 1.3 प्रोफ़ाइल
Android 4.3 में, ब्लूटूथ एवीआरसीपी 1.3 के लिए पहले से मौजूद सहायता जोड़ी गई है, ताकि आपके ऐप्लिकेशन, रिमोट स्ट्रीमिंग मीडिया डिवाइसों के साथ बेहतर तरीके से इंटरैक्ट कर सकें. मीडिया प्लेयर जैसे ऐप्लिकेशन, Android 4.0 में पेश किए गए रिमोट कंट्रोल क्लाइंट एपीआई की मदद से, एवीआरसीपी 1.3 का फ़ायदा ले सकते हैं. ब्लूटूथ से कनेक्ट किए गए रिमोट डिवाइसों पर प्लेबैक कंट्रोल दिखाने के अलावा, ऐप्लिकेशन अब मेटाडेटा भी ट्रांसमिट कर सकते हैं. जैसे, ट्रैक का नाम, संगीतकार, और मीडिया का अन्य मेटाडेटा.
AVRCP 1.3 के लिए प्लैटफ़ॉर्म की सहायता, Bluedroid ब्लूटूथ स्टैक पर बनाई गई है. इसे Google और Broadcom ने Android 4.2 में लॉन्च किया था. यह सुविधा, Nexus डिवाइसों और Android के साथ काम करने वाले ऐसे अन्य डिवाइसों पर तुरंत उपलब्ध होती है जिनमें A2DP/AVRCP की सुविधा होती है.
प्रतिबंधित प्रोफ़ाइलों के लिए सहायता
Android 4.3 में, प्रतिबंधित प्रोफ़ाइलों की मदद से, टैबलेट पर एक से ज़्यादा उपयोगकर्ताओं के लिए सुविधा उपलब्ध कराई गई है. यह एक ही डिवाइस पर उपयोगकर्ताओं और उनकी सुविधाओं को मैनेज करने का एक नया तरीका है. पाबंदी वाली प्रोफ़ाइलों की मदद से, टैबलेट के मालिक हर उपयोगकर्ता के लिए, अलग-अलग एनवायरमेंट तुरंत सेट अप कर सकते हैं. साथ ही, उन एनवायरमेंट में उपलब्ध ऐप्लिकेशन के लिए, ज़्यादा सटीक पाबंदियां मैनेज की जा सकती हैं. प्रतिबंधित प्रोफ़ाइलें, दोस्तों और परिवार के सदस्यों, मेहमान उपयोगकर्ताओं, कीऑस्क, बिक्री की जगह पर मौजूद डिवाइसों वगैरह के लिए बेहतर हैं.
पाबंदी वाली हर प्रोफ़ाइल में, अलग और सुरक्षित जगह होती है. इसमें अपना स्टोरेज, होम स्क्रीन, विजेट, और सेटिंग होती हैं. उपयोगकर्ताओं के मामले में, डिवाइस पर इंस्टॉल किए गए ऐप्लिकेशन और सिस्टम खातों के आधार पर, डिवाइस के मालिक के एनवायरमेंट से प्रोफ़ाइलें बनाई जाती हैं. मालिक यह कंट्रोल करता है कि नई प्रोफ़ाइल में कौनसे इंस्टॉल किए गए ऐप्लिकेशन चालू किए जाएं. साथ ही, मालिक के खातों का ऐक्सेस डिफ़ॉल्ट रूप से बंद रहता है.
जिन ऐप्लिकेशन को साइन इन करने, प्राथमिकताओं या अन्य कामों के लिए, मालिक के खातों को ऐक्सेस करना है वे मेनिफ़ेस्ट एट्रिब्यूट का एलान करके ऑप्ट-इन कर सकते हैं. साथ ही, मालिक प्रोफ़ाइल कॉन्फ़िगरेशन सेटिंग में जाकर, उन ऐप्लिकेशन की समीक्षा कर सकता है और उन्हें मैनेज कर सकता है.
डेवलपर के लिए, पाबंदी वाली प्रोफ़ाइलें एक नया तरीका उपलब्ध कराती हैं. इससे, उपयोगकर्ताओं को ज़्यादा फ़ायदे और कंट्रोल मिलता है. आपके पास ऐप्लिकेशन पर पाबंदियां लागू करने का विकल्प है. इन पाबंदियों में, कॉन्टेंट या सुविधाओं के ऐसे कंट्रोल शामिल होते हैं जो आपके ऐप्लिकेशन के साथ काम करते हैं. साथ ही, प्रोफ़ाइल कॉन्फ़िगरेशन सेटिंग में जाकर, टैबलेट के मालिकों को इन पाबंदियों का विज्ञापन दिखाया जा सकता है.
पहले से तय किए गए बूलियन, चुनें, और एक से ज़्यादा विकल्प चुनने वाले टाइप का इस्तेमाल करके, ऐप्लिकेशन पर पाबंदियां सीधे प्रोफ़ाइल कॉन्फ़िगरेशन सेटिंग में जोड़ी जा सकती हैं. अगर आपको ज़्यादा सुविधाएं चाहिए, तो प्रोफ़ाइल कॉन्फ़िगरेशन सेटिंग से अपना यूज़र इंटरफ़ेस (यूआई) भी लॉन्च किया जा सकता है. इससे, अपनी पसंद के मुताबिक किसी भी तरह की पाबंदी लगाई जा सकती है.
जब आपका ऐप्लिकेशन किसी प्रोफ़ाइल में चलता है, तो वह मालिक की कॉन्फ़िगर की गई पाबंदियों की जांच कर सकता है और उन्हें सही तरीके से लागू कर सकता है. उदाहरण के लिए, कोई मीडिया ऐप्लिकेशन, मालिक को प्रोफ़ाइल के लिए मैच्योरिटी लेवल सेट करने की अनुमति देने के लिए पाबंदी लगा सकता है. ऐप्लिकेशन, रन टाइम पर मैच्योरिटी सेटिंग की जांच कर सकता है. इसके बाद, मैच्योरिटी लेवल के हिसाब से कॉन्टेंट को मैनेज कर सकता है.
अगर आपके ऐप्लिकेशन को प्रतिबंधित प्रोफ़ाइलों में इस्तेमाल करने के लिए डिज़ाइन नहीं किया गया है, तो आपके पास पूरी तरह से ऑप्ट आउट करने का विकल्प है. इससे, आपका ऐप्लिकेशन किसी भी प्रतिबंधित प्रोफ़ाइल में चालू नहीं किया जा सकेगा.
जगह और सेंसर की ऑप्टिमाइज़ की गई सुविधाएं
Google Play services, जगह की जानकारी से जुड़े बेहतर एपीआई उपलब्ध कराता है. इनका इस्तेमाल, अपने ऐप्लिकेशन में किया जा सकता है. Android 4.3, काम करने वाले डिवाइसों पर इन एपीआई को ऑप्टिमाइज़ करता है. इसके लिए, नए हार्डवेयर और सॉफ़्टवेयर की सुविधाओं का इस्तेमाल किया जाता है, ताकि बैटरी का इस्तेमाल कम से कम हो.
हार्डवेयर की मदद से जगह की जानकारी के आधार पर पाबंदी, डिवाइस के सॉफ़्टवेयर के बजाय हार्डवेयर में जगह की जानकारी का हिसाब लगाकर, बैटरी की खपत को कम करने के लिए ऑप्टिमाइज़ करता है. हार्डवेयर जियोफ़ेंसिंग की सुविधा वाले डिवाइसों पर, Google Play services के जियोफ़ेंस एपीआई, इस ऑप्टिमाइज़ेशन का फ़ायदा उठा पाएंगे. इससे, डिवाइस के चलते-फिरते रहने पर बैटरी बचेगी.
सिर्फ़ वाई-फ़ाई स्कैन मोड, प्लैटफ़ॉर्म को ऑप्टिमाइज़ करने का एक नया तरीका है. इसकी मदद से, उपयोगकर्ता किसी वाई-फ़ाई नेटवर्क से कनेक्ट किए बिना, वाई-फ़ाई स्कैन की सुविधा चालू रख सकते हैं. इससे बैटरी बचती है और जगह की जानकारी ज़्यादा सटीक मिलती है. जगह की जानकारी से जुड़ी सेवाओं के लिए वाई-फ़ाई पर निर्भर ऐप्लिकेशन, अब उपयोगकर्ताओं से वाई-फ़ाई की बेहतर सेटिंग में जाकर, सिर्फ़ स्कैन मोड चालू करने के लिए कह सकते हैं. सिर्फ़ वाई-फ़ाई स्कैन करने वाला मोड, डिवाइस के हार्डवेयर पर निर्भर नहीं करता. यह Android 4.3 प्लैटफ़ॉर्म का हिस्सा है.
नए सेंसर टाइप की मदद से, ऐप्लिकेशन सेंसर रीडिंग को बेहतर तरीके से मैनेज कर सकते हैं. गेम के रोटेशन वेक्टर की मदद से, गेम डेवलपर डिवाइस के रोटेशन का पता लगा सकते हैं. इसके लिए, उन्हें मैग्नेटिक इंटरफ़ियरेंस की चिंता करने की ज़रूरत नहीं होती. कैलिब्रेट नहीं किए गए घिरौंडे और कैलिब्रेट नहीं किए गए मैग्नेटोमीटर सेंसर, ऐप्लिकेशन के लिए कच्ची मेज़रमेंट के साथ-साथ अनुमानित गड़बड़ियां भी रिपोर्ट करते हैं.
हार्डवेयर की नई सुविधाएं, Nexus 7 (2013) और Nexus 4 डिवाइसों पर पहले से ही उपलब्ध हैं. साथ ही, डिवाइस बनाने वाली कोई भी कंपनी या चिपसेट वेंडर, इन्हें अपने डिवाइसों में शामिल कर सकता है.
न्यू मीडिया की सुविधाएं
मॉड्यूलर डीआरएम फ़्रेमवर्क
मीडिया सेवाओं की अगली पीढ़ी की ज़रूरतों को पूरा करने के लिए, Android 4.3 में मॉड्यूलर डीआरएम फ़्रेमवर्क को शामिल किया गया है. इससे मीडिया ऐप्लिकेशन डेवलपर, अपने स्ट्रीमिंग प्रोटोकॉल में डीआरएम को आसानी से इंटिग्रेट कर सकते हैं. जैसे, MPEG DASH (डाइनैमिक अडैप्टिव स्ट्रीमिंग ओवर एचटीटीपी, ISO/IEC 23009-1).
मीडिया डीआरएम फ़्रेमवर्क, नए एपीआई और मौजूदा एपीआई में किए गए सुधारों के कॉम्बिनेशन की मदद से, लाइसेंस और प्रोवाइज़न मैनेज करने, लो-लेवल कोडेक ऐक्सेस करने, और एन्क्रिप्ट किए गए मीडिया डेटा को डिकोड करने के लिए, सेवाओं का इंटिग्रेट किया गया सेट उपलब्ध कराता है. MediaExtractor API के नए वर्शन की मदद से, DASH मीडिया के लिए PSSH मेटाडेटा पाया जा सकता है. मीडिया डीआरएम फ़्रेमवर्क का इस्तेमाल करने वाले ऐप्लिकेशन, लाइसेंस सर्वर के साथ नेटवर्क कम्यूनिकेशन मैनेज करते हैं. साथ ही, कॉन्टेंट लाइब्रेरी से एन्क्रिप्ट (सुरक्षित) किए गए डेटा को स्ट्रीम करते हैं.
VP8 एन्कोडर
Android 4.3 में, VP8 एन्कोडिंग के लिए पहले से मौजूद सहायता उपलब्ध है. इसे फ़्रेमवर्क और नेटिव एपीआई से ऐक्सेस किया जा सकता है. नेटिव एपीआई का इस्तेमाल करने वाले ऐप्लिकेशन के लिए, प्लैटफ़ॉर्म में OpenMAX 1.1.2 एक्सटेंशन हेडर शामिल होते हैं. इनकी मदद से, VP8 प्रोफ़ाइलों और लेवल का इस्तेमाल किया जा सकता है. VP8 कोड में बदलने की सुविधा में, टारगेट बिटरेट, रेट कंट्रोल, फ़्रेम रेट, टोकन का बंटवारा, गड़बड़ी ठीक करने की सुविधा, फिर से बनाने की सुविधा, और लूप फ़िल्टर की सेटिंग शामिल होती हैं. Platform API, कई फ़ॉर्मैट में VP8 एन्कोडर के साथ काम करता है. इससे, अपने कॉन्टेंट के लिए सबसे सही फ़ॉर्मैट का फ़ायदा लिया जा सकता है.
VP8 एन्कोडिंग, Android 4.3 पर काम करने वाले सभी डिवाइसों पर सॉफ़्टवेयर में उपलब्ध है. बेहतरीन परफ़ॉर्मेंस के लिए, यह प्लैटफ़ॉर्म, ज़रूरी शर्तें पूरी करने वाले डिवाइसों पर, हार्डवेयर की मदद से तेज़ी से VP8 कोड में बदलने की सुविधा भी देता है.
किसी डिवाइस से वीडियो एन्कोड करना
Android 4.3 से, किसी वीडियो एन्कोडर के इनपुट के तौर पर किसी प्लैटफ़ॉर्म का इस्तेमाल किया जा सकता है. उदाहरण के लिए, अब बफ़र के बीच कॉपी करने के बजाय, किसी OpenGL ES प्लैटफ़ॉर्म से स्ट्रीम को एन्कोडर पर भेजा जा सकता है.
मीडिया म्यूक्सर
ऐप्लिकेशन, नए मीडिया म्यूसर एपीआई का इस्तेमाल करके, बुनियादी ऑडियो और वीडियो स्ट्रीम को एक आउटपुट फ़ाइल में जोड़ सकते हैं. फ़िलहाल, ऐप्लिकेशन एक MPEG-4 ऑडियो स्ट्रीम और एक MPEG-4 वीडियो स्ट्रीम को एक MPEG-4 आउटपुट फ़ाइल में मल्टीप्लेक्स कर सकते हैं. ये नए एपीआई, Android 4.2 में लॉन्च किए गए मीडिया डिम्यूक्सिंग एपीआई के जैसे ही हैं.
रिमोट कंट्रोल क्लाइंट में, वीडियो चलाने की प्रोग्रेस और वीडियो को आगे-पीछे करना
Android 4.0 के बाद से, मीडिया प्लेयर और मिलते-जुलते ऐप्लिकेशन, रिमोट कंट्रोल क्लाइंट से प्लेबैक कंट्रोल की सुविधा दे रहे हैं. जैसे, डिवाइस की लॉकस्क्रीन, सूचनाएं, और ब्लूटूथ से कनेक्ट किए गए रिमोट डिवाइस. Android 4.3 से, ये ऐप्लिकेशन अब अपने रिमोट कंट्रोल क्लाइंट की मदद से, वीडियो चलाने की प्रगति और स्पीड भी दिखा सकते हैं. साथ ही, वीडियो को किसी खास प्लेबैक पोज़िशन पर ले जाने के निर्देश भी पा सकते हैं.
खूबसूरत ऐप्लिकेशन बनाने के नए तरीके
सूचनाओं का ऐक्सेस
सूचनाएं, Android की एक लोकप्रिय सुविधा है. इसकी मदद से, उपयोगकर्ताओं को पूरे सिस्टम की जानकारी और अपडेट एक ही जगह पर दिखते हैं. अब Android 4.3 में, ऐप्लिकेशन उपयोगकर्ता की अनुमति लेकर सूचनाओं की स्ट्रीम को देख सकते हैं और उन्हें अपनी पसंद के मुताबिक दिखा सकते हैं. साथ ही, उन्हें ब्लूटूथ से कनेक्ट किए गए आस-पास मौजूद डिवाइसों पर भेज सकते हैं.
नए एपीआई की मदद से सूचनाएं ऐक्सेस की जा सकती हैं. इनकी मदद से, सूचना सुनने वाले को रजिस्टर किया जा सकता है. साथ ही, उपयोगकर्ता की अनुमति लेकर, स्टेटस बार में दिखने वाली सूचनाएं भी ऐक्सेस की जा सकती हैं. सूचनाएं आपको पूरी तरह से डिलीवर की जाती हैं. इनमें, सूचना भेजने वाले ऐप्लिकेशन, पोस्ट करने के समय, कॉन्टेंट व्यू और स्टाइल, और प्राथमिकता की पूरी जानकारी शामिल होती है. सूचनाओं में, अपनी दिलचस्पी के फ़ील्ड का आकलन किया जा सकता है. साथ ही, अपने ऐप्लिकेशन से कॉन्टेक्स्ट को प्रोसेस किया जा सकता है या जोड़ा जा सकता है. इसके बाद, उन्हें अपनी पसंद के मुताबिक दिखाने के लिए रूट किया जा सकता है.
नया एपीआई, सूचना जोड़े जाने, अपडेट होने, और हटाए जाने पर आपको कॉलबैक देता है. सूचना हटाने की वजह यह हो सकती है कि उपयोगकर्ता ने उसे खारिज कर दिया हो या सूचना भेजने वाले ऐप्लिकेशन ने उसे वापस ले लिया हो. आपके पास सूचना या उसकी कार्रवाइयों से जुड़े किसी भी इंटेंट को लॉन्च करने का विकल्प होगा. साथ ही, आपके पास सिस्टम से सूचना को खारिज करने का विकल्प भी होगा. इससे आपके ऐप्लिकेशन को सूचनाओं के लिए पूरा यूज़र इंटरफ़ेस उपलब्ध कराने में मदद मिलेगी.
उपयोगकर्ताओं के पास यह कंट्रोल करने का विकल्प होता है कि कौनसे ऐप्लिकेशन को सूचनाएं मिलें. वे किसी भी समय सेटिंग में जाकर देख सकते हैं कि किन ऐप्लिकेशन के पास सूचना का ऐक्सेस है. साथ ही, ज़रूरत के हिसाब से ऐक्सेस को चालू या बंद कर सकते हैं. सूचना का ऐक्सेस डिफ़ॉल्ट रूप से बंद होता है — ऐप्लिकेशन, इंस्टॉल होने के बाद, उपयोगकर्ता को सीधे सेटिंग पर ले जाने के लिए, एक नए इंटेंट का इस्तेमाल कर सकते हैं, ताकि वे सुनने वाले की सुविधा चालू कर सकें.
ओवरले देखना
अब व्यू और व्यू ग्रुप के ऊपर ट्रांसफ़रेंट ओवरले बनाए जा सकते हैं. इससे, लेआउट की हैरारकी में बदलाव किए बिना, कुछ समय के लिए व्यू की हैरारकी या ऐनिमेशन के इफ़ेक्ट दिखाए जा सकते हैं. ओवरले तब खास तौर पर काम आते हैं, जब आपको ऐनिमेशन बनाने हों. जैसे, किसी व्यू को उसके कंटेनर से बाहर स्लाइड करना या व्यू के लेआउट पर असर डाले बिना, स्क्रीन पर आइटम को खींचकर छोड़ना.
ऑप्टिकल बाउंड लेआउट मोड
नए लेआउट मोड की मदद से, ViewGroups में व्यू की पोज़िशन को उनके क्लिप बॉउंड के बजाय, ऑप्टिकल बॉउंड के हिसाब से मैनेज किया जा सकता है. क्लिप के बॉउंड, विजेट की असली बाहरी सीमा को दिखाते हैं. वहीं, नए ऑप्टिकल बॉउंड से पता चलता है कि क्लिप के बॉउंड में विजेट कहां दिखता है. ऑप्टिकल बाउंड लेआउट मोड का इस्तेमाल करके, उन विजेट को सही तरीके से अलाइन किया जा सकता है जो शैडो और चमक जैसे बाहरी विज़ुअल इफ़ेक्ट का इस्तेमाल करते हैं.
कस्टम रोटेशन ऐनिमेशन टाइप
ऐप्लिकेशन अब डिवाइस के घूमने पर, विंडो पर इस्तेमाल होने वाले आखिरी और शुरुआती ऐनिमेशन टाइप तय कर सकते हैं. जंप-कट, क्रॉस-फ़ेड या स्टैंडर्ड विंडो रोटेशन चालू करने के लिए, विंडो प्रॉपर्टी सेट की जा सकती हैं. जब विंडो फ़ुलस्क्रीन मोड में हो और दूसरी विंडो से न ढकी हो, तब सिस्टम कस्टम ऐनिमेशन टाइप का इस्तेमाल करता है.
स्क्रीन ओरिएंटेशन मोड
ऐप्लिकेशन, गतिविधियों के लिए नए ओरिएंटेशन मोड सेट कर सकते हैं. इससे यह पक्का किया जा सकता है कि डिवाइस को फ़्लिप करने पर, वे सही ओरिएंटेशन में दिखें. इसके अलावा, ऐप्लिकेशन अपने मौजूदा ओरिएंटेशन में स्क्रीन को लॉक करने के लिए, नए मोड का इस्तेमाल कर सकते हैं. यह सुविधा, कैमरे का इस्तेमाल करने वाले उन ऐप्लिकेशन के लिए काम की है जो वीडियो रिकॉर्ड करते समय, रोटेशन की सुविधा बंद करना चाहते हैं.
तुरंत जवाब देने की सुविधा को मैनेज करने के लिए इंटेंट
Android 4.3 में एक नया सार्वजनिक इंटेंट जोड़ा गया है. इसकी मदद से, कोई भी ऐप्लिकेशन क्विक रिस्पॉन्स मैसेज मैनेज कर सकता है. ये ऐसे मैसेज होते हैं जिन्हें उपयोगकर्ता, आने वाले कॉल के जवाब में भेजता है. इसके लिए, उसे कॉल को रिसीव करने या डिवाइस को अनलॉक करने की ज़रूरत नहीं होती. आपका ऐप्लिकेशन, इंटेंट को सुन सकता है और कॉल करने वाले व्यक्ति को आपके मैसेजिंग सिस्टम पर मैसेज भेज सकता है. इंटेंट में, मैसेज पाने वाला व्यक्ति (कॉल करने वाला) और मैसेज, दोनों शामिल होते हैं.
अंतरराष्ट्रीय उपयोगकर्ताओं के लिए सहायता
दाएं से बाएं लिखने की सुविधा में किए गए सुधार
Android 4.3 में, दाईं से बाईं ओर लिखने की सुविधा की परफ़ॉर्मेंस को बेहतर बनाया गया है. साथ ही, फ़्रेमवर्क यूज़र इंटरफ़ेस (यूआई) विजेट में, दाईं से बाईं ओर लिखने की सुविधा को बेहतर तरीके से इस्तेमाल किया जा सकता है. इन विजेट में, ProgressBar/Spinner और ExpandableListView शामिल हैं. uiautomatorviewer
टूल की मदद से, डीबग करने से जुड़ी ज़्यादा जानकारी दिखती है. इसके अलावा, सिस्टम के ज़्यादा यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट अब आरटीएल के बारे में जानते हैं. जैसे, सूचनाएं, नेविगेशन बार, और ऐक्शन बार.
दाएं से बाएं लिखने की स्क्रिप्ट में, सिस्टम के सभी ऐप्लिकेशन का बेहतर अनुभव देने के लिए, अब ज़्यादा डिफ़ॉल्ट सिस्टम ऐप्लिकेशन, दाएं से बाएं लिखने की स्क्रिप्ट वाले लेआउट के साथ काम करते हैं. इनमें लॉन्चर, क्विक सेटिंग, फ़ोन, लोग, सेटअप विज़र्ड, घड़ी, डाउनलोड वगैरह शामिल हैं.
स्थानीय भाषा में अनुवाद करने के लिए उपयोगी सुविधाएं
Android 4.3 में, बेहतर आरटीएल स्ट्रिंग बनाने और स्थानीय भाषा के हिसाब से बनाए गए यूज़र इंटरफ़ेस (यूआई) की जांच करने के लिए, नई सुविधाएं और एपीआई भी शामिल हैं. BidiFormatter के नए क्लास में, यूनिकोड स्ट्रिंग को रैप करने के लिए एक आसान एपीआई उपलब्ध है. इससे आरटीएल-स्क्रिप्ट का डेटा, एलटीआर-लोकल भाषा के मैसेज में सही तरीके से दिखता है. इसके अलावा, एलटीआर-लोकल भाषा के मैसेज में आरटीएल-स्क्रिप्ट का डेटा सही तरीके से दिखता है. अपने ऐप्लिकेशन में इस सुविधा का ज़्यादा से ज़्यादा इस्तेमाल करने के लिए, BidiFormatter API अब Android SDK टूल में मौजूद सहायता पैकेज के ज़रिए, प्लैटफ़ॉर्म के पुराने वर्शन के लिए भी उपलब्ध है.
Android 4.3 में, getBestDateTimePattern() नाम का एक नया तरीका जोड़ा गया है. इससे, अलग-अलग भाषाओं के हिसाब से तारीख के फ़ॉर्मैट को मैनेज करने में मदद मिलती है. यह तरीका, आपके बताए गए स्थानीय भाषा के लिए, यूनिकोड यूटीएस तारीख का सबसे अच्छा स्थानीय फ़ॉर्मैट अपने-आप जनरेट करता है. यह आपके उपयोगकर्ताओं को स्थानीय भाषा में बेहतर अनुभव देने का एक आसान तरीका है.
Android 4.3 में, डेवलपर के लिए एक नया विकल्प स्यूडो-लोकल जोड़ा गया है. इससे, अन्य भाषाओं में अपने ऐप्लिकेशन को आसानी से टेस्ट किया जा सकता है. सूडो-लोकल, किसी लोकल या भाषा के ग्रुप से जुड़ी भाषा, स्क्रिप्ट, और डिसप्ले की विशेषताओं को सिम्युलेट करते हैं. फ़िलहाल, अंग्रेज़ी के उच्चारण के लिए, किसी नकली स्थानीय भाषा का इस्तेमाल करके जांच की जा सकती है. इससे यह देखा जा सकता है कि यूरोप की कई भाषाओं में इस्तेमाल होने वाली स्क्रिप्ट के उच्चारण और वर्णों के साथ, आपका यूज़र इंटरफ़ेस (यूआई) कैसे काम करता है.
सुलभता और यूज़र इंटरफ़ेस (यूआई) ऑटोमेशन
Android 4.3 से, सुलभता सेवाएं मुख्य इवेंट को मॉनिटर और फ़िल्टर कर सकती हैं. जैसे, कीबोर्ड शॉर्टकट मैनेज करना या जेस्चर पर आधारित इनपुट के साथ नेविगेशन पैरिटी उपलब्ध कराना. इस सेवा को इवेंट मिलते हैं और इन्हें सिस्टम या इंस्टॉल किए गए अन्य ऐप्लिकेशन को भेजने से पहले, ज़रूरत के हिसाब से प्रोसेस किया जा सकता है.
सुलभता सेवाएं, नई सुविधाओं के एट्रिब्यूट का एलान कर सकती हैं. इससे यह पता चलता है कि उनकी सेवाएं क्या-क्या कर सकती हैं और वे प्लैटफ़ॉर्म की किन सुविधाओं का इस्तेमाल करती हैं. उदाहरण के लिए, वे मुख्य इवेंट को फ़िल्टर करने, विंडो का कॉन्टेंट वापस लाने, टच करके एक्सप्लोर करने की सुविधा चालू करने या वेब की सुलभता सुविधाओं को चालू करने की क्षमता का एलान कर सकते हैं. कुछ मामलों में, सेवाओं को प्लैटफ़ॉर्म की मिलती-जुलती सुविधाओं को ऐक्सेस करने से पहले, क्षमता एट्रिब्यूट का एलान करना होगा. सिस्टम, सेवा की सुविधाओं के एट्रिब्यूट का इस्तेमाल करके, उपयोगकर्ताओं के लिए ऑप्ट-इन डायलॉग जनरेट करता है. इससे उपयोगकर्ता, लॉन्च से पहले सुविधाओं को देख सकते हैं और उन पर सहमति दे सकते हैं.
Android 4.3 में सुलभता फ़्रेमवर्क के आधार पर, नया यूआई ऑटोमेशन फ़्रेमवर्क बनाया गया है. इसकी मदद से, जांच करने वाले टूल, डिवाइस के यूज़र इंटरफ़ेस (यूआई) के साथ इंटरैक्ट कर सकते हैं. इसके लिए, वे उपयोगकर्ता की कार्रवाइयों को सिम्युलेट करते हैं और स्क्रीन पर मौजूद कॉन्टेंट की जांच करते हैं. यूज़र इंटरफ़ेस (यूआई) ऑटोमेशन फ़्रेमवर्क की मदद से, बुनियादी कार्रवाइयां की जा सकती हैं. जैसे, स्क्रीन का रोटेशन सेट करना, इनपुट इवेंट जनरेट करना, स्क्रीनशॉट लेना वगैरह. यह उपयोगकर्ता की असल स्थितियों में, टेस्टिंग को अपने-आप चलाने का एक बेहतरीन तरीका है. इसमें कई ऐप्लिकेशन में की जाने वाली कार्रवाइयां या क्रम शामिल हैं.
एंटरप्राइज़ और सुरक्षा
WPA2-एंटरप्राइज़ नेटवर्क के लिए वाई-फ़ाई कॉन्फ़िगरेशन
ऐप्लिकेशन अब WPA2 एंटरप्राइज़ ऐक्सेस पॉइंट से कनेक्ट करने के लिए, ज़रूरी वाई-फ़ाई क्रेडेंशियल कॉन्फ़िगर कर सकते हैं. डेवलपर, नए एपीआई का इस्तेमाल करके, एंटरप्राइज़ में इस्तेमाल किए जाने वाले पुष्टि करने के तरीकों के लिए, एक्सटेंसिबल ऑथेंटिकेशन प्रोटोकॉल (ईएपी) और एन्कैप्सल किए गए ईएपी (फ़ेज़ 2) क्रेडेंशियल को कॉन्फ़िगर कर सकते हैं. जिन ऐप्लिकेशन के पास वाई-फ़ाई को ऐक्सेस करने और उसमें बदलाव करने की अनुमति होती है वे पुष्टि करने के लिए कई तरह के ईएपी और दूसरे चरण के पुष्टि करने के तरीकों के लिए क्रेडेंशियल कॉन्फ़िगर कर सकते हैं.
SELinux की मदद से बेहतर बनाया गया Android सैंडबॉक्स
Android अब SELinux का इस्तेमाल करता है. यह Linux kernel में ज़रूरी ऐक्सेस कंट्रोल (एमएसी) सिस्टम है. इसका इस्तेमाल, यूआईडी पर आधारित ऐप्लिकेशन सैंडबॉक्स को बेहतर बनाने के लिए किया जाता है. इससे ऑपरेटिंग सिस्टम को सुरक्षा से जुड़ी संभावित कमजोरियों से बचाया जा सकता है.
KeyChain में किए गए सुधार
KeyChain API अब एक ऐसा तरीका उपलब्ध कराता है जिससे ऐप्लिकेशन यह पुष्टि कर सकते हैं कि सिस्टम-वाइड पासकोड, डिवाइस के लिए भरोसेमंद हार्डवेयर रूट से जुड़े हैं. इसकी मदद से, ऐसी निजी कुंजियां बनाई या सेव की जा सकती हैं जिन्हें डिवाइस से एक्सपोर्ट नहीं किया जा सकता. भले ही, रूट या कोर में कोई गड़बड़ी हो.
Android कीस्टोर की सेवा देने वाली कंपनी
Android 4.3 में, कुंजी स्टोर करने की सुविधा देने वाली कंपनी और एपीआई शामिल किए गए हैं. इनकी मदद से, ऐप्लिकेशन सिर्फ़ अपने लिए कुंजियां बना सकते हैं. एपीआई का इस्तेमाल करके, ऐप्लिकेशन ऐसी निजी कुंजियां बना सकते हैं या सेव कर सकते हैं जिन्हें अन्य ऐप्लिकेशन न तो देख सकते हैं और न ही उनका इस्तेमाल कर सकते हैं. साथ ही, उपयोगकर्ता के इंटरैक्शन के बिना, उन्हें पासकोड के स्टोर में जोड़ा जा सकता है.
पासकोड की सेवा देने वाली कंपनी, सुरक्षा से जुड़े वही फ़ायदे देती है जो KeyChain API, सिस्टम के सभी क्रेडेंशियल के लिए देता है. जैसे, किसी डिवाइस से क्रेडेंशियल को बांधना. कीस्टोर में मौजूद निजी कुंजियों को डिवाइस से एक्सपोर्ट नहीं किया जा सकता.
Android ऐप्लिकेशन से Setuid पर पाबंदी लगाना
zygote से जनरेट हुई प्रोसेस के लिए, /system
सेगमेंट को अब nosuid
पर माउंट किया गया है. इससे Android ऐप्लिकेशन, setuid
प्रोग्राम को एक्ज़ीक्यूट नहीं कर पाते. इससे रूट अटैक सरफ़ेस और सुरक्षा से जुड़ी संभावित जोखिम की संभावना कम हो जाती है.
परफ़ॉर्मेंस का विश्लेषण करने के नए तरीके
बेहतर Systrace लॉगिंग
Android 4.3 में, Systrace टूल का बेहतर वर्शन काम करता है. इसका इस्तेमाल करना आसान है. साथ ही, इससे आपको अपने ऐप्लिकेशन की परफ़ॉर्मेंस की प्रोफ़ाइल बनाने के लिए, कई तरह की जानकारी का ऐक्सेस मिलता है. अब आपके पास हार्डवेयर मॉड्यूल, कर्नल फ़ंक्शन, और Dalvik VM से ट्रैक डेटा इकट्ठा करने का विकल्प है. इसमें, गै़रबेज कलेक्शन, रिसॉर्स लोड करने वगैरह की जानकारी शामिल है.
Android 4.3 में नए Trace API भी शामिल हैं. इनका इस्तेमाल करके, अपने ऐप्लिकेशन में कोड के खास सेक्शन को मार्क किया जा सकता है. इसके बाद, Systrace begin/end events का इस्तेमाल करके, कोड को ट्रैक किया जा सकता है. जब कोड के मार्क किए गए सेक्शन लागू होते हैं, तो सिस्टम ट्रैक लॉग में शुरू/खत्म होने के इवेंट लिखता है. इससे आपके ऐप्लिकेशन की परफ़ॉर्मेंस पर बहुत कम असर पड़ता है. इसलिए, रिपोर्ट किए गए समय से आपको यह सटीक जानकारी मिलती है कि आपका ऐप्लिकेशन क्या कर रहा है.
Systrace आउटपुट फ़ाइल में, ऐप्लिकेशन के हिसाब से इवेंट को टाइमलाइन में विज़ुअलाइज़ किया जा सकता है. साथ ही, अन्य कर्नेल और उपयोगकर्ता स्पेस के ट्रैक डेटा के संदर्भ में इवेंट का विश्लेषण किया जा सकता है. मौजूदा Systrace टैग के साथ-साथ, कस्टम ऐप्लिकेशन सेक्शन की मदद से, आपको अपने ऐप्लिकेशन की परफ़ॉर्मेंस और व्यवहार को समझने के नए तरीके मिल सकते हैं.
स्क्रीन पर जीपीयू प्रोफ़ाइलिंग
Android 4.3 में डेवलपर के लिए नए विकल्प जोड़े गए हैं. इनकी मदद से, ऐप्लिकेशन की परफ़ॉर्मेंस का विश्लेषण किया जा सकता है. साथ ही, किसी भी डिवाइस या एमुलेटर पर रेंडरिंग से जुड़ी समस्याओं का पता लगाया जा सकता है.
प्रोफ़ाइल जीपीयू रेंडरिंग विकल्प में, अब ऐप्लिकेशन के चलने के दौरान, स्क्रीन पर अपने ऐप्लिकेशन के असरदार फ़्रेमरेट को विज़ुअलाइज़ किया जा सकता है. आपके पास, स्क्रीन पर बार या लाइन ग्राफ़ के तौर पर प्रोफ़ाइलिंग डेटा दिखाने का विकल्प होता है. इसमें रंगों से यह पता चलता है कि ड्रॉइंग के निर्देश बनाने (नीला), निर्देश देने (नारंगी), और निर्देशों के पूरा होने का इंतज़ार करने (पीला) में कितना समय लगा. सिस्टम, स्क्रीन पर मौजूद ग्राफ़ को लगातार अपडेट करता है. साथ ही, नेविगेशन बार और सूचना बार के साथ-साथ, दिखने वाली हर गतिविधि के लिए ग्राफ़ दिखाता है.
रेंडर करने के लिए, हर हरे रंग की लाइन में 16 मिलीसेकंड का थ्रेशोल्ड होता है. इससे, 60 फ़्रेम प्रति सेकंड के लक्ष्य के हिसाब से, अपने ऐप्लिकेशन के फ़्रेम रेट का आकलन किया जा सकता है. ऐसा इसलिए, क्योंकि 1/60 सेकंड का मतलब करीब 16 मिलीसेकंड होता है. अगर आपको ऐसे ऑपरेशन दिखते हैं जो हरे रंग की लाइन को पार करते हैं, तो Systrace और अन्य टूल का इस्तेमाल करके उनका विश्लेषण किया जा सकता है.
Android 4.2 और इसके बाद के वर्शन पर, डिफ़ॉल्ट रूप से 'डेवलपर के लिए सेटिंग और टूल' छिपे रहते हैं. इन्हें कभी भी दिखाया जा सकता है. इसके लिए, सेटिंग > फ़ोन के बारे में जानकारी > बिल्ड नंबर पर सात बार टैप करें. ऐसा, किसी भी Android डिवाइस पर किया जा सकता है.
फ़ाइल यूआरआई के लिए StrictMode की चेतावनी
StrictMode टूल में हाल ही में जोड़ी गई नीति से जुड़ी पाबंदी, आपके ऐप्लिकेशन के सिस्टम या किसी दूसरे ऐप्लिकेशन को file://
यूआरआई दिखाने पर चेतावनी देती है. कुछ मामलों में, हो सकता है कि फ़ाइल पाने वाले ऐप्लिकेशन के पास file://
यूआरआई पाथ का ऐक्सेस न हो. इसलिए, ऐप्लिकेशन के बीच फ़ाइलें शेयर करते समय, content://
यूआरआई का इस्तेमाल किया जाना चाहिए. इसके लिए, ज़रूरी अनुमति लेना ज़रूरी है. इस नई नीति की मदद से, ऐसे मामलों का पता लगाया जा सकता है और उन्हें ठीक किया जा सकता है. अगर आपको फ़ाइलों को आसानी से सेव करने और उन्हें दूसरे ऐप्लिकेशन के साथ शेयर करने का तरीका चाहिए, तो सहायता लाइब्रेरी में उपलब्ध FileProvider
कॉन्टेंट प्रोवाइडर का इस्तेमाल करें.
Android 4.2
Jelly Bean के सबसे नए वर्शन, Android 4.2 में आपका स्वागत है!
Android 4.2 में परफ़ॉर्मेंस को ऑप्टिमाइज़ करने की सुविधा, बेहतर सिस्टम यूज़र इंटरफ़ेस (यूआई), और उपयोगकर्ताओं और डेवलपर के लिए शानदार नई सुविधाएं हैं. इस दस्तावेज़ में, डेवलपर के लिए उपलब्ध नई सुविधाओं के बारे में जानकारी दी गई है.
नए डेवलपर एपीआई के बारे में ज़्यादा जानने के लिए, Android 4.2 के एपीआई का दस्तावेज़ देखें.
www.android.com पर जाकर, Jelly Bean में उपयोगकर्ताओं के लिए उपलब्ध नई सुविधाओं के बारे में ज़्यादा जानें.
तेज़, आसान, और ज़्यादा रिस्पॉन्सिव
Android 4.2, Jelly Bean में पहले से मौजूद परफ़ॉर्मेंस को बेहतर बनाने वाली सुविधाओं पर आधारित है. जैसे, vsync टाइमिंग, ट्रिपल बफ़रिंग, टच में लगने वाले समय में कमी, और सीपीयू इनपुट को बेहतर बनाना. साथ ही, इसमें नए ऑप्टिमाइज़ेशन भी जोड़े गए हैं, ताकि Android और भी तेज़ हो सके.
हार्डवेयर से तेज़ किए गए 2D रेंडरर में हुए सुधारों की वजह से, स्क्रोल करने और स्वाइप करने जैसे सामान्य ऐनिमेशन, आसानी से और तेज़ी से चलते हैं. खास तौर पर, लेयर, क्लिपिंग, और कुछ आकारों (राउंड किए गए रेक्टैंगल, सर्कल, और ओवल) के लिए ड्रॉइंग को ऑप्टिमाइज़ किया गया है.
WebView रेंडरिंग ऑप्टिमाइज़ेशन की मदद से, वेब पेजों को आसानी से स्क्रोल किया जा सकता है. साथ ही, पेजों पर कोई रुकावट या झटका नहीं आता.
Android का Renderscript Compute, सीधे मोबाइल डिवाइस के जीपीयू पर चलने के लिए पोर्ट किया गया पहला कंप्यूटेशन प्लैटफ़ॉर्म है. यह जब भी संभव हो, GPU कंप्यूटेशन संसाधनों का अपने-आप फ़ायदा लेता है. इससे ग्राफ़िक और इमेज प्रोसेसिंग की परफ़ॉर्मेंस काफ़ी बेहतर होती है. इस सुविधा के साथ काम करने वाले डिवाइस पर, Renderscript का इस्तेमाल करने वाले किसी भी ऐप्लिकेशन को फिर से कंपाइल किए बिना, इस जीपीयू इंटिग्रेशन का तुरंत फ़ायदा मिल सकता है.
बेहतर और रीफ़्रेश किया गया यूज़र इंटरफ़ेस (यूआई)
Android 4.2, Jelly Bean के उपयोगकर्ता अनुभव को बेहतर बनाता है. साथ ही, सभी टैबलेट पर Android यूज़र इंटरफ़ेस (यूआई) के जाने-पहचाने पैटर्न, जैसे कि स्टेटस बार, सिस्टम बार, और सूचना विंडो को उपलब्ध कराता है.
अब सभी स्क्रीन साइज़ में सबसे ऊपर स्टेटस बार दिखता है. इसमें सूचनाओं और नए क्विक सेटिंग मेन्यू को पुल-डाउन करके ऐक्सेस किया जा सकता है. सबसे नीचे, जाना-पहचाना सिस्टम बार दिखता है. इसमें मौजूद बटन, दोनों हाथों से आसानी से ऐक्सेस किए जा सकते हैं. ऐप्लिकेशन ट्रे सभी स्क्रीन साइज़ पर भी उपलब्ध है.
एक टैबलेट, कई उपयोगकर्ता
अब कई उपयोगकर्ता एक ही Android टैबलेट शेयर कर सकते हैं. साथ ही, हर उपयोगकर्ता के पास अपने लिए बने उपयोगकर्ता स्पेस का आसानी से ऐक्सेस होता है. उपयोगकर्ता, लॉक स्क्रीन से एक टच करके अपने स्पेस पर स्विच कर सकते हैं.
एक से ज़्यादा उपयोगकर्ताओं वाले डिवाइस पर, Android हर उपयोगकर्ता को एक अलग एनवायरमेंट देता है. इसमें, उपयोगकर्ता के हिसाब से एमुलेट किया गया SD कार्ड स्टोरेज भी शामिल है. उपयोगकर्ताओं के पास अपनी होम स्क्रीन, विजेट, खाते, सेटिंग, फ़ाइलें, और ऐप्लिकेशन भी होते हैं. सिस्टम इन सभी को अलग-अलग रखता है. सभी उपयोगकर्ता, मुख्य सिस्टम सेवाएं शेयर करते हैं. हालांकि, सिस्टम यह पक्का करता है कि हर उपयोगकर्ता के ऐप्लिकेशन और डेटा को अलग रखा जाए. इसका मतलब है कि एक से ज़्यादा उपयोगकर्ताओं में से हर व्यक्ति के पास अपना Android डिवाइस होता है.
उपयोगकर्ता अपने एनवायरमेंट में, किसी भी समय ऐप्लिकेशन इंस्टॉल और अनइंस्टॉल कर सकते हैं. स्टोरेज बचाने के लिए, Google Play किसी APK को सिर्फ़ तब डाउनलोड करता है, जब उसे डिवाइस पर किसी दूसरे उपयोगकर्ता ने पहले से इंस्टॉल न किया हो. अगर ऐप्लिकेशन पहले से इंस्टॉल है, तो Google Play, नए उपयोगकर्ता के इंस्टॉलेशन को सामान्य तरीके से रिकॉर्ड करता है. हालांकि, वह ऐप्लिकेशन की एक और कॉपी डाउनलोड नहीं करता. एक से ज़्यादा उपयोगकर्ता, APK की एक ही कॉपी चला सकते हैं, क्योंकि सिस्टम हर उपयोगकर्ता के लिए एक नया इंस्टेंस बनाता है. इसमें उपयोगकर्ता के हिसाब से डेटा डायरेक्ट्री भी शामिल होती है.
डेवलपर के लिए, मल्टी-यूज़र मोड की सुविधा पारदर्शी है — मल्टी-यूज़र मोड में सामान्य रूप से काम करने के लिए, आपके ऐप्लिकेशन को कुछ खास करने की ज़रूरत नहीं है. साथ ही, आपको अपने मौजूदा या पब्लिश किए गए APKs में कोई बदलाव करने की ज़रूरत नहीं है. सिस्टम, हर उपयोगकर्ता के स्पेस में आपके ऐप्लिकेशन को ठीक वैसे ही मैनेज करता है जैसे कि वह एक उपयोगकर्ता वाले एनवायरमेंट में करता है.
उपयोगकर्ताओं से जुड़ने के नए तरीके
लॉक स्क्रीन विजेट
Android 4.2 में, उपयोगकर्ता ऐप्लिकेशन विजेट को सीधे अपनी लॉक स्क्रीन पर डाल सकते हैं. इससे, उन्हें अपने पसंदीदा ऐप्लिकेशन के कॉन्टेंट को तुरंत ऐक्सेस करने के लिए, डिवाइस को अनलॉक करने की ज़रूरत नहीं पड़ती. उपयोगकर्ता, इंस्टॉल किए गए ऐप्लिकेशन के विजेट में से चुनकर, लॉक स्क्रीन पर ज़्यादा से ज़्यादा पांच विजेट जोड़ सकते हैं. लॉक स्क्रीन पर हर विजेट को अपने पैनल में दिखाया जाता है. इससे उपयोगकर्ता, अलग-अलग पैनल और उनके विजेट देखने के लिए, बाईं और दाईं ओर स्वाइप कर सकते हैं.
ऐप्लिकेशन के सभी विजेट की तरह, लॉक स्क्रीन विजेट भी किसी भी तरह का कॉन्टेंट दिखा सकते हैं. साथ ही, इन पर उपयोगकर्ता सीधे तौर पर इंटरैक्ट कर सकता है. ये पूरी तरह से अपने-आप काम कर सकते हैं. जैसे, संगीत चलाने के लिए कंट्रोल देने वाला विजेट. इसके अलावा, ये उपयोगकर्ताओं को आपके ऐप्लिकेशन में किसी गतिविधि पर सीधे तौर पर ले जा सकते हैं. इसके लिए, उन्हें ज़रूरत के हिसाब से अनलॉक करना पड़ सकता है.
डेवलपर के लिए, लॉक स्क्रीन विजेट उपयोगकर्ताओं से जुड़ने का एक नया और बेहतर तरीका है. इनकी मदद से, उपयोगकर्ताओं को ऐसी जगह पर अपना कॉन्टेंट दिखाया जा सकता है जहां वे अक्सर आते हैं. साथ ही, इनसे आपको उपयोगकर्ताओं को सीधे अपने ऐप्लिकेशन पर लाने के ज़्यादा अवसर मिलते हैं.
इस नई सुविधा का फ़ायदा पाने के लिए, नया ऐप्लिकेशन विजेट बनाएं या होम स्क्रीन पर मौजूद विजेट को बड़ा करें. अगर आपके ऐप्लिकेशन में पहले से ही होम स्क्रीन विजेट शामिल हैं, तो उन्हें लॉक स्क्रीन पर भी दिखाया जा सकता है. इसके लिए, आपको बहुत कम बदलाव करने होंगे. उपयोगकर्ताओं को बेहतर अनुभव देने के लिए, विजेट को अपडेट किया जा सकता है, ताकि उपलब्ध होने पर लॉक स्क्रीन के पूरे हिस्से का इस्तेमाल किया जा सके. साथ ही, ज़रूरत पड़ने पर छोटी स्क्रीन पर उसका साइज़ बदला जा सके. विजेट में ऐसी सुविधाएं भी जोड़ी जा सकती हैं जो लॉक स्क्रीन पर खास तौर पर काम की या सुविधाजनक हो सकती हैं.
Daydream
Daydream एक इंटरैक्टिव स्क्रीनसेवर मोड है. यह तब चालू होता है, जब उपयोगकर्ता का डिवाइस डॉक किया गया हो या चार्ज हो रहा हो. इस मोड में, सिस्टम डिवाइस के स्क्रीनसेवर के तौर पर, डिवाइस पर इंस्टॉल किए गए ऐप्लिकेशन से मिलने वाली रिमोट कॉन्टेंट सेवा, daydream को लॉन्च करता है. उपयोगकर्ता, सेटिंग ऐप्लिकेशन से Daydream को चालू कर सकता है. इसके बाद, वह डिसप्ले करने के लिए Daydream चुन सकता है.
डेड्रीम में लाइव वॉलपेपर और होम स्क्रीन विजेट की बेहतर सुविधाएं मिलती हैं. हालांकि, ये सुविधाएं ज़्यादा बेहतर होती हैं. इनकी मदद से, किसी भी तरह का कॉन्टेंट बिल्कुल नए कॉन्टेक्स्ट में दिखाया जा सकता है. साथ ही, उपयोगकर्ताओं को फ़ोटो फ़्लिप करने, ऑडियो या वीडियो चलाने या एक ही टच से सीधे आपके ऐप्लिकेशन पर जाने जैसे इंटरैक्शन की सुविधा मिलती है.
डिवाइस चार्ज होने या डॉक होने पर, डेज़ड्रीम अपने-आप शुरू हो सकते हैं. इससे आपके ऐप्लिकेशन को उपयोगकर्ताओं को नए तरह के अनुभव देने में मदद मिलती है. जैसे, लीनबैक या एक्सिबिशन मोड, डेमो या कीऑस्क मोड, और "आकर्षित करने वाला मोड". इसके लिए, किसी खास हार्डवेयर की ज़रूरत नहीं होती.
Daydreams, गतिविधियों की तरह ही होते हैं और वे वही काम कर सकते हैं जो गतिविधि कर सकती है. जैसे, रिमोट व्यू का इस्तेमाल किए बिना यूज़र इंटरफ़ेस (यूआई) की हैरारकी को रेंडर करना, कैनवस, OpenGL, SurfaceTexture वगैरह का इस्तेमाल करके सीधे ड्रॉ करना वगैरह. ये ऐप्लिकेशन वीडियो और ऑडियो चला सकते हैं. साथ ही, उपयोगकर्ता से सीधे इंटरैक्ट भी कर सकते हैं. हालांकि, स्लीप मोड में दिखने वाले विज़ुअल, गतिविधियां नहीं होते. इसलिए, इनसे बैकस्टैक पर कोई असर नहीं पड़ता या ये हाल ही में इस्तेमाल किए गए ऐप्लिकेशन में नहीं दिखते. साथ ही, इन्हें सीधे आपके ऐप्लिकेशन से लॉन्च नहीं किया जा सकता.
डेड्रीम को लागू करना आसान है. इसके लिए, अपने ऐप्लिकेशन के दूसरे हिस्सों के लिए पहले से बनाए गए यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट और रिसॉर्स का इस्तेमाल किया जा सकता है. अपने ऐप्लिकेशन में एक से ज़्यादा डेड्रीम जोड़े जा सकते हैं. साथ ही, हर डेड्रीम के लिए अलग कॉन्टेंट और डिसप्ले सेटिंग दी जा सकती है.
बाहरी डिसप्ले के साथ काम करना
Android 4.2 में, बाहरी डिसप्ले के लिए प्लैटफ़ॉर्म की सहायता की सुविधा जोड़ी गई है. यह सुविधा, डिसप्ले को डुप्लीकेट करने की सुविधा से काफ़ी अलग है. अब ऐप्लिकेशन, Android डिवाइस से कनेक्ट किए गए किसी एक या एक से ज़्यादा डिसप्ले पर यूनीक कॉन्टेंट दिखा सकते हैं. ऐप्लिकेशन इस सुविधा का इस्तेमाल करके, उपयोगकर्ताओं को नए तरह के इंटरैक्शन और मनोरंजन के अनुभव दे सकते हैं.
डिसप्ले मैनेजर
ऐप्लिकेशन, डिसप्ले मैनेजर सिस्टम की नई सेवा की मदद से डिसप्ले से इंटरैक्ट करते हैं. आपका ऐप्लिकेशन डिसप्ले की गिनती कर सकता है और हर डिसप्ले की क्षमताओं की जांच कर सकता है. इनमें साइज़, डेंसिटी, डिसप्ले का नाम, आईडी, सुरक्षित वीडियो के लिए सहायता वगैरह शामिल हैं. डिसप्ले जोड़े या हटाए जाने या उनकी सुविधाओं में बदलाव होने पर भी, आपके ऐप्लिकेशन को कॉलबैक मिल सकते हैं. इससे, बाहरी डिसप्ले पर आपके कॉन्टेंट को बेहतर तरीके से मैनेज किया जा सकता है.
प्रज़ेंटेशन विंडो
बाहरी डिसप्ले पर कॉन्टेंट दिखाना आसान बनाने के लिए, फ़्रेमवर्क एक नया यूआई ऑब्जेक्ट उपलब्ध कराता है. इसे प्रज़ेंटेशन कहा जाता है. यह एक तरह का डायलॉग है, जो किसी खास बाहरी डिसप्ले पर आपके ऐप्लिकेशन के कॉन्टेंट के लिए विंडो दिखाता है. आपका ऐप्लिकेशन सिर्फ़ इस्तेमाल करने के लिए डिसप्ले, विंडो के लिए थीम, और दिखाने के लिए यूनीक कॉन्टेंट देता है. प्रज़ेंटेशन, ज़्यादा संसाधनों को मैनेज करता है और टारगेट किए गए डिसप्ले की विशेषताओं के हिसाब से आपके कॉन्टेंट को रेंडर करता है.
प्रज़ेंटेशन की मदद से, आपके ऐप्लिकेशन को रिमोट डिसप्ले विंडो और उसके कॉन्टेंट पर पूरा कंट्रोल मिलता है. साथ ही, उपयोगकर्ता के इनपुट इवेंट के आधार पर इसे मैनेज किया जा सकता है. जैसे, बटन दबाना, जेस्चर, मोशन इवेंट वगैरह. प्रज़ेंटेशन में यूज़र इंटरफ़ेस (यूआई) बनाने और कॉन्टेंट को रेंडर करने के लिए, सभी सामान्य टूल का इस्तेमाल किया जा सकता है. जैसे, अपनी पसंद के मुताबिक व्यू की हैरारकी बनाना, स्ट्रीम किए जा रहे कॉन्टेंट या कैमरे की झलक को सीधे विंडो में दिखाने के लिए, SurfaceView या SurfaceTexture का इस्तेमाल करना.
डिसप्ले के लिए पसंदीदा विकल्प
अगर एक से ज़्यादा बाहरी डिसप्ले उपलब्ध हैं, तो ज़रूरत के हिसाब से उतने प्रज़ेंटेशन बनाए जा सकते हैं. हर प्रज़ेंटेशन में किसी खास डिसप्ले पर यूनीक कॉन्टेंट दिखाया जा सकता है. कई मामलों में, हो सकता है कि आप सिर्फ़ एक बाहरी डिसप्ले पर अपना कॉन्टेंट दिखाना चाहें — लेकिन हमेशा उस डिसप्ले पर दिखाएं जो प्रज़ेंटेशन कॉन्टेंट के लिए सबसे अच्छा हो. इसके लिए, सिस्टम आपके ऐप्लिकेशन को इस्तेमाल करने के लिए सबसे अच्छा डिसप्ले चुनने में मदद कर सकता है.
इस्तेमाल करने के लिए सबसे अच्छा डिसप्ले ढूंढने के लिए, आपका ऐप्लिकेशन डिसप्ले मैनेजर से सिस्टम के प्रज़ेंटेशन डिसप्ले के लिए पसंदीदा डिसप्ले के बारे में क्वेरी कर सकता है. साथ ही, डिसप्ले बदलने पर उसे कॉलबैक मिल सकते हैं. इसके अलावा, Android 4.2 में उपलब्ध मीडिया राउटर सेवा का इस्तेमाल करके भी, सिस्टम वीडियो रूट में बदलाव होने पर सूचनाएं मिल सकती हैं. आपका ऐप्लिकेशन, मुख्य गतिविधि में डिफ़ॉल्ट रूप से कॉन्टेंट तब तक दिखा सकता है, जब तक कि पसंदीदा प्रज़ेंटेशन डिसप्ले अटैच नहीं किया जाता. इसके बाद, यह पसंदीदा डिसप्ले पर प्रज़ेंटेशन कॉन्टेंट पर अपने-आप स्विच हो सकता है. आपके ऐप्लिकेशन, डिसप्ले चुनने के लिए स्टैंडर्ड यूज़र इंटरफ़ेस (यूआई) उपलब्ध कराने के लिए, मीडिया राउटर के MediaRouteActionProvider और MediaRouteButton का भी इस्तेमाल कर सकते हैं.
सुरक्षित सामग्री
सुरक्षित या एन्क्रिप्ट (सुरक्षित) किए गए कॉन्टेंट को मैनेज करने वाले ऐप्लिकेशन के लिए, डिसप्ले एपीआई अब डिसप्ले की सुरक्षित वीडियो की सुविधाओं की जानकारी देता है. आपका ऐप्लिकेशन डिसप्ले से यह पता लगाने के लिए क्वेरी करता है कि वह सुरक्षित वीडियो आउटपुट देता है या सुरक्षित ग्राफ़िक बफ़र देता है. इसके बाद, कॉन्टेंट को देखने लायक बनाने के लिए, सही कॉन्टेंट स्ट्रीम या डिकोडिंग चुनता है. SurfaceView ऑब्जेक्ट की ज़्यादा सुरक्षा के लिए, आपका ऐप्लिकेशन एक सुरक्षित फ़्लैग सेट कर सकता है. इससे यह पता चलता है कि कॉन्टेंट को स्क्रीनशॉट में कभी नहीं दिखाया जाना चाहिए. इसके अलावा, कॉन्टेंट को असुरक्षित डिसप्ले आउटपुट पर भी नहीं दिखाया जाना चाहिए. भले ही, कॉन्टेंट को मिरर किया गया हो.
वायरलेस डिसप्ले
Android 4.2 के बाद, जिन डिवाइसों पर यह सुविधा काम करती है उनके उपयोगकर्ता, Wi-Fi डिसप्ले का इस्तेमाल करके, Wi-Fi से किसी बाहरी डिसप्ले से कनेक्ट कर सकते हैं. Wi-Fi डिसप्ले, एक पीयर-टू-पीयर वायरलेस डिसप्ले सलूशन है, जो Miracast™ सर्टिफ़िकेशन प्रोग्राम का पालन करता है. वायरलेस डिसप्ले कनेक्ट होने पर, उपयोगकर्ता बड़ी स्क्रीन पर किसी भी तरह का कॉन्टेंट स्ट्रीम कर सकते हैं. जैसे, फ़ोटो, गेम, मैप वगैरह.
ऐप्लिकेशन, वायरलेस डिसप्ले का उसी तरह से फ़ायदा ले सकते हैं जिस तरह वे दूसरे बाहरी डिसप्ले का फ़ायदा लेते हैं. इसके लिए, उन्हें कुछ भी करने की ज़रूरत नहीं होती. यह सिस्टम, नेटवर्क कनेक्शन को मैनेज करता है और ज़रूरत के हिसाब से आपके प्रज़ेंटेशन या ऐप्लिकेशन के दूसरे कॉन्टेंट को वायरलेस डिसप्ले पर स्ट्रीम करता है.
नेटिव आरटीएल (दाईं से बाईं ओर लिखने की सुविधा) के साथ काम करना
Android 4.2 में, दाईं से बाईं ओर लिखी जाने वाली भाषाओं के लेआउट के लिए, नेटिव सपोर्ट की सुविधा उपलब्ध है. इसमें लेआउट का डुप्लीकेट वर्शन बनाना भी शामिल है. नेटिव आरटीएल (राइट-टू-लेफ़्ट) की सुविधा की मदद से, अपने सभी उपयोगकर्ताओं को ऐप्लिकेशन का बेहतर अनुभव दिया जा सकता है. भले ही, उनकी भाषा में दाईं से बाईं या बाईं से दाईं ओर पढ़ने वाली स्क्रिप्ट का इस्तेमाल किया जाता हो.
जब उपयोगकर्ता, सिस्टम की भाषा को दाईं से बाईं ओर लिखी जाने वाली स्क्रिप्ट पर स्विच करता है, तो सिस्टम अब ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) लेआउट और सभी व्यू विजेट को अपने-आप मिरर करता है. साथ ही, पढ़ने और वर्ण डालने, दोनों के लिए टेक्स्ट एलिमेंट को बीडीआई मिररिंग भी करता है.
आपका ऐप्लिकेशन, आरटीएल लेआउट को मिरर करने की सुविधा का फ़ायदा कम से कम मेहनत के साथ ले सकता है. अगर आपको ऐप्लिकेशन को मिरर करना है, तो अपने ऐप्लिकेशन मेनिफ़ेस्ट में एक नया एट्रिब्यूट डालें और सभी "लेफ़्ट/राइट" लेआउट प्रॉपर्टी को नए "शुरू/खत्म" के बराबर में बदलें. इसके बाद, सिस्टम आपके यूज़र इंटरफ़ेस (यूआई) को ज़रूरत के हिसाब से दिखाता है और उसे दूसरे डिवाइस पर दिखाता है.
अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) को बेहतर तरीके से कंट्रोल करने के लिए, Android 4.2 में नए एपीआई शामिल किए गए हैं. इनकी मदद से, व्यू कॉम्पोनेंट में लेआउट की दिशा, टेक्स्ट की दिशा, टेक्स्ट अलाइनमेंट, गुरुत्वाकर्षण, और स्थानीय भाषा की दिशा को मैनेज किया जा सकता है. अगर दाईं से बाईं ओर लिखने वाली स्क्रिप्ट का इस्तेमाल किया जा रहा है, तो डिसप्ले के लिए लेआउट, ड्रॉबल, और अन्य रिसॉर्स के कस्टम वर्शन भी बनाए जा सकते हैं.
अपने कस्टम दाएं से बाएं लेआउट को डीबग और ऑप्टिमाइज़ करने में आपकी मदद करने के लिए, अब HierarchyViewer टूल की मदद से, हैरारकी में मौजूद सभी व्यू के लिए, शुरू/खत्म होने की प्रॉपर्टी, लेआउट की दिशा, टेक्स्ट की दिशा, और टेक्स्ट अलाइनमेंट देखा जा सकता है.
अंतरराष्ट्रीय भाषाओं के लिए बेहतर सुविधाएं
Android 4.2 में, अंतरराष्ट्रीय उपयोगकर्ताओं के लिए फ़ॉन्ट और वर्ण के ऑप्टिमाइज़ेशन की कई सुविधाएं शामिल हैं:
- कोरियन भाषा के उपयोगकर्ताओं के लिए, एक नया फ़ॉन्ट उपलब्ध है — Nanum (나눔글꼴) Gothic. यह यूनिकोड फ़ॉन्ट है, जिसे खास तौर पर कोरियन भाषा की स्क्रिप्ट के लिए डिज़ाइन किया गया है.
- वेबव्यू में दिखाए जाने वाले जैपनीज़ वर्टिकल टेक्स्ट के लिए बेहतर सहायता.
- इंडिक, थाई, ऐरेबिक, और हिब्रू के डिफ़ॉल्ट फ़ॉन्ट के लिए, फ़ॉन्ट के बीच की जगह और पोज़िशन को बेहतर बनाया गया है.
Android के डिफ़ॉल्ट कीबोर्ड में, डिक्शनरी का अपडेट किया गया सेट भी शामिल होता है:
- फ़्रेंच (बिगराम की सुविधा के साथ), अंग्रेज़ी, और रूसी के लिए बेहतर शब्दकोश
- डेनिश, ग्रीक, फ़िनिश, लिथुआनियन, लैटवियन, पोलिश, स्लोवेनियन, सर्बियन, स्वीडिश, और टर्किश के लिए नई डिक्शनरी
खूबसूरत यूज़र इंटरफ़ेस (यूआई) बनाने के नए तरीके
नेस्ट किए गए फ़्रैगमेंट
अपने यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट को ज़्यादा कंट्रोल करने और उन्हें ज़्यादा मॉड्यूलर बनाने के लिए, Android 4.2 की मदद से फ़्रैगमेंट को फ़्रैगमेंट में नेस्ट किया जा सकता है. किसी भी फ़्रैगमेंट के लिए, नए फ़्रैगमेंट मैनेजर की मदद से, व्यू के लेआउट में अन्य फ़्रैगमेंट को चाइल्ड नोड के तौर पर डाला जा सकता है.
नेस्ट किए गए फ़्रैगमेंट का इस्तेमाल कई तरीकों से किया जा सकता है. हालांकि, ये खास तौर पर ऐसे यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट के अंदर डाइनैमिक और फिर से इस्तेमाल किए जा सकने वाले यूआई कॉम्पोनेंट लागू करने के लिए काम के होते हैं जो खुद डाइनैमिक और फिर से इस्तेमाल किए जा सकने वाले होते हैं. उदाहरण के लिए, अगर बाईं और दाईं ओर स्वाइप करने वाले फ़्रैगमेंट बनाने के लिए ViewPager का इस्तेमाल किया जाता है, तो अब व्यू पेजर के हर फ़्रैगमेंट में फ़्रैगमेंट डाले जा सकते हैं.
नेस्ट किए गए फ़्रैगमेंट का ज़्यादा से ज़्यादा फ़ायदा पाने के लिए, Android सहायता लाइब्रेरी के नए वर्शन में यह सुविधा जोड़ी गई है.
सुलभता
अब सिस्टम, सुलभता सेवाओं को टच-एक्सप्लोरेशन मोड में टच-एक्सप्लोरेशन और सुलभता जेस्चर के बीच अंतर करने में मदद करता है. जब कोई उपयोगकर्ता स्क्रीन को छूता है, तो सिस्टम सेवा को सूचना देता है कि सामान्य स्क्रीन टच इंटरैक्शन शुरू हो गया है. इसके बाद, यह टच इंटरैक्शन की स्पीड को ट्रैक करता है और यह तय करता है कि यह टच एक्सप्लोरेशन (धीमा) है या सुलभता जेस्चर (तेज़). साथ ही, यह सेवा को इसकी सूचना देता है. टच इंटरैक्शन खत्म होने पर, सिस्टम सेवा को इसकी सूचना देता है.
सिस्टम में, सुलभता से जुड़ा एक नया ग्लोबल विकल्प दिया गया है. इसकी मदद से, सुलभता सेवा, उपयोगकर्ता की किसी कार्रवाई के आधार पर क्विक सेटिंग मेन्यू खोल सकती है. Android 4.2 में, ब्रेल डिवाइसों के लिए सुलभता से जुड़ा नया फ़ीडबैक टाइप भी जोड़ा गया है.
सुलभता से जुड़े कामों के लिए, व्यू के मतलब के बारे में सुलभता सेवाओं को अहम जानकारी देने के लिए, फ़्रेमवर्क में नए एपीआई उपलब्ध कराए गए हैं. इनकी मदद से, किसी व्यू को दूसरे व्यू के लेबल के तौर पर जोड़ा जा सकता है. हर व्यू का लेबल, AccessibilityNodeInfo के ज़रिए सुलभता सेवाओं के लिए उपलब्ध होता है.
एचडीआर मोड के साथ बेहतर कैमरा
Android 4.2 में, बेहतर परफ़ॉर्मेंस के लिए नया कैमरा हार्डवेयर इंटरफ़ेस और लाइन जोड़ी गई है. जिन डिवाइसों पर यह सुविधा काम करती है उन पर ऐप्लिकेशन, एचडीआर कैमरा सीन मोड का इस्तेमाल करके इमेज कैप्चर कर सकते हैं. इसके लिए, हाई डाइनैमिक रेंज इमेजिंग तकनीकों का इस्तेमाल किया जाता है.
इसके अलावा, फ़्रेमवर्क अब एक एपीआई उपलब्ध कराता है, ताकि ऐप्लिकेशन यह जांच सकें कि कैमरे के शटर की आवाज़ को बंद किया जा सकता है या नहीं. इसके बाद, ऐप्लिकेशन उपयोगकर्ता को आवाज़ बंद करने या स्टैंडर्ड शटर आवाज़ के बजाय कोई अन्य आवाज़ चुनने की अनुमति दे सकते हैं. हमारा सुझाव है कि आप ऐसा करें.
Renderscript कंप्यूटेशन
Android 4.2 में, Renderscript Compute में स्क्रिप्टिंग की नई सुविधाएं, नए ऑप्टिमाइज़ेशन, और सीधे जीपीयू इंटिग्रेशन की सुविधाएं जोड़ी गई हैं. इनकी मदद से, कंप्यूटेशन ऑपरेशन में बेहतर परफ़ॉर्मेंस मिलती है.
Filterscript
Filterscript, Renderscript का एक सबसेट है. यह अलग-अलग डिवाइस चिपसेट पर, इमेज प्रोसेसिंग को ऑप्टिमाइज़ करने पर फ़ोकस करता है. डेवलपर, स्टैंडर्ड रेंडरस्क्रिप्ट रनटाइम एपीआई का इस्तेमाल करके, फ़िल्टरस्क्रिप्ट में इमेज प्रोसेसिंग ऑपरेशन लिख सकते हैं. हालांकि, ऐसा कुछ ज़्यादा सख्त शर्तों के तहत किया जा सकता है. इससे, सीपीयू, जीपीयू, और डीएसपी के साथ बेहतर तरीके से काम करने और बेहतर ऑप्टिमाइज़ेशन की सुविधा मिलती है.
Filterscript, हार्डवेयर से तेज़ की गई आसान इमेज प्रोसेसिंग और कैलकुलेशन ऑपरेशन के लिए सबसे सही है. जैसे, OpenGL ES फ़्रैगमेंट शेडर के लिए लिखे गए ऑपरेशन. यह हार्डवेयर पर कम पाबंदियां लगाता है. इसलिए, आपके ऑपरेशन को ज़्यादा तरह के डिवाइस चिपसेट पर ऑप्टिमाइज़ किया जाता है और तेज़ किया जाता है. एपीआई लेवल 17 या उसके बाद के वर्शन को टारगेट करने वाला कोई भी ऐप्लिकेशन, Filterscript का इस्तेमाल कर सकता है.
स्क्रिप्ट के इनट्रिन्सिक
Android 4.2 में, Renderscript ने स्क्रिप्ट के इंट्रिन्सिक के एक सेट के लिए सहायता जोड़ी है. ये पहले से लागू किए गए फ़िल्टरिंग प्राइमिटिव हैं, जिन्हें तेज़ किया गया है. इससे आपको लिखने के लिए कोड की संख्या कम करनी पड़ती है और यह पक्का करने में मदद मिलती है कि आपके ऐप्लिकेशन की परफ़ॉर्मेंस बेहतर हो.
इनट्रिन्सिक फ़ंक्शन, ब्लेंड, ब्लर, कलर मैट्रिक्स, 3x3 और 5x5 कॉन्वोल्यूशन, हर चैनल के लिए लुकअप टेबल, और Android YUV बफ़र को RGB में बदलने के लिए उपलब्ध हैं.
स्क्रिप्ट ग्रुप
अब Renderscript स्क्रिप्ट के ग्रुप बनाए जा सकते हैं और उन सभी को एक कॉल से चलाया जा सकता है, जैसे कि वे एक ही स्क्रिप्ट का हिस्सा हों. इससे Renderscript, स्क्रिप्ट को इस तरह से ऑप्टिमाइज़ कर पाता है जिस तरह से अलग-अलग स्क्रिप्ट को ऑप्टिमाइज़ नहीं किया जा सकता.
Renderscript इमेज-प्रोसेसिंग के लिए, अलग-अलग Android प्लैटफ़ॉर्म वर्शन (Android 4.0, 4.1, और 4.2) पर, सिर्फ़ Galaxy Nexus डिवाइस के सीपीयू में बेंचमार्क चलाए जाते हैं.
Renderscript इमेज-प्रोसेसिंग बेंचमार्क, जो एक ही Nexus 10 डिवाइस पर जीपीयू + सीपीयू के साथ चलाए गए ऑपरेशन की तुलना, सिर्फ़ सीपीयू में चलाए गए ऑपरेशन से करता है.
अगर आपको Renderscript ऑपरेशन का डायरेक्टेड ऐसाइक्लिक ग्राफ़ चलाना है, तो ऑपरेशन की जानकारी देने वाला स्क्रिप्ट ग्रुप बनाने के लिए, बिल्डर क्लास का इस्तेमाल किया जा सकता है. बेहतर परफ़ॉर्मेंस के लिए, Renderscript, प्रोसेस करने के क्रम और इन ऑपरेशन के बीच के कनेक्शन को ऑप्टिमाइज़ करता है.
ऑप्टिमाइज़ेशन में लगातार होने वाले सुधार
कैलकुलेशन ऑपरेशन के लिए Renderscript का इस्तेमाल करने पर, आपके ऐप्लिकेशन को Renderscript इंजन में परफ़ॉर्मेंस और ऑप्टिमाइज़ेशन में होने वाले लगातार सुधारों का फ़ायदा मिलता है. इससे आपके ऐप्लिकेशन कोड पर कोई असर नहीं पड़ता और उसे फिर से कंपाइल करने की ज़रूरत भी नहीं होती.
ऑप्टिमाइज़ेशन बेहतर होने पर, आपके ऑपरेशन तेज़ी से और ज़्यादा चिपसेट पर लागू होते हैं. इसके लिए, आपको कुछ करने की ज़रूरत नहीं होती. दाईं ओर दिए गए चार्ट में, Android प्लैटफ़ॉर्म के अलग-अलग वर्शन में, Renderscript के ऑप्टिमाइज़ेशन में किए जा रहे सुधारों से हुई परफ़ॉर्मेंस में बढ़ोतरी को हाइलाइट किया गया है.
GPU Compute
Renderscript Compute, कैलकुलेशन के लिए इस्तेमाल होने वाला पहला ऐसा प्लैटफ़ॉर्म है जिसे सीधे मोबाइल डिवाइस के जीपीयू पर चलाने के लिए पोर्ट किया गया है. अब यह सुविधा, परफ़ॉर्मेंस को बेहतर बनाने के लिए, जब भी संभव हो, जीपीयू कंप्यूटेशन संसाधनों का अपने-आप फ़ायदा लेती है. जीपीयू इंटिग्रेशन की मदद से, ग्राफ़िक या इमेज प्रोसेसिंग के लिए, सबसे मुश्किल कैलकुलेशन भी बेहतर परफ़ॉर्मेंस के साथ किए जा सकते हैं.
जिन डिवाइसों पर यह सुविधा काम करती है उन पर Renderscript का इस्तेमाल करने वाले किसी भी ऐप्लिकेशन को, फिर से कंपाइल किए बिना, जीपीयू इंटिग्रेशन का फ़ायदा तुरंत मिल सकता है. Nexus 10 टैबलेट, इस इंटिग्रेशन के साथ काम करने वाला पहला डिवाइस है.
पहले से मौजूद डेवलपर के लिए नए विकल्प
Android 4.2 सिस्टम में, डेवलपर के लिए कई नए विकल्प शामिल हैं. इनकी मदद से, बेहतरीन परफ़ॉर्म करने वाले ऐप्लिकेशन आसानी से बनाए जा सकते हैं. नए विकल्पों में, किसी भी डिवाइस या एमुलेटर से आपके ऐप्लिकेशन को डीबग करने और उसकी प्रोफ़ाइल बनाने की सुविधाएं मिलती हैं.
Android 4.2 वाले डिवाइसों पर, डेवलपर के विकल्प डिफ़ॉल्ट रूप से छिपे होते हैं. इससे, उपयोगकर्ताओं को बेहतर अनुभव मिलता है. किसी भी Android डिवाइस पर, सेटिंग > फ़ोन के बारे में जानकारी > बिल्ड नंबर पर सात बार टैप करके, डेवलपर के लिए उपलब्ध विकल्पों को किसी भी समय देखा जा सकता है.
Android 4.2 में डेवलपर के लिए ये नए विकल्प उपलब्ध हैं:
- गड़बड़ी की रिपोर्ट पाएं — यह तुरंत स्क्रीन शॉट लेता है और डिवाइस की स्थिति की जानकारी को लोकल फ़ाइल स्टोरेज में डाल देता है. इसके बाद, उन्हें भेजे जाने वाले नए ईमेल मैसेज में अटैच कर देता है.
- पावर मेन्यू में गड़बड़ी की रिपोर्ट — डिवाइस के पावर मेन्यू और क्विक सेटिंग में, गड़बड़ी की रिपोर्ट लेने के लिए एक नया विकल्प जोड़ता है (ऊपर देखें).
- यूएसबी से ऐप्लिकेशन की पुष्टि करें — इसकी मदद से, यूएसबी से साइडलोड किए जाने वाले ऐप्लिकेशन की जांच करने की सुविधा बंद की जा सकती है. हालांकि, ब्राउज़र जैसे अन्य सोर्स से ऐप्लिकेशन की जांच की जा सकती है. इससे सुरक्षा की सुविधा चालू रखते हुए, डेवलपमेंट की प्रोसेस को तेज़ किया जा सकता है.
- हार्डवेयर लेयर के अपडेट दिखाएं — हार्डवेयर लेयर अपडेट होने पर, उनमें हरी रोशनी डालता है.
- जीपीयू ओवरड्रॉ दिखाएं — जीपीयू ओवरड्रॉ वाले इलाकों को हाइलाइट करता है.
- 4x MSAA को हर हाल में चालू करें — Open GL ES 2.0 ऐप्लिकेशन में 4x MSAA को चालू करता है.
- सेकंडरी डिसप्ले सिम्युलेट करें — यह विकल्प चुनने पर, मौजूदा स्क्रीन पर एक या उससे ज़्यादा असुरक्षित ओवरले विंडो बनाई जाती हैं. इनका इस्तेमाल, सिम्युलेट किए गए रिमोट डिसप्ले के तौर पर किया जा सकता है. सिम्युलेट किए गए डिसप्ले का साइज़ और डेंसिटी कंट्रोल की जा सकती है.
- OpenGL ट्रेस चालू करें — इससे आपको glGetError पर Logcat, Systrace या कॉलस्टैक का इस्तेमाल करके, OpenGL के काम करने का तरीका पता चलता है.
नए प्लैटफ़ॉर्म की टेक्नोलॉजी
Android 4.2 में कई नई और बेहतर प्लैटफ़ॉर्म टेक्नोलॉजी शामिल हैं. इनकी मदद से, अलग-अलग तरह के हार्डवेयर डिवाइसों पर, कम्यूनिकेशन के नए इस्तेमाल के उदाहरणों को बेहतर तरीके से इस्तेमाल किया जा सकता है. ज़्यादातर मामलों में, प्लैटफ़ॉर्म की नई टेक्नोलॉजी और बेहतर सुविधाओं का आपके ऐप्लिकेशन पर सीधे तौर पर असर नहीं पड़ता. इसलिए, बिना किसी बदलाव के इनका फ़ायदा लिया जा सकता है.
सुरक्षा से जुड़ी बेहतर सुविधाएं
Android के हर रिलीज़ में, उपयोगकर्ताओं को सुरक्षित रखने के लिए सुरक्षा से जुड़ी कई सुविधाएं शामिल की जाती हैं. Android 4.2 में किए गए कुछ सुधारों के बारे में यहां बताया गया है:
- ऐप्लिकेशन की पुष्टि — उपयोगकर्ता, “ऐप्लिकेशन की पुष्टि करें” सुविधा को चालू कर सकते हैं. साथ ही, ऐप्लिकेशन इंस्टॉल करने से पहले, ऐप्लिकेशन की पुष्टि करने वाले किसी व्यक्ति या कंपनी से ऐप्लिकेशन की जांच कराई जा सकती है. ऐप्लिकेशन की पुष्टि करने की सुविधा से, उपयोगकर्ता को इस बात की चेतावनी मिल सकती है कि वह कोई ऐसा ऐप्लिकेशन इंस्टॉल करने की कोशिश कर रहा है जो नुकसान पहुंचा सकता है. अगर कोई ऐप्लिकेशन काफ़ी खराब है, तो यह सुविधा उसे इंस्टॉल होने से रोक सकती है.
- प्रीमियम एसएमएस पर ज़्यादा कंट्रोल — अगर कोई ऐप्लिकेशन, प्रीमियम सेवाओं का इस्तेमाल करने वाले किसी शॉर्ट कोड पर एसएमएस भेजने की कोशिश करता है, तो Android आपको सूचना देगा. इससे आपको अतिरिक्त शुल्क चुकाने पड़ सकते हैं. उपयोगकर्ता यह चुन सकता है कि ऐप्लिकेशन को मैसेज भेजने की अनुमति देनी है या उसे ब्लॉक करना है.
- वीपीएन हमेशा चालू रखें — वीपीएन को इस तरह कॉन्फ़िगर किया जा सकता है कि ऐप्लिकेशन तब तक नेटवर्क का ऐक्सेस न पाएं, जब तक वीपीएन कनेक्शन स्थापित नहीं हो जाता. इससे ऐप्लिकेशन, दूसरे नेटवर्क पर डेटा नहीं भेज पाते.
- सर्टिफ़िकेट पिन करना — libcore एसएसएल लागू करने की सुविधा अब सर्टिफ़िकेट पिन करने की सुविधा के साथ काम करती है. अगर सर्टिफ़िकेट, उम्मीद के मुताबिक सर्टिफ़िकेट के सेट से नहीं जुड़ता है, तो पिन किए गए डोमेन को सर्टिफ़िकेट की पुष्टि न होने का मैसेज मिलेगा. इससे, सर्टिफ़िकेट देने वाली संस्थाओं के साथ होने वाली संभावित धोखाधड़ी से बचा जा सकता है.
- Android की अनुमतियों को बेहतर तरीके से दिखाना — अनुमतियों को ऐसे ग्रुप में बांटा गया है जिन्हें उपयोगकर्ता आसानी से समझ सकते हैं. अनुमतियों की समीक्षा के दौरान, उपयोगकर्ता अनुमति पर क्लिक करके, अनुमति के बारे में ज़्यादा जानकारी देख सकता है.
- installd को बेहतर बनाना — installd डेमन, रूट उपयोगकर्ता के तौर पर नहीं चलता. इससे रूट प्रिविलेज एस्केलेशन के लिए, हमले के संभावित प्लैटफ़ॉर्म की संख्या कम हो जाती है.
- init स्क्रिप्ट को बेहतर बनाना — अब init स्क्रिप्ट में, स्लिंकलंक से जुड़े हमलों से बचने के लिए, O_NOFOLLOW सिमेंटिक लागू किए जाते हैं.
- FORTIFY_SOURCE — Android अब FORTIFY_SOURCE को लागू करता है. इसका इस्तेमाल, सिस्टम लाइब्रेरी और ऐप्लिकेशन में, स्मृति में गड़बड़ी को रोकने के लिए किया जाता है.
- ContentProvider का डिफ़ॉल्ट कॉन्फ़िगरेशन — जिन ऐप्लिकेशन में टारगेट एपीआई लेवल 17 का इस्तेमाल किया गया है उनके हर ContentProvider के लिए, “export” को डिफ़ॉल्ट रूप से “गलत” पर सेट किया जाएगा. इससे, ऐप्लिकेशन के लिए डिफ़ॉल्ट रूप से हमले की जगह कम हो जाएगी.
- क्रिप्टोग्राफ़ी — OpenSSL का इस्तेमाल करने के लिए, SecureRandom और Cipher.RSA के डिफ़ॉल्ट तरीके में बदलाव किया गया. OpenSSL 1.0.1 का इस्तेमाल करके, TLSv1.1 और TLSv1.2 के लिए SSLSocket की सुविधा जोड़ी गई
- सुरक्षा से जुड़ी गड़बड़ियां ठीक करना — सुरक्षा से जुड़ी गड़बड़ियों को ठीक करने के लिए, अपग्रेड की गई ओपन सोर्स लाइब्रेरी में WebKit, libpng, OpenSSL, और LibXML शामिल हैं. Android 4.2 में, Android के लिए खास तौर पर बनी जोखिम से जुड़ी आशंकाओं को ठीक करने के लिए भी सुधार किए गए हैं. इन कमज़ोरियों के बारे में, Open Handset Alliance के सदस्यों को जानकारी दी गई है. साथ ही, Android Open Source Project में इन कमज़ोरियों को ठीक करने के तरीके उपलब्ध हैं. सुरक्षा को बेहतर बनाने के लिए, Android के पुराने वर्शन वाले कुछ डिवाइसों में भी ये सुधार शामिल किए जा सकते हैं.
नया ब्लूटूथ स्टैक
Android 4.2 में, Android डिवाइसों के साथ इस्तेमाल करने के लिए ऑप्टिमाइज़ किया गया एक नया ब्लूटूथ स्टैक जोड़ा गया है. Google और Broadcom के सहयोग से तैयार किया गया नया ब्लूटूथ स्टैक, BlueZ पर आधारित स्टैक की जगह ले लेता है. साथ ही, बेहतर काम करने और भरोसेमंद होने की सुविधा देता है.कम इंतज़ार वाला ऑडियो
Android 4.2 में, कम इंतज़ार के साथ ऑडियो चलाने की सुविधा को बेहतर बनाया गया है. यह सुविधा, Android 4.1 रिलीज़ में किए गए सुधारों पर आधारित है. इन सुधारों में, OpenSL ES, Soundpool, और टोन जनरेटर एपीआई का इस्तेमाल करके, ऑडियो आउटपुट में लगने वाले इंतज़ार को कम करना शामिल है. ये सुधार, हार्डवेयर के साथ काम करने की सुविधा पर निर्भर करते हैं — कम इंतज़ार वाले ऑडियो की ये सुविधाएं देने वाले डिवाइस, हार्डवेयर की सुविधा के कॉन्स्टेंट की मदद से, ऐप्लिकेशन को इस सुविधा के काम करने की जानकारी दे सकते हैं. नेटिव ऑडियो सैंपल रेट और बफ़र साइज़ के बारे में क्वेरी करने के लिए, नए AudioManager API उपलब्ध कराए गए हैं. इनका इस्तेमाल उन डिवाइसों पर किया जा सकता है जिनमें इस सुविधा का दावा किया गया है.
कैमरे के हार्डवेयर का नया इंटरफ़ेस
Android 4.2 में, कैमरा स्टैक को लागू करने का नया तरीका शामिल किया गया है. कैमरा सबसिस्टम में, कैमरा पाइपलाइन में कॉम्पोनेंट लागू करने की सुविधाएं शामिल होती हैं. जैसे, प्रोसेसिंग कंट्रोल के साथ बर्स्ट मोड कैप्चर.नया एनएफ़सी हार्डवेयर इंटरफ़ेस और कंट्रोलर इंटरफ़ेस
Android 4.2 में, एनएफ़सी-फ़ोरम के एनसीआई स्टैंडर्ड पर आधारित कंट्रोलर के लिए सहायता उपलब्ध है. एनसीआई, एनएफ़सी कंट्रोलर (एनएफ़सीसी) और डिवाइस होस्ट के बीच स्टैंडर्ड कम्यूनिकेशन प्रोटोकॉल उपलब्ध कराता है. साथ ही, Google और Broadcom के साथ मिलकर बनाया गया नया एनएफ़सी स्टैक, इसका इस्तेमाल करता है.Dalvik रनटाइम ऑप्टिमाइज़ेशन
Dalvik रनटाइम में, अलग-अलग आर्किटेक्चर के लिए परफ़ॉर्मेंस और सुरक्षा से जुड़े सुधार शामिल हैं:
- Intel से x86 JIT और MIPS से MIPS JIT की सुविधा
- 512 एमबी से ज़्यादा स्टोरेज वाले डिवाइसों के लिए, ऑप्टिमाइज़ किए गए ग़ैर-ज़रूरी डेटा इकट्ठा करने के पैरामीटर
- SecureRandom और Cipher.RSA के डिफ़ॉल्ट तरीके अब OpenSSL का इस्तेमाल करते हैं
- OpenSSL 1.0.1 के ज़रिए TLSv1.1 और TLSv1.2 के लिए SSLSocket की सुविधा
- StrictMath के abs, min, max, और sqrt तरीकों के लिए नई इंट्रिन्सिक सहायता
- BouncyCastle को 1.47 पर अपडेट किया गया
- zlib को 1.27 पर अपडेट किया गया
- dlmalloc को 2.8.6 पर अपडेट किया गया
Android 4.1
Jelly Bean के पहले वर्शन, Android 4.1 में आपका स्वागत है!
Android 4.1, Android का अब तक का सबसे तेज़ और आसान वर्शन है. हमने पूरे प्लैटफ़ॉर्म में सुधार किए हैं और उपयोगकर्ताओं और डेवलपर के लिए नई सुविधाएं जोड़ी हैं. इस दस्तावेज़ में, डेवलपर के लिए उपलब्ध नई सुविधाओं के बारे में बताया गया है.
नए डेवलपर एपीआई के बारे में ज़्यादा जानने के लिए, Android 4.1 के एपीआई दस्तावेज़ देखें.
www.android.com पर जाकर, Jelly Bean की सुविधाओं के बारे में ज़्यादा जानें.
तेज़, आसान, और ज़्यादा रिस्पॉन्सिव
Android 4.1 को ऑप्टिमाइज़ किया गया है, ताकि Android की सबसे अच्छी परफ़ॉर्मेंस और टच में लगने वाले कम से कम समय के साथ, आसान और सहज यूज़र इंटरफ़ेस (यूआई) दिया जा सके.
Android 4.1 में, Android फ़्रेमवर्क के ज़रिए किए गए सभी ड्रॉइंग और ऐनिमेशन में vsync टाइमिंग को बढ़ाया गया है, ताकि फ़्रेम रेट एक जैसा रहे. ऐप्लिकेशन रेंडरिंग, टच इवेंट, स्क्रीन कॉम्पोज़िशन, और डिसप्ले रीफ़्रेश — ये सभी चीज़ें 16 मिलीसेकंड के vsync हार्टबीट के हिसाब से एक साथ चलती हैं, ताकि फ़्रेम आगे या पीछे न हों.
Android 4.1 में ग्राफ़िक्स पाइपलाइन में ट्रिपल बफ़रिंग भी जोड़ी गई है. इससे रेंडरिंग बेहतर तरीके से होती है और स्क्रीन पर स्क्रोल करने से लेकर पेजिंग और ऐनिमेशन तक, सब कुछ आसानी से दिखता है.
Android 4.1, टच रिस्पॉन्स में लगने वाले समय को कम करने के लिए, वीएसी (वाइड स्क्रीन ऐनिमेशन कंट्रोल) टाइमिंग के साथ टच को सिंक करता है. साथ ही, यह अनुमान लगाता है कि स्क्रीन रीफ़्रेश होने के समय आपका फ़िंगर कहां होगा. इससे, टच रिस्पॉन्स ज़्यादा बेहतर और एक जैसा होता है. इसके अलावा, कुछ समय तक डिवाइस का इस्तेमाल न करने के बाद, Android अगले टच इवेंट पर सीपीयू इनपुट बूस्ट लागू करता है. इससे यह पक्का किया जाता है कि कोई भी देरी न हो.
टूल की मदद से, अपने ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाया जा सकता है. Android 4.1 को systrace नाम के नए टूल के साथ काम करने के लिए डिज़ाइन किया गया है. यह टूल, सिस्टम की गतिविधियों की पूरी जानकारी देने के लिए, सीधे Linux kernel से डेटा इकट्ठा करता है. डेटा को वर्टिकल तौर पर स्टैक किए गए टाइम सीरीज़ ग्राफ़ के ग्रुप के तौर पर दिखाया जाता है. इससे रेंडरिंग में आने वाली रुकावटों और दूसरी समस्याओं को अलग करने में मदद मिलती है. यह टूल अब Android SDK (Tools R20 या इसके बाद के वर्शन) में उपलब्ध है
बेहतर सुलभता
सुलभता सेवाओं के लिए नए एपीआई की मदद से, जेस्चर मैनेज किए जा सकते हैं. साथ ही, सुलभता फ़ोकस को भी मैनेज किया जा सकता है. ऐसा तब होता है, जब उपयोगकर्ता सुलभता जेस्चर, ऐक्सेसरी, और अन्य इनपुट का इस्तेमाल करके, स्क्रीन पर मौजूद एलिमेंट और नेविगेशन बटन पर जाता है. TalkBack सिस्टम और टच करके एक्सप्लोर करने की सुविधा को फिर से डिज़ाइन किया गया है, ताकि इसे आसानी से इस्तेमाल किया जा सके. साथ ही, डेवलपर के लिए एपीआई का पूरा सेट उपलब्ध कराया जा सके.
सुलभता से जुड़ी सेवाएं, सुलभता सेटिंग में अपने ट्यूटोरियल जोड़ सकती हैं. इससे, उपयोगकर्ताओं को अपनी सेवाओं को कॉन्फ़िगर करने और इस्तेमाल करने में मदद मिलती है.
स्टैंडर्ड व्यू कॉम्पोनेंट का इस्तेमाल करने वाले ऐप्लिकेशन, सुलभता से जुड़ी नई सुविधाओं के लिए अपने-आप सहायता पाते हैं. इसके लिए, उन्हें अपने कोड में कोई बदलाव नहीं करना पड़ता. कस्टम व्यू का इस्तेमाल करने वाले ऐप्लिकेशन, सुलभता नोड के नए एपीआई का इस्तेमाल करके, व्यू के उन हिस्सों को दिखा सकते हैं जो सुलभता सेवाओं के लिए काम के हैं.
अंतरराष्ट्रीय उपयोगकर्ताओं के लिए सहायता
टेक्स्ट का एक से दूसरी भाषा में अनुवाद करने की सुविधा और अन्य भाषाओं के लिए सहायता
Android 4.1 में TextView और EditText एलिमेंट में दोनों दिशाओं में टेक्स्ट की सुविधा उपलब्ध है. इसकी मदद से, ज़्यादा उपयोगकर्ताओं तक पहुंचा जा सकता है. ऐप्लिकेशन, बाएं से दाएं या दाएं से बाएं स्क्रिप्ट में टेक्स्ट दिखा सकते हैं या टेक्स्ट में बदलाव कर सकते हैं. ऐप्लिकेशन, नई ऐरेबिक और हिब्रू भाषाओं और उनसे जुड़े फ़ॉन्ट का इस्तेमाल कर सकते हैं.
नई भाषाओं के लिए सहायता के अन्य टाइप में ये शामिल हैं:
- अन्य भारतीय भाषाएं: कन्नड़, तेलुगु, और मलयालम
- यूनिकोड वर्शन 6.0 के नए इमोजी वर्ण
- जैपनीज़ उपयोगकर्ताओं के लिए बेहतर ग्लिफ़ सहायता (सिस्टम की भाषा जैपनीज़ पर सेट होने पर, जैपनीज़ के हिसाब से ग्लिफ़ रेंडर करता है)
- TextViews के लिए ऐरेबिक ग्लिफ़ के साथ-साथ, वेबव्यू के लिए ऑप्टिमाइज़ किए गए ऐरेबिक ग्लिफ़
- वेबव्यू में वर्टिकल टेक्स्ट की सुविधा, जिसमें रूबी टेक्स्ट और अन्य वर्टिकल टेक्स्ट ग्लिफ़ शामिल हैं
- सिंथेटिक बोल्ड अब उन सभी फ़ॉन्ट के लिए उपलब्ध है जिनमें बोल्ड ग्लिफ़ नहीं हैं
उपयोगकर्ता के इंस्टॉल किए जा सकने वाले कीमैप
इस प्लैटफ़ॉर्म पर अब उपयोगकर्ता के इंस्टॉल किए जा सकने वाले कीबोर्ड मैप काम करते हैं. जैसे, अन्य इंटरनैशनल कीबोर्ड और खास लेआउट टाइप. Android 4.1 में डिफ़ॉल्ट रूप से, कीबोर्ड के लिए 27 इंटरनेशनल कीमैप शामिल होते हैं. इनमें Dvorak भी शामिल है. जब उपयोगकर्ता किसी कीबोर्ड को कनेक्ट करते हैं, तो वे Settings ऐप्लिकेशन में जाकर, एक या उससे ज़्यादा कीमैप चुन सकते हैं. टाइप करते समय, उपयोगकर्ता शॉर्टकट (ctrl-space) का इस्तेमाल करके, कीमैप के बीच स्विच कर सकते हैं.
सिस्टम में अतिरिक्त कीमैप पब्लिश करने के लिए, कोई ऐप्लिकेशन बनाया जा सकता है. APK में, Android के स्टैंडर्ड कीमैप फ़ॉर्मैट के आधार पर, कीबोर्ड लेआउट के संसाधन शामिल होंगे. ऐप्लिकेशन, अपने मेनिफ़ेस्ट में ACTION_QUERY_KEYBOARD_LAYOUTS के लिए सही ब्रॉडकास्ट रिसीवर का एलान करके, उपयोगकर्ता को अतिरिक्त कीबोर्ड लेआउट ऑफ़र कर सकता है.
खूबसूरत यूज़र इंटरफ़ेस (यूआई) बनाने के नए तरीके
बड़ी करके देखी जा सकने वाली सूचनाएं
सूचनाएं, Android पर लंबे समय से एक खास और लोकप्रिय सुविधा रही हैं. डेवलपर इनका इस्तेमाल करके, उपयोगकर्ताओं को ऐप्लिकेशन के सामान्य यूज़र इंटरफ़ेस (यूआई) के बाहर, सूचना बार में ज़रूरी या समय के हिसाब से जानकारी दिखा सकते हैं.
Android 4.1 में, Android के सूचना फ़्रेमवर्क में एक बड़ा अपडेट किया गया है. ऐप्लिकेशन अब उपयोगकर्ताओं को बड़ी और बेहतर सूचनाएं दिखा सकते हैं. इन्हें पिंच या स्वाइप करके बड़ा और छोटा किया जा सकता है. सूचनाओं में नए तरह के कॉन्टेंट का इस्तेमाल किया जा सकता है. जैसे, फ़ोटो. साथ ही, सूचनाओं की प्राथमिकता को कॉन्फ़िगर किया जा सकता है. इनमें एक से ज़्यादा कार्रवाइयां भी शामिल की जा सकती हैं.
बेहतर सूचना बिल्डर की मदद से, ऐप्लिकेशन ऐसी सूचनाएं बना सकते हैं जिनमें ज़्यादा जगह का इस्तेमाल किया जा सकता है. इन सूचनाओं की ऊंचाई 256 डीपी तक हो सकती है. टेंप्लेट वाली सूचना के तीन स्टाइल उपलब्ध हैं:
- BigTextStyle — एक ऐसी सूचना जिसमें एक से ज़्यादा लाइन वाला TextView ऑब्जेक्ट शामिल होता है.
- BigInboxStyle — यह सूचना किसी भी तरह की सूची दिखाती है. जैसे, मैसेज, हेडलाइन वगैरह.
- BigPictureStyle — ऐसी सूचना जिसमें बिटमैप जैसे विज़ुअल कॉन्टेंट को दिखाया जाता है.
टेंप्लेट वाले स्टाइल के अलावा, किसी भी रिमोट व्यू का इस्तेमाल करके, सूचना के लिए अपने स्टाइल बनाए जा सकते हैं.
ऐप्लिकेशन, सूचना में ज़्यादा से ज़्यादा तीन कार्रवाइयां जोड़ सकते हैं. ये कार्रवाइयां, सूचना के कॉन्टेंट के नीचे दिखती हैं. इन कार्रवाइयों की मदद से, उपयोगकर्ता सूचना में दी गई जानकारी का जवाब, ऐप्लिकेशन पर जाकर दिए बिना भी दे सकते हैं. जैसे, ईमेल या फ़ोन कॉल करके.
बड़ा की जा सकने वाली सूचनाओं की मदद से, ऐप्लिकेशन उपयोगकर्ता को आसानी से और मांग पर ज़्यादा जानकारी दे सकते हैं. उपयोगकर्ता के पास सूचनाओं को कंट्रोल करने का विकल्प होता है. वे सूचना भेजने वाले व्यक्ति के बारे में जानकारी पाने के लिए, किसी भी सूचना को दबाकर रख सकते हैं. साथ ही, वे ऐप्लिकेशन से आने वाली सूचनाओं को बंद भी कर सकते हैं.
साइज़ बदलने की सुविधा वाले ऐप्लिकेशन विजेट
Android 4.1 में बेहतर ऐप्लिकेशन विजेट की सुविधा जोड़ी गई है. ये विजेट, अपने-आप साइज़ बदल सकते हैं. यह इस बात पर निर्भर करता है कि उपयोगकर्ता ने उन्हें होम स्क्रीन पर कहां जोड़ा है, उन्हें किस साइज़ में बड़ा किया है, और होम स्क्रीन पर कितना खाली जगह है. नए ऐप्लिकेशन विजेट एपीआई की मदद से, विजेट के साइज़ में बदलाव होने पर, अपने ऐप्लिकेशन विजेट के कॉन्टेंट को ऑप्टिमाइज़ किया जा सकता है.
जब किसी विजेट का साइज़ बदलता है, तो सिस्टम होस्ट ऐप्लिकेशन के विजेट प्रोवाइडर को इसकी सूचना देता है. इसके बाद, विजेट प्रोवाइडर ज़रूरत के हिसाब से विजेट में कॉन्टेंट को फिर से लोड कर सकता है. उदाहरण के लिए, विजेट में बड़े और बेहतर ग्राफ़िक या अतिरिक्त सुविधाएं या विकल्प दिखाए जा सकते हैं. डेवलपर के पास अब भी ज़्यादा से ज़्यादा और कम से कम साइज़ पर कंट्रोल होता है. साथ ही, वे ज़रूरत पड़ने पर विजेट के अन्य विकल्पों को अपडेट कर सकते हैं.
अपने विजेट के लिए, लैंडस्केप और पोर्ट्रेट मोड के अलग-अलग लेआउट भी दिए जा सकते हैं. स्क्रीन का ओरिएंटेशन बदलने पर, सिस्टम उन्हें ज़रूरत के हिसाब से बड़ा कर देता है.
ऐप्लिकेशन विजेट अब तीसरे पक्ष के लॉन्चर और अन्य होस्ट ऐप्लिकेशन में दिखाए जा सकते हैं. इसके लिए, नए बाइंड इंटेंट (AppWidgetManager.ACTION_APPWIDGET_BIND) का इस्तेमाल किया जाता है.
टास्क के बीच आसानी से नेविगेट करना
Android 4.1 की मदद से, “अप” नेविगेशन को आसानी से मैनेज किया जा सकता है. यह नेविगेशन, आपके ऐप्लिकेशन में उपयोगकर्ताओं के लिए उपलब्ध होता है. इससे, उपयोगकर्ताओं को एक जैसा अनुभव मिलता रहता है.
ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में नया एक्सएमएल एट्रिब्यूट जोड़कर, अपने यूज़र इंटरफ़ेस (यूआई) के अलग-अलग ऐक्टिविटी कॉम्पोनेंट के लिए, अप नेविगेशन तय किया जा सकता है. रन टाइम पर, गतिविधियां लॉन्च होने पर, सिस्टम मेनिफ़ेस्ट फ़ाइल से अप नेविगेशन ट्री को निकालता है और ऐक्शन बार में अप ऐफ़र्डेंस नेविगेशन को अपने-आप बनाता है. जिन डेवलपर ने मेनिफ़ेस्ट में अप नेविगेशन का एलान किया है उन्हें अब रन टाइम पर कॉलबैक की मदद से नेविगेशन मैनेज करने की ज़रूरत नहीं है. हालांकि, ज़रूरत पड़ने पर वे ऐसा कर सकते हैं.
TaskStackBuilder की एक नई क्लास भी उपलब्ध है. इसकी मदद से, तुरंत शुरू करने या PendingIntent से किसी गतिविधि को लॉन्च करने के लिए, सिंथेटिक टास्क स्टैक को तुरंत बनाया जा सकता है. सिंथेटिक टास्क स्टैक बनाना तब खास तौर पर मददगार होता है, जब उपयोगकर्ता होम स्क्रीन विजेट और सूचनाओं जैसे रिमोट व्यू से गतिविधियां लॉन्च करते हैं. ऐसा इसलिए, क्योंकि इससे डेवलपर को बैक नेविगेशन पर मैनेज किया जा सकने वाला और एक जैसा अनुभव देने में मदद मिलती है.
गतिविधि लॉन्च करने के लिए आसान ऐनिमेशन
गतिविधियां लॉन्च करने पर दिखने वाले ऐनिमेशन को बनाने और कंट्रोल करने के लिए, ActivityOptions नाम की नई हेल्पर क्लास का इस्तेमाल किया जा सकता है. हेल्पर क्लास की मदद से, गतिविधि शुरू होने पर इस्तेमाल किए जाने वाले कस्टम ऐनिमेशन संसाधनों के बारे में बताया जा सकता है. इसके अलावा, स्क्रीन पर बताए गए किसी भी रेक्टैंगल से शुरू होने वाले नए ज़ूम ऐनिमेशन का अनुरोध किया जा सकता है. इसमें थंबनेल बिटमैप भी शामिल किया जा सकता है.
लाइट बंद करने और फ़ुल स्क्रीन मोड पर स्विच करने के लिए ट्रांज़िशन
व्यू में मौजूद नए सिस्टम यूज़र इंटरफ़ेस (यूआई) फ़्लैग की मदद से, ऐप्लिकेशन के सामान्य यूज़र इंटरफ़ेस (जिसमें ऐक्शन बार, नेविगेशन बार, और सिस्टम बार दिखता है) से "लाइट आउट मोड" (जिसमें स्टेटस बार और ऐक्शन बार छिपा होता है और नेविगेशन बार की रोशनी कम होती है) या "फ़ुल स्क्रीन मोड" (जिसमें स्टेटस बार, ऐक्शन बार, और नेविगेशन बार सभी छिपे होते हैं) पर आसानी से स्विच किया जा सकता है.
रिमोट से कंट्रोल किए जा सकने वाले नए व्यू
डेवलपर अब होम स्क्रीन विजेट और सूचनाओं में, GridLayout और ViewStub व्यू का इस्तेमाल कर सकते हैं. GridLayout की मदद से, अपने रिमोट व्यू के कॉन्टेंट को व्यवस्थित किया जा सकता है. साथ ही, यूज़र इंटरफ़ेस (यूआई) की हैरारकी को कम करके, चाइल्ड व्यू के अलाइनमेंट को मैनेज किया जा सकता है. ViewStub एक ऐसा व्यू है जो न तो दिखता है और न ही उसका कोई साइज़ होता है. इसका इस्तेमाल, रनटाइम के दौरान लेआउट संसाधनों को धीरे-धीरे फ़्लोर करने के लिए किया जा सकता है.
एनीमेशन वाले वॉलपेपर की झलक
Android 4.1 में, उपयोगकर्ताओं के लिए लाइव वॉलपेपर ढूंढना और इंस्टॉल करना आसान हो गया है. इसके लिए, उन्हें ऐसे ऐप्लिकेशन डाउनलोड करने होंगे जिनमें लाइव वॉलपेपर उपलब्ध हों. अगर आपके ऐप्लिकेशन में लाइव वॉलपेपर शामिल हैं, तो अब आपके पास एक ऐसी गतिविधि (ACTION_CHANGE_LIVE_WALLPAPER) शुरू करने का विकल्प है जो उपयोगकर्ता को आपके ऐप्लिकेशन से लाइव वॉलपेपर की झलक दिखाती है. झलक देखकर, उपयोगकर्ता सीधे लाइव वॉलपेपर को लोड कर सकते हैं.
संपर्क की फ़ोटो का हाई रिज़ॉल्यूशन
Android 4.1 में, संपर्क फ़ोटो को 720 x 720 तक के साइज़ में सेव किया जा सकता है. इससे संपर्कों को ज़्यादा बेहतर और निजी बनाया जा सकता है. ऐप्लिकेशन, संपर्कों की फ़ोटो को उस साइज़ में सेव और वापस ला सकते हैं या ज़रूरत के हिसाब से किसी भी साइज़ का इस्तेमाल कर सकते हैं. अलग-अलग डिवाइसों पर, फ़ोटो का ज़्यादा से ज़्यादा साइज़ अलग-अलग हो सकता है. इसलिए, ऐप्लिकेशन को रन टाइम पर डिवाइस में पहले से मौजूद संपर्क सेवा देने वाली कंपनी से क्वेरी करनी चाहिए, ताकि मौजूदा डिवाइस के लिए फ़ोटो का ज़्यादा से ज़्यादा साइज़ पता चल सके.
नए इनपुट टाइप और सुविधाएं
जोड़े और हटाए गए डिवाइसों के बारे में जानकारी
जब कोई नया इनपुट डिवाइस, यूएसबी, ब्लूटूथ या किसी अन्य तरह के कनेक्शन से कनेक्ट किया जाता है, तो ऐप्लिकेशन सूचना पाने के लिए रजिस्टर कर सकते हैं. वे इस जानकारी का इस्तेमाल, ज़रूरत के हिसाब से स्थिति या सुविधाओं में बदलाव करने के लिए कर सकते हैं. उदाहरण के लिए, किसी गेम को सूचना मिल सकती है कि कोई नया कीबोर्ड या जॉयस्टिक अटैच किया गया है. इससे यह पता चलता है कि कोई नया प्लेयर जुड़ा है.
इनपुट डिवाइसों की क्षमताओं के बारे में क्वेरी करना
Android 4.1 में ऐसे एपीआई शामिल हैं जिनकी मदद से, ऐप्लिकेशन और गेम, कनेक्ट किए गए और उपलब्ध सभी इनपुट डिवाइसों का पूरा फ़ायदा ले सकते हैं.
ऐप्लिकेशन, डिवाइस मैनेजर से क्वेरी कर सकते हैं, ताकि वे फ़िलहाल अटैच किए गए सभी इनपुट डिवाइसों की जानकारी पा सकें और हर डिवाइस की क्षमताओं के बारे में जान सकें.
इनपुट डिवाइसों पर वाइब्रेटर को कंट्रोल करना
अन्य सुविधाओं के अलावा, ऐप्लिकेशन अब अटैच किए गए इनपुट डिवाइस से जुड़ी किसी भी वाइब्रेटर सेवा का इस्तेमाल कर सकते हैं. जैसे, Rumble Pak कंट्रोलर के लिए.
ऐनिमेशन और ग्राफ़िक्स
ऐप्लिकेशन के लिए Vsync
Android फ़्रेमवर्क में vsync को बढ़ाने से, फ़्रेम रेट ज़्यादा स्थिर होता है. साथ ही, यूज़र इंटरफ़ेस (यूआई) भी बेहतर और स्मूद होता है. ऐप्लिकेशन को भी फ़ायदा मिले, इसके लिए Android 4.1 में, ऐप्लिकेशन से शुरू किए गए सभी ड्रॉइंग और ऐनिमेशन के लिए vsync टाइमिंग बढ़ा दी गई है. इससे, यूज़र इंटरफ़ेस (यूआई) थ्रेड पर ऑपरेशन को ऑप्टिमाइज़ किया जा सकता है. साथ ही, सिंक करने के लिए एक स्थिर टाइमबेस मिलता है.
ऐप्लिकेशन, Android के ऐनिमेशन फ़्रेमवर्क की मदद से, बिना किसी शुल्क के vsync टाइमिंग का फ़ायदा ले सकते हैं. ऐनिमेशन फ़्रेमवर्क अब सभी ऐनिमेटर्स के सिंक को अपने-आप मैनेज करने के लिए, vsync टाइमिंग का इस्तेमाल करता है.
खास इस्तेमाल के लिए, ऐप्लिकेशन नई Choreographer क्लास से एक्सपोज़ किए गए एपीआई की मदद से, vsync टाइमिंग ऐक्सेस कर सकते हैं. ऐप्लिकेशन, अगले vsync फ़्रेम पर अमान्य होने का अनुरोध कर सकते हैं. यह ऐनिमेशन को शेड्यूल करने का एक अच्छा तरीका है, जब ऐप्लिकेशन ऐनिमेशन फ़्रेमवर्क का इस्तेमाल नहीं कर रहा हो. ज़्यादा बेहतर तरीके से इस्तेमाल करने के लिए, ऐप्लिकेशन एक कॉलबैक पोस्ट कर सकते हैं. इससे, Choreographer क्लास अगले फ़्रेम पर चलेगी.
नए ऐनिमेशन ऐक्शन और ट्रांज़िशन टाइप
ऐनिमेशन फ़्रेमवर्क की मदद से, अब ViewPropertyAnimator ऐनिमेशन चलाते समय, शुरू और खत्म होने की कार्रवाइयां तय की जा सकती हैं. इससे, ऐनिमेशन को ऐप्लिकेशन में मौजूद अन्य ऐनिमेशन या कार्रवाइयों के साथ सिंक करने में मदद मिलती है. यह कार्रवाई, चलाए जा सकने वाले किसी भी ऑब्जेक्ट को चला सकती है. उदाहरण के लिए, हो सकता है कि पिछले ऐनिमेशन के खत्म होने पर, रननेबल किसी दूसरे ऐनिमेशन को शुरू करने के लिए कहे.
अब यह भी तय किया जा सकता है कि ViewPropertyAnimator, ऐनिमेशन के दौरान किसी लेयर का इस्तेमाल करे. पहले, ऐनिमेशन शुरू करने से पहले लेयर सेट अप करके, मुश्किल व्यू को ऐनिमेट करना सबसे अच्छा तरीका था. इसके बाद, ऐनिमेशन खत्म होने पर लेयर को हटाने के लिए, onAnimationEnd() इवेंट को मैनेज किया जाता था. अब ViewPropertyAnimator पर withLayer() तरीके की मदद से, एक ही तरीके के कॉल से यह प्रोसेस आसान हो गई है.
LayoutTransition में एक नया ट्रांज़िशन टाइप जोड़ा गया है. इसकी मदद से, ViewGroup में लेआउट में होने वाले सभी बदलावों के हिसाब से ऐनिमेशन अपने-आप चलने लगते हैं.
कनेक्टिविटी के नए तरीके
Android बीम
Android Beam, एनएफ़सी पर आधारित एक लोकप्रिय टेक्नोलॉजी है. इसकी मदद से, उपयोगकर्ता एनएफ़सी की सुविधा वाले दो फ़ोन को एक-दूसरे से छूकर, फ़ाइलें तुरंत शेयर कर सकते हैं.
Android 4.1 में, Android Beam की मदद से इमेज, वीडियो या अन्य पेलोड आसानी से शेयर किए जा सकते हैं. इसके लिए, डेटा ट्रांसफ़र के लिए ब्लूटूथ का इस्तेमाल किया जाता है. जब उपयोगकर्ता ट्रांसफ़र ट्रिगर करता है, तो Android Beam, NFC से ब्लूटूथ पर स्विच कर देता है. इससे, किसी फ़ाइल को एक डिवाइस से दूसरे डिवाइस पर ट्रांसफ़र करना बहुत आसान हो जाता है.
वाई-फ़ाई नेटवर्क की सेवा की जानकारी
Android 4.1 में मल्टीकास्ट डीएनएस-आधारित सेवा खोजने की सुविधा जोड़ी गई है. इसकी मदद से, ऐप्लिकेशन वाई-फ़ाई नेटवर्क पर, पीयर डिवाइसों से मिलने वाली सेवाओं को ढूंढ सकते हैं और उनसे कनेक्ट कर सकते हैं. इन डिवाइसों में मोबाइल डिवाइस, प्रिंटर, कैमरे, मीडिया प्लेयर वगैरह शामिल हैं. डेवलपर, क्रॉस-प्लैटफ़ॉर्म या मल्टीप्लेयर गेम और ऐप्लिकेशन के अनुभव बनाने के लिए, वाई-फ़ाई नेटवर्क सेवा की खोज की सुविधा का फ़ायदा ले सकते हैं.
सेवा खोजने वाले एपीआई का इस्तेमाल करके, ऐप्लिकेशन किसी भी तरह की सेवा बना सकते हैं और उसे रजिस्टर कर सकते हैं. इससे, एनएसडी की सुविधा वाले किसी भी दूसरे डिवाइस को सेवा खोजने में मदद मिलती है. इस सेवा का विज्ञापन, नेटवर्क पर मल्टीकास्ट करके दिखाया जाता है. इसके लिए, ऐसी स्ट्रिंग आइडेंटिफ़ायर का इस्तेमाल किया जाता है जिसे कोई भी व्यक्ति पढ़ सकता है. इससे, उपयोगकर्ता को सेवा के टाइप की पहचान करने में आसानी होती है.
उपभोक्ता डिवाइस, लोकल वाई-फ़ाई नेटवर्क से कनेक्ट किए गए डिवाइसों से उपलब्ध सेवाओं को स्कैन करने और ढूंढने के लिए, एपीआई का इस्तेमाल कर सकते हैं. डिस्कवरी के बाद, ऐप्लिकेशन एपीआई का इस्तेमाल करके, सेवा को किसी ऐसे आईपी पते और पोर्ट पर रीज़ॉल्व कर सकते हैं जिससे वे सॉकेट कनेक्शन बना सकें.
अपने ऐप्लिकेशन में नई सुविधाएं बनाने के लिए, इस एपीआई का फ़ायदा लिया जा सकता है. उदाहरण के लिए, उपयोगकर्ताओं को किसी वेबकैम, प्रिंटर या किसी दूसरे मोबाइल डिवाइस पर मौजूद ऐप्लिकेशन से कनेक्ट करने की अनुमति दी जा सकती है. हालांकि, इसके लिए ज़रूरी है कि उस डिवाइस पर वाई-फ़ाई पीयर-टू-पीयर कनेक्शन की सुविधा काम करती हो.
वाई-फ़ाई पीयर-टू-पीयर सेवा की जानकारी
Ice Cream Sandwich में, वाई-फ़ाई पीयर-टू-पीयर (पी2पी) के लिए सहायता शुरू की गई थी. यह एक ऐसी टेक्नोलॉजी है जिसकी मदद से ऐप्लिकेशन, ज़्यादा बैंडविड्थ वाले पीयर-टू-पीयर कनेक्शन पर, सीधे तौर पर डिस्कवर और जोड़े जा सकते हैं. यह सुविधा, Wi-Fi Alliance के Wi-Fi Direct™ सर्टिफ़िकेशन प्रोग्राम के मुताबिक काम करती है. वाई-फ़ाई पीयर-टू-पीयर (P2P) सुविधा का इस्तेमाल करके, मीडिया, फ़ोटो, फ़ाइलें, और अन्य तरह का डेटा और सेशन शेयर किया जा सकता है. भले ही, आपके पास मोबाइल नेटवर्क या वाई-फ़ाई उपलब्ध न हो.
Android 4.1 में वाई-फ़ाई पी2पी को और बेहतर बनाया गया है. इसमें पहले से जुड़ी सेवा की खोज के लिए एपीआई की सुविधा जोड़ी गई है. सेवा के साथ पहले से जुड़े होने की सुविधा की मदद से, आपके ऐप्लिकेशन आस-पास मौजूद डिवाइसों से, उन सेवाओं के बारे में ज़्यादा काम की जानकारी पा सकते हैं जिनके साथ वे काम करते हैं. ऐसा, कनेक्ट करने की कोशिश करने से पहले किया जाता है. ऐप्लिकेशन किसी खास सेवा के लिए डिस्कवरी शुरू कर सकते हैं. साथ ही, टारगेट की गई सेवा या ऐप्लिकेशन के साथ काम करने वाले डिवाइसों की सूची को फ़िल्टर कर सकते हैं.
उदाहरण के लिए, इसका मतलब है कि आपका ऐप्लिकेशन आस-पास मौजूद सभी वाई-फ़ाई पी2पी डिवाइसों को खोजने के बजाय, सिर्फ़ “प्रिंटर” या कोई खास गेम उपलब्ध होने वाले डिवाइसों को खोज सकता है. दूसरी ओर, आपका ऐप्लिकेशन अन्य डिवाइसों को अपनी सेवा का विज्ञापन दिखा सकता है. इससे, वे डिवाइस उस सेवा को खोज सकते हैं और फिर कनेक्ट हो सकते हैं. इससे, उपयोगकर्ताओं के लिए डिवाइसों को ढूंढना और उनसे जोड़ना काफ़ी आसान हो जाता है. साथ ही, ऐप्लिकेशन को वाई-फ़ाई पी2पी का ज़्यादा असरदार तरीके से फ़ायदा लेने में मदद मिलती है.
वाई-फ़ाई पीयर-टू-पीयर (P2P) सेवा डिस्कवरी की मदद से, ऐसे ऐप्लिकेशन और मल्टीप्लेयर गेम बनाए जा सकते हैं जिनमें फ़ोटो, वीडियो, गेमप्ले, स्कोर या अन्य चीज़ें शेयर की जा सकती हैं. इसके लिए, इंटरनेट या मोबाइल नेटवर्क की ज़रूरत नहीं होती. आपके उपयोगकर्ता, सिर्फ़ सीधे पीयर-टू-पीयर कनेक्शन का इस्तेमाल करके कनेक्ट कर सकते हैं. इससे मोबाइल बैंडविड्थ का इस्तेमाल नहीं होता.
नेटवर्क बैंडविड्थ मैनेजमेंट
Android 4.1, ऐप्लिकेशन को डेटा खर्च को मैनेज करने में मदद करता है. ऐसा तब होता है, जब डिवाइस मेज़र किए गए नेटवर्क से कनेक्ट हो. इसमें मोबाइल हॉटस्पॉट से टेदरिंग भी शामिल है. ऐप्लिकेशन, बड़े डाउनलोड शुरू करने से पहले यह क्वेरी कर सकते हैं कि मौजूदा नेटवर्क पर डेटा का इस्तेमाल मेज़र किया जाता है या नहीं. ऐसा इसलिए किया जाता है, ताकि उपयोगकर्ता को ज़्यादा शुल्क न देना पड़े. एपीआई की मदद से, अब यह साफ़ तौर पर पता लगाया जा सकता है कि कौनसे नेटवर्क डेटा के इस्तेमाल के हिसाब से संवेदनशील हैं. साथ ही, अपनी नेटवर्क गतिविधि को उसी हिसाब से मैनेज किया जा सकता है.
न्यू मीडिया की सुविधाएं
मीडिया कोडेक का ऐक्सेस
Android 4.1, प्लैटफ़ॉर्म के हार्डवेयर और सॉफ़्टवेयर कोडेक का लो-लेवल ऐक्सेस देता है. ऐप्लिकेशन, सिस्टम से क्वेरी करके यह पता लगा सकते हैं कि डिवाइस पर कौनसे लो-लेवल मीडिया कोडेक उपलब्ध हैं. इसके बाद, वे अपनी ज़रूरत के हिसाब से उनका इस्तेमाल कर सकते हैं. उदाहरण के लिए, अब मीडिया कोडेक के कई इंस्टेंस बनाए जा सकते हैं, इनपुट बफ़र को लाइन में लगाया जा सकता है, और बदले में आउटपुट बफ़र पाए जा सकते हैं. इसके अलावा, मीडिया कोडेक फ़्रेमवर्क, सुरक्षित कॉन्टेंट के साथ काम करता है. ऐप्लिकेशन, डिवाइस पर उपलब्ध डीआरएम सलूशन की मदद से, सुरक्षित कॉन्टेंट चलाने वाले उपलब्ध कोडेक के लिए क्वेरी कर सकते हैं.
यूएसबी ऑडियो
यूएसबी ऑडियो आउटपुट की सुविधा की मदद से, हार्डवेयर वेंडर, Android डिवाइसों के साथ काम करने वाले ऑडियो डॉक जैसे हार्डवेयर बना सकते हैं. यह सुविधा, Android ओपन ऐक्सेसरी डेवलपमेंट किट (ADK) के साथ भी उपलब्ध है. इससे सभी डेवलपर को अपना हार्डवेयर बनाने का मौका मिलता है.
ऑडियो रिकॉर्डिंग ट्रिगर करना
Android की मदद से, अब ऑडियो चलाने वाले ट्रैक के खत्म होने पर, ऑडियो रिकॉर्डिंग ट्रिगर की जा सकती है. यह सुविधा कई कामों में काम आती है. जैसे, उपयोगकर्ताओं को अपनी आवाज़ रिकॉर्ड करने के लिए, कोई टोन चलाकर उन्हें बोलने के लिए कहना. इस सुविधा की मदद से, रिकॉर्डिंग को सिंक किया जा सकता है. इससे, आपको वह ऑडियो रिकॉर्ड करने से बचने में मदद मिलती है जो फ़िलहाल चल रहा है. साथ ही, रिकॉर्डिंग शुरू होने में होने वाली देरी को भी कम किया जा सकता है.
मल्टीचैनल ऑडियो
Android 4.1, उन डिवाइसों पर मल्टीचैनल ऑडियो की सुविधा देता है जिनमें एचडीएमआई पोर्ट के ज़रिए हार्डवेयर मल्टीचैनल ऑडियो आउट होता है. मल्टीचैनल ऑडियो की मदद से, गेम, संगीत ऐप्लिकेशन, और वीडियो प्लेयर जैसे ऐप्लिकेशन के लिए, उपयोगकर्ताओं को रिच मीडिया का अनुभव दिया जा सकता है. जिन डिवाइसों में मल्टी-चैनल ऑडियो की सुविधा काम नहीं करती उनके लिए, Android ऑडियो को अपने-आप डाउनमिक्स कर देता है. यह डाउनमिक्सिंग, डिवाइस में काम करने वाले चैनलों की संख्या के हिसाब से होती है. आम तौर पर, यह स्टीरियो चैनलों के हिसाब से होती है.
Android 4.1 में, AAC 5.1 ऑडियो को एन्कोड/डिकोड करने के लिए, बिल्ट-इन सुविधा भी जोड़ी गई है.
ऑडियो को पहले से प्रोसेस करना
डेवलपर, रिकॉर्ड किए जा रहे ऑडियो पर प्रीप्रोसेसिंग इफ़ेक्ट लागू कर सकते हैं. जैसे, आवाज़ की रिकॉर्डिंग की क्वालिटी को बेहतर बनाने के लिए, शोर कम करने की सुविधा लागू करना, अकूस्टिक गूंज को कम करने के लिए गूंज हटाने की सुविधा लागू करना, और ऑडियो के वॉल्यूम लेवल में अंतर होने पर, ऑटो गेन कंट्रोल लागू करना. जिन ऐप्लिकेशन को अच्छी क्वालिटी और साफ़ ऑडियो रिकॉर्डिंग की ज़रूरत होती है उन्हें इन प्रीप्रोसेसिंग टूल से फ़ायदा मिलेगा.
ऑडियो चैन चेन
MediaPlayer, ऑडियो स्ट्रीम को एक साथ जोड़ने की सुविधा देता है, ताकि ऑडियो फ़ाइलों को बिना रुकावट के चलाया जा सके. यह उन ऐप्लिकेशन के लिए काम का है जिन्हें ऑडियो फ़ाइलों के बीच आसानी से ट्रांज़िशन करने की ज़रूरत होती है. जैसे, संगीत चलाने वाले ऐप्लिकेशन, लगातार ट्रैक वाले एल्बम चलाने के लिए या गेम.
मीडिया राऊटर
MediaRouter, MediaRouteActionProvider, और MediaRouteButton जैसे नए एपीआई, मीडिया को चलाने के लिए जगह चुनने के लिए स्टैंडर्ड तरीके और यूज़र इंटरफ़ेस (यूआई) उपलब्ध कराते हैं. यह सुविधा, वायर वाले हेडसेट और a2dp ब्लूटूथ हेडसेट और स्पीकर के लिए पहले से मौजूद है. साथ ही, अपने ऐप्लिकेशन में रूटिंग के विकल्प जोड़े जा सकते हैं.
Renderscript कंप्यूटेशन
Android 4.1 में, Renderscript कैलकुलेशन की सुविधा को बेहतर बनाया गया है, ताकि आपको ज़्यादा सुविधाएं मिल सकें. अब अपनी Renderscript कंप्यूट स्क्रिप्ट में, टेक्स्चर सैंपल किए जा सकते हैं. साथ ही, आपकी स्क्रिप्ट के लिए ज़रूरी फ़्लोटिंग पॉइंट की सटीक जानकारी देने के लिए, नए प्रैगमा उपलब्ध हैं. इससे, सीपीयू पाथ पर फ़ास्ट वेक्टर मैथ ऑपरेशन जैसे NEON निर्देश चालू किए जा सकते हैं. ऐसा, पूरे IEEE 754-2008 स्टैंडर्ड के साथ नहीं किया जा सकता.
अब x86-आधारित एमुलेटर और हार्डवेयर डिवाइसों पर, Renderscript की कंप्यूट स्क्रिप्ट को डीबग किया जा सकता है. एक ही Renderscript सोर्स फ़ाइल में, कई रूट-स्टाइल केर्नेल भी तय किए जा सकते हैं.
Android ब्राउज़र और वेबव्यू
Android 4.1 में, Android ब्राउज़र और वेबव्यू में ये सुधार शामिल हैं:
- HTML5 वीडियो का बेहतर उपयोगकर्ता अनुभव. इसमें टच करके चलाना/रोकना और इनलाइन से फ़ुल स्क्रीन मोड पर आसानी से ट्रांज़िशन करना शामिल है.
- स्क्रोल करने और ज़ूम करने की परफ़ॉर्मेंस को बेहतर बनाने के लिए, रेंडरिंग की स्पीड को बेहतर बनाया गया है और मेमोरी के इस्तेमाल को कम किया गया है.
- HTML5/CSS3/कैनवस ऐनिमेशन की परफ़ॉर्मेंस बेहतर हुई.
- बेहतर टेक्स्ट इनपुट.
- JavaScript की परफ़ॉर्मेंस को बेहतर बनाने के लिए, अपडेट किया गया JavaScript इंजन (V8).
- अपडेट किए गए HTML5 मीडिया कैप्चर स्पेसिफ़िकेशन (input type=file एलिमेंट पर "capture" एट्रिब्यूट) के साथ काम करता है.
Google के एपीआई और सेवाएं
Android की सुविधाओं को और बेहतर बनाने के लिए, Android के लिए कई नई सेवाएं उपलब्ध हैं.
Android के लिए Google Cloud Messaging
Google Cloud Messaging (GCM) एक ऐसी सेवा है जिसकी मदद से डेवलपर, Android डिवाइसों पर अपने उपयोगकर्ताओं को छोटे मैसेज का डेटा भेज सकते हैं. इसके लिए, उन्हें सिंक करने के किसी मालिकाना समाधान की ज़रूरत नहीं होती.
GCM, टारगेट किए गए Android डिवाइसों पर मैसेज को सूची में जोड़ने और उन्हें डिलीवर करने की सभी जानकारी को बेहतर तरीके से मैनेज करता है. यह मैसेज मल्टीकास्ट करने की सुविधा के साथ काम करता है. साथ ही, एक ही अनुरोध से कनेक्ट किए गए 1,000 डिवाइसों तक एक साथ पहुंच सकता है. यह मैसेज पेलोड के साथ भी काम करता है. इसका मतलब है कि डिवाइस पर किसी ऐप्लिकेशन को टिकल मैसेज भेजने के अलावा, डेवलपर 4K तक डेटा भेज सकते हैं.
Google Cloud Messaging का इस्तेमाल सभी डेवलपर के लिए मुफ़्त है. साथ ही, इसमें साइन अप करना आसान है. रजिस्टर करने, डाउनलोड करने, और दस्तावेज़ देखने के लिए, Google Cloud Messaging पेज पर जाएं.
ऐप्लिकेशन को एन्क्रिप्ट (सुरक्षित) करना
Android 4.1 से, Google Play, डिवाइस पर डिलीवर और सेव किए जाने से पहले, पैसे चुकाकर डाउनलोड किए जाने वाले सभी ऐप्लिकेशन को डिवाइस के हिसाब से बनाई गई कुंजी से एन्क्रिप्ट करके, ऐप्लिकेशन की एसेट को सुरक्षित रखने में मदद करेगा.
स्मार्ट ऐप्लिकेशन के अपडेट
स्मार्ट ऐप्लिकेशन अपडेट, Google Play की एक नई सुविधा है. इसकी मदद से, डिवाइसों पर ऐप्लिकेशन अपडेट को बेहतर तरीके से डिलीवर किया जा सकता है. जब डेवलपर कोई अपडेट पब्लिश करते हैं, तो Google Play अब डिवाइसों पर पूरे APK के बजाय, सिर्फ़ बदले गए हिस्से को डिलीवर करता है. इससे ज़्यादातर मामलों में अपडेट का साइज़ बहुत कम हो जाता है. इसलिए, उन्हें तेज़ी से डाउनलोड किया जा सकता है. साथ ही, इससे डिवाइस की बैटरी भी बचती है और उपयोगकर्ताओं के मोबाइल डेटा प्लान का बैंडविड्थ भी कम खर्च होता है. आम तौर पर, स्मार्ट ऐप्लिकेशन का अपडेट, पूरे APK अपडेट के 1/3 साइज़ का होता है.
Google Play सेवाएं
Google Play services की मदद से, डेवलपर अपने ऐप्लिकेशन में Google की सेवाओं को इंटिग्रेट कर सकते हैं. जैसे, पुष्टि करने की सुविधा. ये सेवाएं, Google Play से डिलीवर किए जाने वाले ऐप्लिकेशन में उपलब्ध होती हैं.
Google Play services, Google Play की मदद से उपयोगकर्ता के डिवाइसों पर अपने-आप प्रोवाइड हो जाता है. इसलिए, आपको अपने ऐप्लिकेशन में सिर्फ़ थिन क्लाइंट लाइब्रेरी की ज़रूरत है.
आपके ऐप्लिकेशन में सिर्फ़ छोटी क्लाइंट लाइब्रेरी होती है. इसलिए, डाउनलोड साइज़ और स्टोरेज फ़ुटप्रिंट में काफ़ी बढ़ोतरी किए बिना, इन सेवाओं का फ़ायदा लिया जा सकता है. साथ ही, Google Play इन सेवाओं के लिए नियमित तौर पर अपडेट उपलब्ध कराएगा. इनका फ़ायदा पाने के लिए, डेवलपर को ऐप्लिकेशन के अपडेट पब्लिश करने की ज़रूरत नहीं होगी.
Google Play services में शामिल एपीआई के बारे में ज़्यादा जानने के लिए, Google Play services डेवलपर पेज देखें.