Android 4.4 KitKat में आपका स्वागत है!
Android KitKat, Android की सभी नई, बेहतर, और काम की सुविधाओं को ज़्यादा से ज़्यादा डिवाइसों पर उपलब्ध कराता है.
इस दस्तावेज़ में, डेवलपर के लिए उपलब्ध नई सुविधाओं के बारे में बताया गया है.
उपभोक्ताओं के लिए KitKat के बारे में ज़्यादा जानने के लिए, www.android.com पर जाएं.
Android को सभी के लिए उपलब्ध कराना
Android 4.4 को पहले से ज़्यादा डिवाइसों पर तेज़ी से, आसानी से, और बेहतर तरीके से काम करने के लिए डिज़ाइन किया गया है. इनमें दुनिया भर के कम सुविधाओं वाले लाखों डिवाइस शामिल हैं जिनमें 512 एमबी रैम तक है.
KitKat, मेमोरी के इस्तेमाल को कम करने के लिए हर मुख्य कॉम्पोनेंट को बेहतर बनाता है. साथ ही, नए एपीआई और टूल भी उपलब्ध कराता है, ताकि आप नए, बेहतर, और मेमोरी के हिसाब से बेहतर ऐप्लिकेशन बना सकें.
अगली पीढ़ी के Android डिवाइस बनाने वाले OEM, टारगेट किए गए सुझावों और विकल्पों का फ़ायदा ले सकते हैं. इससे, कम मेमोरी वाले डिवाइसों पर भी Android 4.4 को बेहतर तरीके से चलाया जा सकता है. Dalvik JIT कोड कैश ट्यूनिंग, kernel samepage merging (KSM), zRAM में स्वैप करना, और अन्य ऑप्टिमाइज़ेशन की मदद से, मेमोरी को मैनेज किया जा सकता है. कॉन्फ़िगरेशन के नए विकल्पों की मदद से, OEM, प्रोसेस के लिए मेमोरी के लेवल को ट्यून कर सकते हैं. साथ ही, ग्राफ़िक कैश के साइज़ को सेट कर सकते हैं, मेमोरी को फिर से हासिल करने की सुविधा को कंट्रोल कर सकते हैं, और बहुत कुछ कर सकते हैं.
Android में किए गए बदलावों से, सिस्टम में मेमोरी मैनेजमेंट बेहतर होता है और मेमोरी फ़ुटप्रिंट कम होता है. कम हेप का इस्तेमाल करने के लिए, मुख्य सिस्टम प्रोसेस को छोटा किया गया है. साथ ही, अब वे ज़्यादा सिस्टम मेमोरी को सुरक्षित रखते हैं, ताकि ज़्यादा RAM का इस्तेमाल करने वाले ऐप्लिकेशन उस पर असर न डाल सकें. जब एक साथ कई सेवाएं शुरू होती हैं, जैसे कि नेटवर्क कनेक्टिविटी में बदलाव होने पर, Android अब सेवाओं को क्रम से लॉन्च करता है. इसके लिए, वह उन्हें छोटे ग्रुप में बांटता है, ताकि ज़्यादा मेमोरी का इस्तेमाल न करना पड़े.
डेवलपर के लिए, Android 4.4 की मदद से, सभी डिवाइसों पर बेहतर और तेज़ी से काम करने वाले ऐप्लिकेशन उपलब्ध कराए जा सकते हैं. ActivityManager.isLowRamDevice() नाम का नया एपीआई, डिवाइस के मेमोरी कॉन्फ़िगरेशन के हिसाब से, ऐप्लिकेशन के काम करने के तरीके को ट्यून करने की सुविधा देता है. ज़रूरत के हिसाब से, ज़्यादा मेमोरी वाली सुविधाओं में बदलाव किया जा सकता है या उन्हें बंद किया जा सकता है. ऐसा, उन इस्तेमाल के उदाहरणों के आधार पर किया जा सकता है जिन्हें आपको एंट्री-लेवल डिवाइसों पर इस्तेमाल करना है. कम मेमोरी वाले डिवाइसों के लिए, अपने ऐप्लिकेशन को ऑप्टिमाइज़ करने के बारे में ज़्यादा जानने के लिए यहां जाएं.
नए टूल से, आपको अपने ऐप्लिकेशन के मेमोरी इस्तेमाल के बारे में अहम जानकारी भी मिलती है. procstats टूल, समय के साथ मेमोरी के इस्तेमाल की जानकारी देता है. इसमें, फ़ोरग्राउंड ऐप्लिकेशन और बैकग्राउंड सेवाओं के लिए, रन टाइम और मेमोरी फ़ुटप्रिंट की जानकारी भी शामिल होती है. डिवाइस पर दिखने वाला व्यू, डेवलपर के लिए एक नए विकल्प के तौर पर भी उपलब्ध है. meminfo टूल को बेहतर बनाया गया है, ताकि मेमोरी के रुझानों और समस्याओं का पता लगाना आसान हो. साथ ही, इससे मेमोरी का अतिरिक्त ओवरहेड भी पता चलता है, जो पहले नहीं दिखता था.
होस्ट कार्ड एम्युलेशन की मदद से, एनएफ़सी की नई सुविधाएं
Android 4.4 में, होस्ट कार्ड इम्युलेशन (एचसीई) की मदद से, एनएफ़सी पर आधारित सुरक्षित लेन-देन के लिए, प्लैटफ़ॉर्म के साथ काम करने की नई सुविधा जोड़ी गई है. इस सुविधा का इस्तेमाल, पेमेंट, लॉयल्टी प्रोग्राम, कार्ड ऐक्सेस, बस, मेट्रो वगैरह के पास, और अन्य कस्टम सेवाओं के लिए किया जा सकता है. एचसीई की मदद से, Android डिवाइस पर मौजूद कोई भी ऐप्लिकेशन एनएफ़सी स्मार्ट कार्ड की तरह काम कर सकता है. इससे उपयोगकर्ता अपनी पसंद के ऐप्लिकेशन से लेन-देन शुरू करने के लिए टैप कर सकते हैं. इसके लिए, डिवाइस में प्रोविज़न किया गया सुरक्षित एलिमेंट (एसई) होना ज़रूरी नहीं है. ऐप्लिकेशन, एचसीई कार्ड और एनएफ़सी पर आधारित अन्य लेन-देन के लिए, रीडर के तौर पर काम करने के लिए, नए रीडर मोड का भी इस्तेमाल कर सकते हैं.
Android HCE, ISO/IEC 7816 पर आधारित स्मार्ट कार्ड को एमुलेट करता है. ये कार्ड, डेटा ट्रांसफ़र करने के लिए, बिना संपर्क वाले ISO/IEC 14443-4 (ISO-DEP) प्रोटोकॉल का इस्तेमाल करते हैं. इन कार्ड का इस्तेमाल, फ़िलहाल कई सिस्टम में किया जाता है. इनमें मौजूदा EMVCO एनएफ़सी पेमेंट इन्फ़्रास्ट्रक्चर भी शामिल है. Android, ISO/IEC 7816-4 में बताए गए ऐप्लिकेशन आइडेंटिफ़ायर (एआईडी) का इस्तेमाल करता है. इससे, लेन-देन को सही Android ऐप्लिकेशन पर भेजा जा सकता है.
ऐप्लिकेशन अपनी मेनिफ़ेस्ट फ़ाइलों में उन एआईडी के बारे में बताते हैं जिनके साथ वे काम करते हैं. साथ ही, इनमें एक कैटगरी आइडेंटिफ़ायर भी होता है, जो उपलब्ध सहायता के टाइप के बारे में बताता है. उदाहरण के लिए, "पेमेंट". अगर एक ही कैटगरी में एक से ज़्यादा ऐप्लिकेशन, एक ही एआईडी के साथ काम करते हैं, तो Android एक डायलॉग दिखाता है. इससे उपयोगकर्ता यह चुन सकता है कि किस ऐप्लिकेशन का इस्तेमाल करना है.
जब उपयोगकर्ता बिक्री की जगह पर मौजूद टर्मिनल पर पेमेंट करने के लिए टैप करता है, तो सिस्टम उपयोगकर्ता के पसंदीदा AID को निकालता है और लेन-देन को सही ऐप्लिकेशन पर भेजता है. यह ऐप्लिकेशन, लेन-देन का डेटा पढ़ता है. साथ ही, लेन-देन की पुष्टि करने और उसे पूरा करने के लिए, किसी भी स्थानीय या नेटवर्क-आधारित सेवा का इस्तेमाल कर सकता है.
Android HCE के लिए, डिवाइस में एनएफ़सी कंट्रोलर होना ज़रूरी है. ज़्यादातर एनएफ़सी कंट्रोलर पर, एचसीई की सुविधा पहले से ही उपलब्ध है. यह सुविधा, एचसीई और एसई, दोनों तरह के लेन-देन के लिए डाइनैमिक तौर पर काम करती है. Android 4.4 वाले जिन डिवाइसों में एनएफ़सी की सुविधा काम करती है उनमें, एचसीई का इस्तेमाल करके आसानी से पेमेंट करने के लिए, टैप करके पेमेंट करने की सुविधा होगी.
प्रिंटिंग फ़्रेमवर्क
Android ऐप्लिकेशन अब वाई-फ़ाई या क्लाउड पर होस्ट की जाने वाली सेवाओं, जैसे कि Google Cloud Print की मदद से, किसी भी तरह का कॉन्टेंट प्रिंट कर सकते हैं. प्रिंट करने की सुविधा वाले ऐप्लिकेशन में, उपयोगकर्ता उपलब्ध प्रिंटर खोज सकते हैं, पेपर के साइज़ बदल सकते हैं, प्रिंट करने के लिए खास पेज चुन सकते हैं, और किसी भी तरह के दस्तावेज़, इमेज या फ़ाइल को प्रिंट कर सकते हैं.
Android 4.4 में, प्रिंटिंग के लिए नेटिव प्लैटफ़ॉर्म के साथ-साथ, प्रिंटिंग को मैनेज करने और प्रिंटर के लिए नए टाइप की सहायता जोड़ने के लिए एपीआई भी जोड़े गए हैं. यह प्लैटफ़ॉर्म एक प्रिंट मैनेजर उपलब्ध कराता है, जो प्रिंट करने का अनुरोध करने वाले ऐप्लिकेशन और प्रिंट के अनुरोधों को मैनेज करने वाली इंस्टॉल की गई प्रिंट सेवाओं के बीच मध्यस्थता करता है. प्रिंट मैनेजर, प्रिंटिंग के लिए शेयर की गई सेवाएं और सिस्टम यूज़र इंटरफ़ेस (यूआई) उपलब्ध कराता है. इससे, उपयोगकर्ताओं को किसी भी ऐप्लिकेशन से प्रिंटिंग पर लगातार कंट्रोल मिलता है. प्रिंट मैनेजर, कॉन्टेंट की सुरक्षा भी पक्का करता है, क्योंकि कॉन्टेंट को ऐप्लिकेशन से प्रिंट सेवा तक कई प्रोसेस से गुज़रना पड़ता है.
प्रिंटर बनाने वाली कंपनियां, नए एपीआई का इस्तेमाल करके अपनी प्रिंट सेवाएं बना सकती हैं. ये प्लग इन किए जा सकने वाले कॉम्पोनेंट होते हैं. इनमें, खास तरह के प्रिंटर के साथ इंटरैक्ट करने के लिए, वेंडर के हिसाब से लॉजिक और सेवाएं जोड़ी जाती हैं. वे प्रिंट सेवाएं बनाकर, उन्हें Google Play के ज़रिए डिस्ट्रिब्यूट कर सकते हैं. इससे उपयोगकर्ताओं को उन्हें अपने डिवाइसों पर ढूंढने और इंस्टॉल करने में आसानी होती है. अन्य ऐप्लिकेशन की तरह ही, प्रिंट सेवाओं को किसी भी समय ओवर-द-एयर अपडेट किया जा सकता है.
क्लाइंट ऐप्लिकेशन, नए एपीआई का इस्तेमाल करके अपने ऐप्लिकेशन में प्रिंटिंग की सुविधाएं जोड़ सकते हैं. इसके लिए, उन्हें अपने कोड में ज़्यादा बदलाव करने की ज़रूरत नहीं होती. ज़्यादातर मामलों में, आपको अपने ऐक्शन बार में प्रिंट करने की कार्रवाई और प्रिंट करने के लिए आइटम चुनने के लिए यूज़र इंटरफ़ेस (यूआई) जोड़ना होगा. आपको प्रिंट जॉब बनाने, प्रिंट मैनेजर से स्थिति के बारे में क्वेरी करने, और जॉब रद्द करने के लिए भी एपीआई लागू करने होंगे. इसकी मदद से, स्थानीय इमेज और दस्तावेज़ों से लेकर नेटवर्क डेटा या कैनवस पर रेंडर किए गए व्यू तक, किसी भी तरह का कॉन्टेंट प्रिंट किया जा सकता है.
ज़्यादा से ज़्यादा डिवाइसों पर काम करने के लिए, Android प्रिंटिंग के लिए PDF को मुख्य फ़ाइल फ़ॉर्मैट के तौर पर इस्तेमाल करता है. प्रिंट करने से पहले, आपके ऐप्लिकेशन को आपके कॉन्टेंट का सही पेजेशन वाला PDF वर्शन जनरेट करना होगा. प्रिंटिंग एपीआई, सुविधा के लिए नेटिव और वेबव्यू हेल्पर क्लास उपलब्ध कराता है. इनकी मदद से, स्टैंडर्ड Android ड्रॉइंग एपीआई का इस्तेमाल करके PDF बनाए जा सकते हैं. अगर आपके ऐप्लिकेशन में कॉन्टेंट को ड्रॉ करने की सुविधा है, तो वह प्रिंट करने के लिए तुरंत PDF बना सकता है.
Android 4.4 पर काम करने वाले ज़्यादातर डिवाइसों में, प्रिंट सेवा के तौर पर Google Cloud Print पहले से इंस्टॉल होगा. साथ ही, इनमें Chrome, Drive, Gallery, और QuickOffice जैसे कई Google ऐप्लिकेशन भी होंगे, जो प्रिंट करने की सुविधा देते हैं.
स्टोरेज ऐक्सेस फ़्रेमवर्क
डिवाइस के स्टोरेज ऐक्सेस फ़्रेमवर्क की मदद से, उपयोगकर्ताओं के लिए, दस्तावेज़ों के लिए स्टोरेज उपलब्ध कराने वाली अपनी पसंदीदा सेवाओं पर, दस्तावेज़, इमेज, और अन्य फ़ाइलों को ब्राउज़ करना और खोलना आसान हो जाता है. स्टैंडर्ड और आसानी से इस्तेमाल किए जा सकने वाले यूज़र इंटरफ़ेस (यूआई) की मदद से, उपयोगकर्ताओं को सभी ऐप्लिकेशन और सेवा देने वाली कंपनियों के लिए, एक जैसी तरह से फ़ाइलें ब्राउज़ करने और हाल ही में इस्तेमाल की गई फ़ाइलों को ऐक्सेस करने की सुविधा मिलती है.
क्लाउड या लोकल स्टोरेज सेवाएं, इस इकोसिस्टम में हिस्सा ले सकती हैं. इसके लिए, उन्हें दस्तावेज़ उपलब्ध कराने वाली नई क्लास लागू करनी होगी, जिसमें उनकी सेवाएं शामिल हों. प्रोवाइडर क्लास में, सिस्टम के साथ प्रोवाइडर को रजिस्टर करने और प्रोवाइडर में दस्तावेज़ों को ब्राउज़ करने, पढ़ने, और लिखने के लिए ज़रूरी सभी एपीआई शामिल होते हैं. दस्तावेज़ उपलब्ध कराने वाली कंपनी, उपयोगकर्ताओं को किसी भी ऐसे रिमोट या स्थानीय डेटा का ऐक्सेस दे सकती है जिसे फ़ाइलों के तौर पर दिखाया जा सकता है. जैसे, टेक्स्ट, फ़ोटो, वॉलपेपर, वीडियो, ऑडियो वगैरह.
अगर आपने क्लाउड या स्थानीय सेवा के लिए दस्तावेज़ उपलब्ध कराने वाली कंपनी बनाई है, तो इसे अपने मौजूदा Android ऐप्लिकेशन के हिस्से के तौर पर उपयोगकर्ताओं को डिलीवर किया जा सकता है. ऐप्लिकेशन को डाउनलोड और इंस्टॉल करने के बाद, उपयोगकर्ताओं के पास फ़्रेमवर्क में हिस्सा लेने वाले किसी भी ऐप्लिकेशन से, आपकी सेवा का तुरंत ऐक्सेस होगा. इससे आपको अपनी सेवाओं को ज़्यादा लोगों तक पहुंचाने और उपयोगकर्ताओं की दिलचस्पी बढ़ाने में मदद मिल सकती है. ऐसा इसलिए, क्योंकि उपयोगकर्ताओं को आपकी सेवाएं आसानी से मिल जाएंगी.
अगर आपने फ़ाइलों या दस्तावेज़ों को मैनेज करने वाला कोई क्लाइंट ऐप्लिकेशन बनाया है, तो फ़ाइलें खोलने या बनाने के लिए, CREATE_DOCUMENT या OPEN_DOCUMENT इंटेंट का इस्तेमाल करके, स्टोरेज ऐक्सेस फ़्रेमवर्क के साथ इंटिग्रेट किया जा सकता है. इससे, सिस्टम अपने-आप दस्तावेज़ ब्राउज़ करने के लिए स्टैंडर्ड यूज़र इंटरफ़ेस (यूआई) दिखाता है. इसमें, दस्तावेज़ों के लिए उपलब्ध सभी सेवाएं भी शामिल होती हैं.
सभी सेवा देने वाली कंपनियों के लिए, अपने क्लाइंट ऐप्लिकेशन को एक बार इंटिग्रेट किया जा सकता है. इसके लिए, किसी भी वेंडर के कोड की ज़रूरत नहीं होती. उपयोगकर्ता, सेवा देने वाली कंपनियों को जोड़ते या हटाते रहेंगे. इसके बावजूद, वे आपके ऐप्लिकेशन से अपनी पसंदीदा सेवाओं का ऐक्सेस पाते रहेंगे. इसके लिए, आपको अपने कोड में कोई बदलाव या अपडेट करने की ज़रूरत नहीं पड़ेगी.
स्टोरेज ऐक्सेस फ़्रेमवर्क को मौजूदा GET_CONTENT इंटेंट के साथ इंटिग्रेट किया गया है. इसलिए, उपयोगकर्ताओं के पास ब्राउज़ करने के लिए, नए सिस्टम यूज़र इंटरफ़ेस (यूआई) से अपने सभी पुराने कॉन्टेंट और डेटा सोर्स का ऐक्सेस भी होता है. ऐप्लिकेशन, उपयोगकर्ताओं को डेटा इंपोर्ट करने की सुविधा देने के लिए, GET_CONTENT का इस्तेमाल करना जारी रख सकते हैं. ब्राउज़ करने के लिए, स्टोरेज ऐक्सेस फ़्रेमवर्क और सिस्टम यूज़र इंटरफ़ेस (यूआई) की मदद से, उपयोगकर्ताओं के लिए कई तरह के सोर्स से अपना डेटा ढूंढना और इंपोर्ट करना आसान हो जाता है.
Android 4.4 पर काम करने वाले ज़्यादातर डिवाइसों में, दस्तावेज़ उपलब्ध कराने वाली सेवाओं के तौर पर Google Drive और लोकल स्टोरेज पहले से इंटिग्रेट किए गए होंगे. साथ ही, फ़ाइलों के साथ काम करने वाले Google के ऐप्लिकेशन भी नए फ़्रेमवर्क का इस्तेमाल करेंगे.
कम बिजली वाले सेंसर
सेंसर के डेटा के बैच बनाना
Android 4.4 में, हार्डवेयर सेंसर के लिए एक साथ कई काम करने की सुविधा जोड़ी गई है. यह एक नई ऑप्टिमाइज़ेशन सुविधा है, जिससे सेंसर की मौजूदा गतिविधियों में खर्च होने वाली बैटरी की खपत काफ़ी कम हो सकती है.
सेंसर बैचिंग की सुविधा की मदद से, Android डिवाइस के हार्डवेयर के साथ मिलकर काम करता है, ताकि सेंसर से मिलने वाले इवेंट को एक साथ इकट्ठा और डिलीवर किया जा सके. ऐसा, इवेंट के डिटेक्ट होने के बाद, उन्हें अलग-अलग इकट्ठा और डिलीवर करने के बजाय किया जाता है. इससे डिवाइस के ऐप्लिकेशन प्रोसेसर को, बैच डिलीवर होने तक कम पावर वाले आइडल मोड में रहने में मदद मिलती है. स्टैंडर्ड इवेंट लिसनर का इस्तेमाल करके, किसी भी सेंसर से एक साथ कई इवेंट भेजने का अनुरोध किया जा सकता है. साथ ही, यह भी कंट्रोल किया जा सकता है कि आपको एक साथ कितने इवेंट भेजे जाएं. बैच साइकल के बीच, इवेंट की तुरंत डिलीवरी का अनुरोध भी किया जा सकता है.
सेंसर की जानकारी एक साथ इकट्ठा करने की सुविधा, कम बैटरी वाले और लंबे समय तक चलने वाले इस्तेमाल के उदाहरणों के लिए सही है. जैसे, फ़िटनेस, जगह की जानकारी ट्रैक करना, निगरानी करना वगैरह. इससे आपके ऐप्लिकेशन को ज़्यादा बेहतर बनाया जा सकता है. साथ ही, इससे सेंसर इवेंट को लगातार ट्रैक किया जा सकता है. ऐसा तब भी किया जा सकता है, जब स्क्रीन बंद हो और सिस्टम स्लीप मोड में हो.
सेंसर बैचिंग की सुविधा फ़िलहाल Nexus 5 पर उपलब्ध है. हम अपने चिपसेट पार्टनर के साथ मिलकर, इस सुविधा को जल्द से जल्द ज़्यादा डिवाइसों पर उपलब्ध कराने के लिए काम कर रहे हैं.
कदमों की संख्या का पता लगाने वाला डिवाइस और कदमों की संख्या बताने वाला काउंटर
Android 4.4 में, प्लैटफ़ॉर्म के लिए दो नए कंपोजिट सेंसर — कदमों का पता लगाने वाला सेंसर और कदमों की गिनती करने वाला सेंसर — भी जोड़े गए हैं. इनकी मदद से, आपका ऐप्लिकेशन उपयोगकर्ता के चलते, दौड़ते या सीढ़ियां चढ़ते समय, कदमों को ट्रैक कर सकता है. कम बैटरी खर्च करने के लिए, इन नए सेंसर को हार्डवेयर में लागू किया गया है.
चरण का पता लगाने वाला डिवाइस, उपयोगकर्ता के एक कदम बढ़ने पर, ऐक्सीलेरोमीटर इनपुट का विश्लेषण करता है. इसके बाद, हर कदम के साथ एक इवेंट ट्रिगर करता है. चरणों की गिनती करने वाला टूल, डिवाइस के आखिरी बार रीबूट होने के बाद से, चरणों की कुल संख्या को ट्रैक करता है. साथ ही, चरणों की संख्या में होने वाले हर बदलाव के साथ एक इवेंट को ट्रिगर करता है. लॉजिक और सेंसर मैनेजमेंट, प्लैटफ़ॉर्म और उसमें मौजूद हार्डवेयर में पहले से मौजूद होता है. इसलिए, आपको अपने ऐप्लिकेशन में, गतिविधि का पता लगाने वाले एल्गोरिदम को मैनेज करने की ज़रूरत नहीं होती.
कदमों की गिनती करने वाला डिवाइस और काउंटर सेंसर, Nexus 5 पर उपलब्ध हैं. हम अपने चिपसेट पार्टनर के साथ मिलकर, इन सुविधाओं को जल्द से जल्द नए डिवाइसों में उपलब्ध कराने के लिए काम कर रहे हैं.
एसएमएस की सेवा देने वाली कंपनी
अगर आपने एसएमएस या एमएमएस का इस्तेमाल करने वाला मैसेजिंग ऐप्लिकेशन डेवलप किया है, तो अब आपके पास अपने ऐप्लिकेशन के मैसेज के स्टोरेज और उन्हें वापस पाने की सुविधा को मैनेज करने के लिए, एसएमएस की सेवा देने वाली कंपनी के शेयर किए गए प्लैटफ़ॉर्म और नए एपीआई का इस्तेमाल करने का विकल्प है. एसएमएस की सेवा देने वाली नई कंपनी और एपीआई, एसएमएस या एमएमएस मैसेज मैनेज करने वाले सभी ऐप्लिकेशन के लिए, एक स्टैंडर्ड इंटरैक्शन मॉडल तय करते हैं.
Android 4.4 में, सेवा देने वाली नई कंपनी और एपीआई के साथ-साथ, मैसेज पाने और सेवा देने वाली कंपनी को मैसेज भेजने के लिए नए सिमेंटिक भी शामिल किए गए हैं. जब कोई मैसेज मिलता है, तो सिस्टम उसे सीधे तौर पर उपयोगकर्ता के डिफ़ॉल्ट मैसेजिंग ऐप्लिकेशन पर भेजता है. इसके लिए, वह नए SMS_DELIVER इंटेंट का इस्तेमाल करता है. हालांकि, अन्य ऐप्लिकेशन अब भी SMS_RECEIVED इंटेंट का इस्तेमाल करके, इनकमिंग मैसेज सुन सकते हैं. साथ ही, सिस्टम अब सिर्फ़ डिफ़ॉल्ट ऐप्लिकेशन को मैसेज का डेटा, सेवा देने वाली कंपनी को लिखने की अनुमति देता है. हालांकि, अन्य ऐप्लिकेशन कभी भी डेटा पढ़ सकते हैं. डिफ़ॉल्ट ऐप्लिकेशन के अलावा, अन्य ऐप्लिकेशन भी मैसेज भेज सकते हैं. सिस्टम, ऐप्लिकेशन की ओर से मैसेज को सेवा देने वाली कंपनी को भेजता है, ताकि उपयोगकर्ता उन्हें डिफ़ॉल्ट ऐप्लिकेशन में देख सकें.
एक से ज़्यादा मैसेजिंग ऐप्लिकेशन इंस्टॉल होने पर, नया प्रोवाइडर और सेमेंटेक्स, उपयोगकर्ता के अनुभव को बेहतर बनाने में मदद करते हैं. साथ ही, ये आपको पूरी तरह से काम करने वाले और आने वाले समय में काम करने वाले एपीआई की मदद से, मैसेजिंग की नई सुविधाएं बनाने में मदद करते हैं.
बेहतर ऐप्लिकेशन बनाने के नए तरीके
पूरी स्क्रीन पर फैले इमर्सिव मोड
अब आपके ऐप्लिकेशन, डिवाइस की स्क्रीन पर मौजूद हर पिक्सल का इस्तेमाल करके, आपका कॉन्टेंट दिखा सकते हैं और टच इवेंट कैप्चर कर सकते हैं. Android 4.4 में, फ़ुल स्क्रीन वाला नया इमर्सिव मोड जोड़ा गया है. इसकी मदद से, फ़ोन और टैबलेट पर किनारे से किनारे तक फैले हुए फ़ुल-ब्लीड यूज़र इंटरफ़ेस (यूआई) बनाए जा सकते हैं. साथ ही, सिस्टम के सभी यूज़र इंटरफ़ेस, जैसे कि स्टेटस बार और नेविगेशन बार को छिपाया जा सकता है. यह फ़ोटो, वीडियो, मैप, किताबों, और गेम जैसे बेहतरीन विज़ुअल कॉन्टेंट के लिए सही है.
नए मोड में, सिस्टम यूज़र इंटरफ़ेस (यूआई) छिपा रहता है. भले ही, उपयोगकर्ता आपके ऐप्लिकेशन या गेम के साथ इंटरैक्ट कर रहे हों. स्क्रीन पर कहीं से भी टच इवेंट कैप्चर किए जा सकते हैं. यहां तक कि उन जगहों से भी जहां सिस्टम बार होते हैं. इससे, अपने ऐप्लिकेशन या गेम में बड़ा, बेहतर, और ज़्यादा दिलचस्प यूज़र इंटरफ़ेस (यूआई) बनाने का बेहतरीन तरीका मिलता है. साथ ही, विज़ुअल डिस्ट्रैक्शन को भी कम किया जा सकता है.
Android 4.4 में एक नया जेस्चर जोड़ा गया है, ताकि उपयोगकर्ताओं को फ़ुल-स्क्रीन इमर्सिव मोड में, सिस्टम यूज़र इंटरफ़ेस (यूआई) को आसानी से ऐक्सेस करने में मदद मिल सके. इमर्सिव मोड में, स्क्रीन के ऊपर या नीचे से किनारे पर स्वाइप करने पर, अब सिस्टम यूज़र इंटरफ़ेस दिखता है.
इमर्सिव मोड पर वापस जाने के लिए, उपयोगकर्ता बार के बाहर की स्क्रीन को छू सकते हैं या कुछ देर इंतज़ार कर सकते हैं, ताकि बार अपने-आप छिप जाएं. उपयोगकर्ताओं को बेहतर अनुभव देने के लिए, नया जेस्चर, स्टेटस बार को छिपाने के पुराने तरीकों के साथ भी काम करता है.
सीन को ऐनिमेट करने के लिए ट्रांज़िशन फ़्रेमवर्क
ज़्यादातर ऐप्लिकेशन, अपने फ़्लो को यूज़र इंटरफ़ेस (यूआई) के कई मुख्य स्टेटस के हिसाब से बनाते हैं. ये स्टेटस, अलग-अलग ऐक्शन दिखाते हैं. कई ऐप्लिकेशन ऐनिमेशन का इस्तेमाल भी करते हैं, ताकि उपयोगकर्ताओं को उन स्थितियों और हर स्थिति में उपलब्ध कार्रवाइयों के बारे में जानकारी मिल सके. Android 4.4 में, ट्रांज़िशन के लिए एक नया फ़्रेमवर्क जोड़ा गया है. इससे, ऐप्लिकेशन में अच्छी क्वालिटी के ऐनिमेशन बनाना आसान हो गया है.
ट्रांज़िशन फ़्रेमवर्क की मदद से, सीन तय किए जा सकते हैं. आम तौर पर, ये सीन, व्यू की हैरारकी और ट्रांज़िशन होते हैं. इनसे यह तय किया जाता है कि जब उपयोगकर्ता किसी सीन में प्रवेश करता है या उससे बाहर निकलता है, तो सीन को ऐनिमेट या ट्रांसफ़ॉर्म कैसे किया जाए. कुछ खास प्रॉपर्टी के आधार पर अपने सीन को ऐनिमेट करने के लिए, पहले से तय किए गए कई तरह के ट्रांज़िशन का इस्तेमाल किया जा सकता है. जैसे, लेआउट के बाउंड या विज़िबिलिटी. अपने-आप ट्रांज़िशन होने की सुविधा भी होती है. इससे, स्क्रीन पर दिखने वाले सीन बदलने पर, व्यू अपने-आप फ़ेड हो जाते हैं, एक जगह से दूसरी जगह चले जाते हैं, और उनका साइज़ अपने-आप बदल जाता है. इसके अलावा, आपके पास कस्टम ट्रांज़िशन तय करने का विकल्प भी होता है. इससे, आपके ऐप्लिकेशन के लिए सबसे ज़्यादा मायने रखने वाली प्रॉपर्टी को ऐनिमेट किया जा सकता है. साथ ही, ज़रूरत पड़ने पर अपनी पसंद के ऐनिमेशन स्टाइल भी जोड़े जा सकते हैं.
ट्रांज़िशन फ़्रेमवर्क की मदद से, अपने यूज़र इंटरफ़ेस में बदलावों को ऐनिमेट किया जा सकता है. इसके लिए, आपको सीन तय करने की ज़रूरत नहीं है. उदाहरण के लिए, आपके पास व्यू की हैरारकी में कई बदलाव करने का विकल्प है. इसके बाद, TransitionManager उन बदलावों पर अपने-आप देर से ट्रांज़िशन चलाएगा.
ट्रांज़िशन सेट अप करने के बाद, उन्हें अपने ऐप्लिकेशन से आसानी से शुरू किया जा सकता है. उदाहरण के लिए, ट्रांज़िशन शुरू करने के लिए किसी एक तरीके का इस्तेमाल करके, अपने व्यू की हैरारकी में कई बदलाव किए जा सकते हैं. इसके बाद, अगले फ़्रेम में आपके बताए गए बदलावों को ऐनिमेट करने वाले ऐनिमेशन अपने-आप शुरू हो जाएंगे.
अपने ऐप्लिकेशन फ़्लो में, किसी खास सीन के बीच चलने वाले ट्रांज़िशन को पसंद के मुताबिक कंट्रोल करने के लिए, TransitionManager का इस्तेमाल किया जा सकता है. TransitionManager की मदद से, किसी सीन में बदलाव होने पर चलने वाले ट्रांज़िशन और सीन के बीच संबंध तय किया जा सकता है.
सिस्टम यूज़र इंटरफ़ेस (यूआई) की पारभासी स्टाइल
अपने कॉन्टेंट का ज़्यादा से ज़्यादा फ़ायदा पाने के लिए, अब नई विंडो स्टाइल और थीम का इस्तेमाल करके, पारदर्शी सिस्टम यूज़र इंटरफ़ेस का अनुरोध किया जा सकता है. इसमें स्टेटस बार और नेविगेशन बार, दोनों शामिल हैं. नेविगेशन बार के बटन या स्टेटस बार की जानकारी को आसानी से पढ़ा जा सके, इसके लिए सिस्टम बार के पीछे हल्के ग्रेडिएंट दिखाए जाते हैं. आम तौर पर, ऐसा ऐप्लिकेशन जिसे वॉलपेपर के तौर पर दिखाना हो.
सूचनाओं को बेहतर तरीके से ऐक्सेस करना
सूचना सुनने वाली सेवाएं, अब आने वाली सूचनाओं के बारे में ज़्यादा जानकारी देख सकती हैं. ये सूचनाएं, सूचना बिल्डर एपीआई का इस्तेमाल करके बनाई गई थीं. Listener सेवाएं, सूचना की कार्रवाइयों के साथ-साथ नए एक्स्ट्रा फ़ील्ड को ऐक्सेस कर सकती हैं. जैसे, टेक्स्ट, आइकॉन, इमेज, प्रोग्रेस, क्रोनोमीटर वगैरह. इनकी मदद से, सूचना के बारे में साफ़ तौर पर जानकारी हासिल की जा सकती है और उसे अलग तरीके से पेश किया जा सकता है.
Chromium वेबव्यू
Android 4.4 में, Chromium पर आधारित वेबव्यू का पूरी तरह से नया वर्शन शामिल है. नए Chromium वेबव्यू में, आपको स्टैंडर्ड के हिसाब से सबसे नई सुविधाएं, बेहतर परफ़ॉर्मेंस, और वेब पर आधारित कॉन्टेंट बनाने और दिखाने के लिए, डिवाइसों के साथ काम करने की सुविधा मिलती है.
Chromium वेबव्यू, HTML5, CSS3, और JavaScript के साथ काम करता है. यह Chrome for Android 30 में उपलब्ध, HTML5 की ज़्यादातर सुविधाओं के साथ काम करता है. इसमें, JavaScript इंजन (V8) का अपडेट किया गया वर्शन भी शामिल है. इससे, JavaScript की परफ़ॉर्मेंस काफ़ी बेहतर होती है.
इसके अलावा, नया Chromium वेबव्यू, Chrome DevTools का इस्तेमाल करके रिमोट डीबगिंग की सुविधा देता है. उदाहरण के लिए, डेवलपमेंट मशीन पर Chrome DevTools का इस्तेमाल करके, मोबाइल डिवाइस पर लाइव वेबव्यू कॉन्टेंट की जांच की जा सकती है, उसे डीबग किया जा सकता है, और उसका विश्लेषण किया जा सकता है.
नया Chromium वेबव्यू, Android 4.4 और इसके बाद के वर्शन पर काम करने वाले सभी डिवाइसों पर शामिल है. नए वेबव्यू का फ़ायदा तुरंत लिया जा सकता है. इसके लिए, मौजूदा ऐप्लिकेशन और कॉन्टेंट में ज़्यादा बदलाव करने की ज़रूरत नहीं है. ज़्यादातर मामलों में, आपका कॉन्टेंट बिना किसी रुकावट के, नए वर्शन पर माइग्रेट हो जाएगा.
मीडिया से जुड़ी नई सुविधाएं
स्क्रीन रिकॉर्डिंग
अब अपने Android डिवाइस से ही, अपने ऐप्लिकेशन का अच्छी क्वालिटी वाला वीडियो बनाना आसान हो गया है. Android 4.4 में, स्क्रीन रिकॉर्डिंग की सुविधा जोड़ी गई है. साथ ही, स्क्रीन रिकॉर्डिंग की सुविधा भी दी गई है. इसकी मदद से, यूएसबी के ज़रिए Android SDK टूल के साथ कनेक्ट किए गए डिवाइस पर रिकॉर्डिंग शुरू और बंद की जा सकती है. यह आपके ऐप्लिकेशन, टेस्टिंग मटीरियल, मार्केटिंग वीडियो वगैरह के लिए, वॉकथ्रू और ट्यूटोरियल बनाने का एक शानदार नया तरीका है.
स्क्रीन रिकॉर्डिंग की सुविधा की मदद से, अपने डिवाइस की स्क्रीन पर दिख रहे कॉन्टेंट का वीडियो रिकॉर्ड किया जा सकता है. साथ ही, उस वीडियो को डिवाइस पर MP4 फ़ाइल के तौर पर सेव किया जा सकता है. डिवाइस पर काम करने वाले किसी भी रिज़ॉल्यूशन और बिटरेट में रिकॉर्ड किया जा सकता है. साथ ही, आउटपुट में डिसप्ले का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) भी बना रहता है. डिफ़ॉल्ट रूप से, यह सुविधा मौजूदा ओरिएंटेशन में डिवाइस के डिसप्ले रिज़ॉल्यूशन के बराबर या उससे मिलता-जुलता रिज़ॉल्यूशन चुनती है. रिकॉर्डिंग पूरी होने के बाद, वीडियो को सीधे अपने डिवाइस से शेयर किया जा सकता है या पोस्ट-प्रोडक्शन के लिए, MP4 फ़ाइल को अपने होस्ट कंप्यूटर पर खींचा जा सकता है.
अगर आपका ऐप्लिकेशन ऐसा वीडियो या सुरक्षित कॉन्टेंट चलाता है जिसे आपको स्क्रीन रिकॉर्ड करने वाले टूल से रिकॉर्ड नहीं करना है, तो कॉन्टेंट को सुरक्षित के तौर पर मार्क करने के लिए, SurfaceView.setSecure() का इस्तेमाल करें.
Android SDK में शामिल adb टूल की मदद से, स्क्रीन रिकॉर्डिंग को ऐक्सेस किया जा सकता है. इसके लिए, adb shell screenrecord कमांड का इस्तेमाल करें. इसे Android Studio में, logcat से भी लॉन्च किया जा सकता है.
अडैप्टिव प्लेबैक की मदद से रिज़ॉल्यूशन स्विच करना
Android 4.4 में, Android मीडिया फ़्रेमवर्क में अडैप्टिव प्लेबैक के लिए आधिकारिक सहायता उपलब्ध है. अडैप्टिव प्लेबैक, MPEG-DASH और अन्य फ़ॉर्मैट के लिए, वीडियो डिकोडर की एक वैकल्पिक सुविधा है. इसकी मदद से, वीडियो चलने के दौरान रिज़ॉल्यूशन में आसानी से बदलाव किया जा सकता है. क्लाइंट, डिकोडर इनपुट वीडियो फ़्रेम को नए रिज़ॉल्यूशन में फ़ीड करना शुरू कर सकता है. साथ ही, आउटपुट बफ़र का रिज़ॉल्यूशन अपने-आप बदल जाता है और इसमें कोई ज़्यादा समय नहीं लगता.
Android 4.4 में रिज़ॉल्यूशन स्विच करने की सुविधा की मदद से, मीडिया ऐप्लिकेशन, वीडियो स्ट्रीमिंग का बेहतर अनुभव देते हैं. ऐप्लिकेशन, रनटाइम के दौरान मौजूदा एपीआई का इस्तेमाल करके, वीडियो के अडैप्टिव प्लेबैक की सुविधा के काम करने की जांच कर सकते हैं. साथ ही, Android 4.4 में जोड़े गए नए एपीआई का इस्तेमाल करके, रिज़ॉल्यूशन स्विच करने की सुविधा लागू कर सकते हैं.
DASH के लिए सामान्य एन्क्रिप्शन
Android अब MPEG-DASH के लिए, कॉमन एन्क्रिप्शन (CENC) के साथ काम करता है. इससे, कॉन्टेंट को मैनेज करने और सुरक्षित रखने के लिए, स्टैंडर्ड और मल्टी-प्लैटफ़ॉर्म डीआरएम स्कीम मिलती है. ऐप्लिकेशन, DASH की सुविधा के लिए, Android के मॉड्यूलर डीआरएम फ़्रेमवर्क और प्लैटफ़ॉर्म एपीआई की मदद से, CENC का फ़ायदा ले सकते हैं.
एचटीटीपी लाइव स्ट्रीमिंग
Android 4.4, प्लैटफ़ॉर्म के एचटीटीपी लाइव स्ट्रीमिंग (एचएलएस) के साथ काम करने की सुविधा को अपडेट करता है. यह सुविधा, एचएलएस स्पेसिफ़िकेशन के वर्शन 7 के सुपरसेट (प्रोटोकॉल के वर्शन 4) पर काम करती है. ज़्यादा जानकारी के लिए, आईईटीएफ का ड्राफ़्ट देखें.
डीएसपी को ऑडियो टनल करना
Android 4.4 में, डिवाइस के चिपसेट में डिजिटल सिग्नल प्रोसेसर (डीएसपी) में ऑडियो टनल करने के लिए, प्लैटफ़ॉर्म की सहायता जोड़ी गई है. इससे, कम बैटरी खर्च करके बेहतर परफ़ॉर्मेंस के साथ ऑडियो चलाया जा सकता है. टनलिंग की मदद से, ऑडियो डिकोडिंग और आउटपुट इफ़ेक्ट को डीएसपी पर ऑफ़लोड किया जाता है. इससे ऐप्लिकेशन प्रोसेसर कम बार चालू होता है और कम बैटरी खर्च होती है.
ऑडियो टनल करने की सुविधा से, बैटरी लाइफ़ काफ़ी बेहतर हो सकती है. उदाहरण के लिए, स्क्रीन बंद होने पर हेडसेट से संगीत सुनने पर, Nexus 5 में ऑडियो टनल करने की सुविधा से, ऑडियो चलाने का कुल समय 60 घंटे तक हो सकता है. यह समय, टनल किए बिना ऑडियो चलाने के मुकाबले 50% ज़्यादा है.
मीडिया ऐप्लिकेशन, काम करने वाले डिवाइसों पर ऑडियो टनलिंग का फ़ायदा ले सकते हैं. इसके लिए, उन्हें कोड में बदलाव करने की ज़रूरत नहीं होती. जब भी डिवाइस पर टनल उपलब्ध हो, तो सिस्टम ऑडियो चलाने की सुविधा को ऑप्टिमाइज़ करने के लिए टनल का इस्तेमाल करता है.
ऑडियो टनल करने के लिए, डिवाइस के हार्डवेयर में इसकी सुविधा होनी चाहिए. फ़िलहाल, ऑडियो टनल करने की सुविधा Nexus 5 पर उपलब्ध है. हम अपने चिपसेट पार्टनर के साथ मिलकर काम कर रहे हैं, ताकि इसे जल्द से जल्द ज़्यादा डिवाइसों पर उपलब्ध कराया जा सके.
ऑडियो मॉनिटरिंग
ऐप्लिकेशन, विज़ुअलाइज़र इफ़ेक्ट में मॉनिटर करने वाले नए टूल का इस्तेमाल कर सकते हैं. इससे, डिवाइस पर चल रहे किसी भी ऑडियो के पीक और आरएमएस लेवल के बारे में अपडेट मिलते हैं. उदाहरण के लिए, इसका इस्तेमाल संगीत विज़ुअलाइज़र में क्रिएटिव तरीके से किया जा सकता है या मीडिया प्लेयर में प्लेबैक मेज़रमेंट लागू करने के लिए किया जा सकता है.
लाउडनेस एन्हैंसर
मीडिया चलाने वाले ऐप्लिकेशन, LoudnessEnhancer इफ़ेक्ट का इस्तेमाल करके, बोले गए कॉन्टेंट की आवाज़ को बढ़ा सकते हैं. यह इफ़ेक्ट, समय के हिसाब से कॉम्प्रेसर की तरह काम करता है. इसे खास तौर पर बोली के लिए ट्यून किया गया है.
बेहतर ऑडियो-वीडियो सिंक के लिए ऑडियो टाइमस्टैंप
ऑडियो फ़्रेमवर्क अब ऑडियो आउटपुट एचएएल से ऐप्लिकेशन में प्रज़ेंटेशन के टाइमस्टैंप की जानकारी दे सकता है. इससे ऑडियो-वीडियो सिंक करने की सुविधा बेहतर तरीके से काम करती है. ऑडियो टाइमस्टैंप की मदद से, आपके ऐप्लिकेशन को यह तय करने में मदद मिलती है कि उपयोगकर्ता को कोई खास ऑडियो फ़्रेम कब दिखाया जाएगा (या दिखाया गया था). टाइमस्टैंप की जानकारी का इस्तेमाल करके, ऑडियो को वीडियो फ़्रेम के साथ ज़्यादा सटीक तरीके से सिंक किया जा सकता है.
Wi-Fi CERTIFIED Miracast™
Android 4.4 वाले डिवाइसों को अब वाई-फ़ाई अलायंस के वाई-फ़ाई डिसप्ले स्पेसिफ़िकेशन के तहत, Miracast के साथ काम करने वाले डिवाइसों के तौर पर सर्टिफ़ाइड किया जा सकता है. टेस्टिंग में मदद करने के लिए, वायरलेस डिसप्ले डेवलपर के लिए एक नया विकल्प जोड़ा गया है. इससे, वायरलेस डिसप्ले सर्टिफ़िकेशन के लिए, बेहतर कॉन्फ़िगरेशन कंट्रोल और सेटिंग का ऐक्सेस मिलता है. इस विकल्प को सेटिंग > डेवलपर के लिए विकल्प > वायरलेस डिसप्ले सर्टिफ़िकेशन में जाकर ऐक्सेस किया जा सकता है. Nexus 5, Miracast के लिए सर्टिफ़ाइड वायरलेस डिसप्ले डिवाइस है.
RenderScript Compute
परफ़ॉर्मेंस में लगातार होने वाले सुधार
जब आपके ऐप्लिकेशन RenderScript का इस्तेमाल करते हैं, तो उन्हें RenderScript के रनटाइम में परफ़ॉर्मेंस को लगातार बेहतर बनाने की सुविधा का फ़ायदा मिलेगा. इसके लिए, उन्हें फिर से कॉम्पाइल करने की ज़रूरत नहीं होगी. दाईं ओर मौजूद चार्ट में, दो लोकप्रिय चिपसेट पर Android 4.4 में परफ़ॉर्मेंस में हुई बढ़ोतरी दिखाई गई है.
जीपीयू एक्सेलेरेशन
जिन डिवाइसों पर RenderScript काम करता है उन पर इसे इस्तेमाल करने वाले किसी भी ऐप्लिकेशन को, कोड में बदलाव किए बिना या फिर से कंपाइल किए बिना, GPU के तेज़ी से काम करने की सुविधा मिलती है. Nexus 10 में पहली बार, रेंडरस्क्रिप्ट जीपीयू ऐक्सेलरेशन की सुविधा लॉन्च की गई थी. इसके बाद, कई अन्य हार्डवेयर पार्टनर ने भी इस सुविधा को जोड़ा है.
Android 4.4 के साथ, जीपीयू ऐक्सेलरेशन की सुविधा अब Nexus 5 के साथ-साथ Nexus 4, Nexus 7 (2013), और Nexus 10 पर भी उपलब्ध है. हम अपने पार्टनर के साथ मिलकर, इस सुविधा को जल्द से जल्द ज़्यादा से ज़्यादा डिवाइसों पर उपलब्ध कराने के लिए काम कर रहे हैं.
Android एनडीके में RenderScript
अब अपने नेटिव कोड से सीधे तौर पर, RenderScript का फ़ायदा लिया जा सकता है. Android नेटिव डेवलपमेंट किट (NDK) में मौजूद नए C++ एपीआई की मदद से, फ़्रेमवर्क एपीआई के ज़रिए उपलब्ध वही RenderScript फ़ंक्शन ऐक्सेस किया जा सकता है. इसमें स्क्रिप्ट इंट्रिन्सिक, कस्टम कर्नेल वगैरह शामिल हैं.
अगर आपको नेटिव कोड में बड़े और बेहतर परफ़ॉर्म करने वाले टास्क मैनेज करने हैं, तो RenderScript का इस्तेमाल करके उन टास्क को पूरा किया जा सकता है. साथ ही, उन्हें अपने नेटिव कोड के साथ इंटिग्रेट किया जा सकता है. RenderScript, कई तरह के डिवाइसों पर बेहतरीन परफ़ॉर्मेंस देता है. साथ ही, यह मल्टी-कोर सीपीयू, जीपीयू, और अन्य प्रोसेसर के लिए अपने-आप काम करता है.
NDK के ज़रिए RenderScript का इस्तेमाल करने वाला ऐप्लिकेशन बनाने पर, उसे Android 2.2 या इसके बाद के वर्शन वाले किसी भी डिवाइस पर डिस्ट्रिब्यूट किया जा सकता है. ठीक उसी तरह जैसे फ़्रेमवर्क एपीआई के लिए उपलब्ध RenderScript की सहायता लाइब्रेरी का इस्तेमाल किया जा सकता है.
ग्राफ़िक्स
GLES2.0 SurfaceFlinger
Android 4.4, अपने SurfaceFlinger को OpenGL ES 1.0 से OpenGL ES 2.0 पर अपग्रेड करता है.
वर्चुअल डिसप्ले के लिए, हार्डवेयर कंपोजर की नई सुविधा
Android हार्डवेयर कंपोजर का नया वर्शन, HWComposer 1.3, मुख्य और बाहरी (जैसे, एचडीएमआई) डिसप्ले के अलावा, एक वर्चुअल डिसप्ले के हार्डवेयर कंपोजिशन के साथ काम करता है. साथ ही, इसमें OpenGL ES इंटरऑपरेबिलिटी को बेहतर बनाया गया है.
कनेक्टिविटी के नए तरीके
नई ब्लूटूथ प्रोफ़ाइलें
Android 4.4 में दो नई ब्लूटूथ प्रोफ़ाइलों के लिए सहायता जोड़ी गई है. इससे ऐप्लिकेशन, कम बैटरी खर्च करने वाले और मीडिया इंटरैक्शन की ज़्यादा से ज़्यादा सुविधाएं दे पाएंगे. GATT के ज़रिए ब्लूटूथ एचआईडी (HOGP), ऐप्लिकेशन को कम पावर वाले सहायक डिवाइसों के साथ कम इंतज़ार वाला लिंक देता है. जैसे, माउस, जॉयस्टिक, और कीबोर्ड. ब्लूटूथ एमएपी की मदद से, आपके ऐप्लिकेशन आस-पास मौजूद डिवाइस के साथ मैसेज भेज और पा सकते हैं. उदाहरण के लिए, बिना हाथ इस्तेमाल किए चलाए जा सकने वाले वाहन का टर्मिनल या कोई दूसरा मोबाइल डिवाइस. ब्लूटूथ एवीआरसीपी 1.3 के एक्सटेंशन के तौर पर, उपयोगकर्ता अब अपने ब्लूटूथ डिवाइसों से सिस्टम पर वॉल्यूम को पूरी तरह से सेट कर सकते हैं.
HOGP, MAP, और AVRCP के लिए प्लैटफ़ॉर्म की सहायता, Bluedroid ब्लूटूथ स्टैक पर आधारित है. इसे Google और Broadcom ने Android 4.2 में लॉन्च किया था. यह सुविधा, Nexus डिवाइसों और Android के साथ काम करने वाले ऐसे अन्य डिवाइसों पर तुरंत उपलब्ध है जिनमें ब्लूटूथ की सुविधा काम करती है.
आईआर ब्लास्टर
Android 4.4 में, डिवाइस में पहले से मौजूद आईआर ब्लास्टर के लिए प्लैटफ़ॉर्म के साथ काम करने की सुविधा जोड़ी गई है. साथ ही, इसमें एक नया एपीआई और सिस्टम सेवा भी जोड़ी गई है. इनकी मदद से, इनका फ़ायदा पाने के लिए ऐप्लिकेशन बनाए जा सकते हैं.
नए एपीआई का इस्तेमाल करके, ऐसे ऐप्लिकेशन बनाए जा सकते हैं जिनकी मदद से उपयोगकर्ता आस-पास मौजूद टीवी, ट्यूनर, स्विच, और अन्य इलेक्ट्रॉनिक डिवाइसों को रिमोट से कंट्रोल कर सकते हैं. इस एपीआई की मदद से, आपके ऐप्लिकेशन को यह पता चलता है कि फ़ोन या टैबलेट में इन्फ़्रेरेड एमिटर है या नहीं. साथ ही, यह भी पता चलता है कि मोबाइल और इंटरनेट सेवा देने वाली कंपनी की फ़्रीक्वेंसी क्या है. इसके बाद, इन्फ़्रेरेड सिग्नल भेजे जाते हैं.
यह एपीआई, Android 4.4 या इसके बाद के वर्शन वाले सभी Android डिवाइसों के लिए स्टैंडर्ड है. इसलिए, आपका ऐप्लिकेशन कस्टम इंटिग्रेशन कोड लिखे बिना, ज़्यादा से ज़्यादा वेंडर के साथ काम कर सकता है.
वाई-फ़ाई टीडीएलएस की सुविधा
Android 4.4 में, एक ही वाई-फ़ाई नेटवर्क से कनेक्ट डिवाइसों के बीच, मीडिया और अन्य डेटा को तेज़ी से स्ट्रीम करने का आसान तरीका उपलब्ध कराया गया है. इसके लिए, Wi-Fi टनल किए गए डायरेक्ट लिंक सेटअप (टीडीएलएस) का इस्तेमाल किया जाता है.
सुलभता
सबटाइटल के लिए पूरे सिस्टम की सेटिंग
Android 4.4 में अब सभी ऐप्लिकेशन के लिए, सुलभता से जुड़ा बेहतर अनुभव मिलता है. ऐसा, सबटाइटल के लिए पूरे सिस्टम पर प्राथमिकताएं जोड़ने की सुविधा की मदद से किया जाता है. उपयोगकर्ता, कैप्शन की ग्लोबल प्राथमिकताएं सेट करने के लिए, सेटिंग > सुलभता > कैप्शन पर जा सकते हैं. जैसे, कैप्शन दिखाने हैं या नहीं, कैप्शन के लिए कौनसी भाषा, टेक्स्ट का साइज़, और टेक्स्ट स्टाइल इस्तेमाल करना है.
वीडियो का इस्तेमाल करने वाले ऐप्लिकेशन, अब उपयोगकर्ता की सबटाइटल सेटिंग को ऐक्सेस कर सकते हैं और प्रज़ेंटेशन को उपयोगकर्ता की प्राथमिकताओं के हिसाब से अडजस्ट कर सकते हैं. कैप्शन मैनेजर के नए एपीआई की मदद से, उपयोगकर्ता की कैप्शन की प्राथमिकताओं की जांच की जा सकती है और उन्हें मॉनिटर किया जा सकता है. कैप्शन मैनेजर की मदद से, आपको उपयोगकर्ता की पसंदीदा कैप्शन की स्थिति के साथ-साथ, पसंदीदा स्थानीय भाषा, स्केलिंग फ़ैक्टर, और टेक्स्ट स्टाइल की जानकारी मिलती है. टेक्स्ट स्टाइल में फ़ोरग्राउंड और बैकग्राउंड के रंग, किनारे की प्रॉपर्टी, और टाइपफ़ेस शामिल होते हैं.
इसके अलावा, VideoView का इस्तेमाल करने वाले ऐप्लिकेशन, रेंडरिंग के लिए वीडियो स्ट्रीम के साथ कैप्शन स्ट्रीम पास करने के लिए, नए एपीआई का इस्तेमाल कर सकते हैं. सिस्टम, उपयोगकर्ता की सिस्टम की सेटिंग के हिसाब से, वीडियो फ़्रेम पर सबटाइटल के दिखने की सुविधा को अपने-आप मैनेज करता है. फ़िलहाल, VideoView सिर्फ़ WebVTT फ़ॉर्मैट में कैप्शन के अपने-आप दिखने की सुविधा के साथ काम करता है.
कैप्शन दिखाने वाले सभी ऐप्लिकेशन को यह पक्का करना चाहिए कि वे उपयोगकर्ता की, सिस्टम में कैप्शन की सेटिंग की प्राथमिकताओं की जांच करें और कैप्शन को उन प्राथमिकताओं के मुताबिक रेंडर करें. सेटिंग के अलग-अलग कॉम्बिनेशन कैसा दिखेंगे, इस बारे में ज़्यादा जानने के लिए, सेटिंग ऐप्लिकेशन में जाकर कैप्शन की झलक देखें. इसमें अलग-अलग भाषाओं, साइज़, और स्टाइल के कैप्शन दिखेंगे.
बेहतर Accessibility API
Android 4.4 में, सुलभता एपीआई को बेहतर बनाया गया है. इससे, स्ट्रक्चर और सेमांटिक के बारे में ज़्यादा सटीक जानकारी मिलती है. साथ ही, स्क्रीन पर मौजूद एलिमेंट को बेहतर तरीके से देखा जा सकता है. नए एपीआई की मदद से, डेवलपर ऐक्सेस की सुविधा देने वाली सेवाओं को बेहतर बना सकते हैं. इसके लिए, वे स्क्रीन पर मौजूद एलिमेंट के बारे में ज़्यादा जानकारी उपलब्ध कराते हैं.
अब डेवलपर, ऐक्सेसबिलिटी नोड में यह तय कर सकते हैं कि कोई नोड, पॉप-अप है या नहीं. साथ ही, वे नोड का इनपुट टाइप और अन्य जानकारी भी पा सकते हैं. नए एपीआई का इस्तेमाल, उन नोड के साथ भी किया जा सकता है जिनमें सूचियों और टेबल जैसी ग्रिड जैसी जानकारी होती है. उदाहरण के लिए, अब आपके पास नई कार्रवाइयों, कलेक्शन की जानकारी, लाइव रीज़न मोड वगैरह के बारे में बताने का विकल्प है.
सुलभता से जुड़े नए इवेंट की मदद से, डेवलपर विंडो के कॉन्टेंट में होने वाले बदलावों को बारीकी से ट्रैक कर सकते हैं. साथ ही, अब वे डिवाइस पर टच एक्सप्लोरेशन मोड में होने वाले बदलावों को भी सुन सकते हैं.
अंतरराष्ट्रीय उपयोगकर्ताओं के लिए सहायता
दाईं से बाईं ओर लिखी जाने वाली भाषाओं के लिए, ड्रॉआउट की डुप्लीकेट कॉपी बनाना
अगर आपका ऐप्लिकेशन, आरटीएल स्क्रिप्ट का इस्तेमाल करने वाले उपयोगकर्ताओं को टारगेट कर रहा है, तो नए एपीआई का इस्तेमाल करके यह बताया जा सकता है कि जब उपयोगकर्ता की स्थानीय भाषा की सेटिंग में आरटीएल भाषा शामिल हो, तो ड्रॉबल को अपने-आप मिरर किया जाना चाहिए.
किसी ड्रॉबल को अपने-आप डुप्लीकेट होने के तौर पर सेट करने से, आपको अपने ऐप्लिकेशन में ऐसेट के डुप्लीकेट होने से रोकने में मदद मिलती है. साथ ही, इससे आपके APK का साइज़ भी कम हो जाता है. अगर आपके पास ऐसे ड्रॉअरबल हैं जिन्हें एलटीआर और आरटीएल, दोनों तरह के प्रज़ेंटेशन के लिए फिर से इस्तेमाल किया जा सकता है, तो डिफ़ॉल्ट वर्शन को अपने-आप मिरर किए गए के तौर पर दिखाया जा सकता है. इसके बाद, उन ड्रॉअरबल को अपने आरटीएल संसाधनों से हटाया जा सकता है.
अपने ऐप्लिकेशन कोड में, अलग-अलग तरह के ड्रॉअरबल को अपने-आप डुप्लीकेट होने वाले के तौर पर दिखाया जा सकता है. जैसे, बिटमैप, नाइन-पैच, लेयर, स्टेटस की सूची, और दूसरे ड्रॉअरबल. नए एट्रिब्यूट का इस्तेमाल करके, अपनी रिसॉर्स फ़ाइलों में ड्रॉआउट को अपने-आप डुप्लीकेट होने के तौर पर भी दिखाया जा सकता है.
लेआउट की दिशा, दाएं से बाएं करें
लेआउट को दाईं से बाईं ओर दिखने की सुविधा को टेस्ट करने और उससे जुड़ी समस्याओं को डीबग करने के लिए, Android में एक नया डेवलपर विकल्प जोड़ा गया है. इसकी मदद से, सभी ऐप्लिकेशन में लेआउट को दाईं से बाईं ओर दिखने की सुविधा को फ़ोर्स किया जा सकता है. ऐसा करने के लिए, आपको किसी दाईं से बाईं ओर लिखी जाने वाली भाषा पर स्विच करने की ज़रूरत नहीं है.
'आरटीएल लेआउट को फ़ोर्स करें' विकल्प, सभी भाषाओं के लिए डिवाइस को आरटीएल लेआउट पर स्विच करता है और आपकी मौजूदा भाषा में टेक्स्ट दिखाता है. इससे आपको अपने ऐप्लिकेशन में लेआउट से जुड़ी समस्याओं का पता लगाने में मदद मिल सकती है. इसके लिए, आपको ऐप्लिकेशन को आरटीएल भाषा में दिखाने की ज़रूरत नहीं है. इस विकल्प को सेटिंग > डेवलपर के लिए सेटिंग और टूल > आरटीएल लेआउट की दिशा को फ़ोर्स करें में जाकर ऐक्सेस किया जा सकता है.
सुरक्षा से जुड़ी बेहतर सुविधाएं
SELinux (एनफ़ोर्सिंग मोड)
Android 4.4, अपने SELinux कॉन्फ़िगरेशन को "अनुमति देने वाला" से "लागू करने वाला" पर अपडेट करता है. इसका मतलब है कि नीति उल्लंघन की आशंका वाले ऐसे SELinux डोमेन को ब्लॉक कर दिया जाएगा जिसमें नीति उल्लंघन ठीक करने के लिए कोई नीति लागू की गई है.
बेहतर क्रिप्टोग्राफ़िक एल्गोरिदम
Android ने दो और क्रिप्टोग्राफ़िक एल्गोरिदम के लिए सहायता जोड़कर, अपनी सुरक्षा को और बेहतर बनाया है. एलिप्टिक कर्व डिजिटल सिग्नेचर एल्गोरिदम (ईसीएसडीए) के लिए, पासकोड की सुविधा देने वाली कंपनी को जोड़ा गया है. इससे डिजिटल साइनिंग की सुरक्षा बेहतर होती है. यह सुविधा, ऐप्लिकेशन या डेटा कनेक्शन को साइन करने जैसे मामलों में लागू होती है. Scrypt पासकोड बनाने का फ़ंक्शन, डिस्क को पूरी तरह से एन्क्रिप्ट करने के लिए इस्तेमाल की जाने वाली क्रिप्टोग्राफ़िक पासकोड की सुरक्षा के लिए लागू किया गया है.
अन्य बेहतर सुविधाएं
एक से ज़्यादा उपयोगकर्ताओं वाले डिवाइसों पर, अब हर उपयोगकर्ता के लिए वीपीएन लागू होते हैं. इससे, उपयोगकर्ता डिवाइस पर मौजूद अन्य उपयोगकर्ताओं पर असर डाले बिना, वीपीएन के ज़रिए सभी नेटवर्क ट्रैफ़िक को रूट कर सकता है. साथ ही, Android अब FORTIFY_SOURCE लेवल 2 के साथ काम करता है. साथ ही, सभी कोड को उन सुरक्षा सुविधाओं के साथ संकलित किया जाता है. FORTIFY_SOURCE को clang के साथ काम करने के लिए बेहतर बनाया गया है.
मेमोरी के इस्तेमाल का विश्लेषण करने वाले टूल
Procstats
procstats नाम के नए टूल की मदद से, उन मेमोरी संसाधनों का विश्लेषण किया जा सकता है जिनका इस्तेमाल आपका ऐप्लिकेशन करता है. साथ ही, सिस्टम पर चल रहे अन्य ऐप्लिकेशन और सेवाओं के इस्तेमाल किए गए संसाधनों का भी विश्लेषण किया जा सकता है.
Procstats, समय के साथ ऐप्लिकेशन के चलने के तरीके का ट्रैक रखता है. साथ ही, ऐप्लिकेशन के चलने में लगने वाले समय और मेमोरी के इस्तेमाल के बारे में डेटा उपलब्ध कराता है. इससे यह पता चलता है कि ऐप्लिकेशन कितनी अच्छी तरह से काम कर रहे हैं. यह उन ऐप्लिकेशन के लिए सबसे ज़्यादा ज़रूरी है जो बैकग्राउंड में चलने वाली सेवाएं शुरू करते हैं. इससे आपको यह पता चलता है कि वे कितनी देर से चल रही हैं और इस दौरान वे कितनी रैम का इस्तेमाल कर रही हैं. Procstats, फ़ोरग्राउंड ऐप्लिकेशन के लिए भी समय के साथ मेमोरी के इस्तेमाल का डेटा इकट्ठा करेगा, ताकि ऐप्लिकेशन की पूरी मेमोरी प्रोफ़ाइल का पता लगाया जा सके.
Procstats की मदद से, आपके ऐप्लिकेशन से शुरू हुई बैकग्राउंड सेवाओं की पहचान की जा सकती है. साथ ही, यह भी पता लगाया जा सकता है कि ये सेवाएं कितनी देर तक चलती हैं और इस दौरान कितनी रैम का इस्तेमाल करती हैं. Procstats की मदद से, ऐप्लिकेशन के फ़ोरग्राउंड में होने के दौरान भी उसकी प्रोफ़ाइल बनाई जा सकती है. इसके लिए, समय के साथ उसकी मेमोरी के इस्तेमाल का डेटा इकट्ठा किया जाता है, ताकि उसकी पूरी मेमोरी प्रोफ़ाइल का पता लगाया जा सके.
Android SDK में शामिल adb टूल से, procstats को ऐक्सेस किया जा सकता है. इसके लिए, adb shell dumpsys procstats का इस्तेमाल करें. साथ ही, डिवाइस पर प्रोफ़ाइल बनाने के लिए, यहां दिए गए प्रोसेस के आंकड़े देखने का विकल्प देखें.
डिवाइस में मौजूद मेमोरी की स्थिति और प्रोफ़ाइल बनाना
Android 4.4 में डेवलपर के लिए एक नया विकल्प शामिल है. इसकी मदद से, किसी भी डिवाइस या एमुलेटर पर ऐप्लिकेशन के चलने के दौरान, उसकी मेमोरी प्रोफ़ाइल का आसानी से विश्लेषण किया जा सकता है. यह जानकारी देखना खास तौर पर फ़ायदेमंद होता है कि आपका ऐप्लिकेशन, कम रैम वाले डिवाइसों पर मेमोरी का इस्तेमाल कैसे करता है और कैसे परफ़ॉर्म करता है. इस विकल्प को ऐक्सेस करने के लिए, सेटिंग > डेवलपर के लिए सेटिंग और टूल > प्रोसेस के आंकड़े पर जाएं
प्रोसेस के आंकड़े विकल्प में, आपको अपने ऐप्लिकेशन के मेमोरी इस्तेमाल से जुड़ी कई तरह की हाई-लेवल मेट्रिक दिखती हैं. ये मेट्रिक, नई procstats सेवा का इस्तेमाल करके इकट्ठा किए गए डेटा के आधार पर दिखती हैं. मुख्य स्क्रीन पर, आपको सिस्टम मेमोरी के स्टेटस की खास जानकारी दिख सकती है. हरे रंग से, रैम के कम इस्तेमाल के साथ बिताए गए समय की जानकारी मिलती है. पीले रंग से, रैम के सामान्य इस्तेमाल की जानकारी मिलती है. वहीं, लाल रंग से रैम के ज़्यादा (गंभीर) इस्तेमाल की जानकारी मिलती है
खास जानकारी के नीचे, हर ऐप्लिकेशन के सिस्टम पर मेमोरी लोड की जानकारी देने वाली सूची होती है. हर ऐप्लिकेशन के लिए, नीले रंग का बार, उसकी प्रोसेस के हिसाब से कैलकुलेट किया गया मेमोरी लोड (रनटाइम x avg_pss) दिखाता है. साथ ही, प्रतिशत की संख्या से यह पता चलता है कि बैकग्राउंड में कितना समय बिताया गया. सिर्फ़ फ़ोरग्राउंड, बैकग्राउंड या कैश मेमोरी में सेव की गई प्रोसेस दिखाने के लिए, सूची को फ़िल्टर किया जा सकता है. साथ ही, सिस्टम प्रोसेस को शामिल या बाहर किया जा सकता है. इकट्ठा किए गए डेटा की अवधि को 3, 6, 12 या 24 घंटे में भी बदला जा सकता है. साथ ही, यूएसएस मेमोरी को शामिल या बाहर रखा जा सकता है.
किसी ऐप्लिकेशन के मेमोरी इस्तेमाल की जानकारी देखने के लिए, उस ऐप्लिकेशन पर टैप करें. अब आपको हर ऐप्लिकेशन के लिए, इस्तेमाल की गई मेमोरी की खास जानकारी और डेटा इकट्ठा करने के लिए ऐप्लिकेशन के चालू रहने के समय का प्रतिशत दिखेगा. आपको यहां, डेटा इकट्ठा करने की अवधि के दौरान, डेटा के औसत और ज़्यादा से ज़्यादा इस्तेमाल की जानकारी भी दिखेगी. साथ ही, ऐप्लिकेशन की सेवाओं और उनके चलने के समय का प्रतिशत भी दिखेगा.
प्रोसेस के आंकड़ों में मौजूद डेटा का इस्तेमाल करके, अपने ऐप्लिकेशन का विश्लेषण करने से समस्याओं का पता चल सकता है. साथ ही, आपके ऐप्लिकेशन के लिए ऑप्टिमाइज़ेशन के सुझाव भी मिल सकते हैं. उदाहरण के लिए, अगर आपका ऐप्लिकेशन ज़रूरत से ज़्यादा समय तक चल रहा है या किसी समयावधि में ज़्यादा मेमोरी का इस्तेमाल कर रहा है, तो हो सकता है कि आपके कोड में गड़बड़ियां हों. इन गड़बड़ियों को ठीक करके, अपने ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाया जा सकता है. ऐसा खास तौर पर, कम रैम वाले डिवाइस पर ऐप्लिकेशन चलाते समय ज़रूरी होता है.