एपीआई लेवल: 5
Android 2.0, प्लैटफ़ॉर्म का एक मुख्य वर्शन है. इसे नवंबर 2009 से, Android वाले हैंडसेट पर डिप्लॉय किया जा सकता है. इस रिलीज़ में, उपयोगकर्ताओं और डेवलपर के लिए नई सुविधाएं शामिल हैं. साथ ही, Android फ़्रेमवर्क एपीआई में बदलाव भी किए गए हैं.
डेवलपर के लिए, Android 2.0 प्लैटफ़ॉर्म, Android SDK टूल के लिए डाउनलोड किए जा सकने वाले कॉम्पोनेंट के तौर पर उपलब्ध है. डाउनलोड किए जा सकने वाले प्लैटफ़ॉर्म में, पूरी तरह से काम करने वाली Android लाइब्रेरी और सिस्टम इमेज के साथ-साथ, एमुलेटर स्किन, सैंपल ऐप्लिकेशन वगैरह का एक सेट शामिल होता है. डाउनलोड किए जा सकने वाले प्लैटफ़ॉर्म पर सभी सुविधाएं उपलब्ध हैं का अनुपालन करता है और इसमें कोई बाहरी लाइब्रेरी शामिल नहीं है.
Android 2.0 प्लैटफ़ॉर्म के लिए ऐप्लिकेशन बनाना या टेस्ट करना शुरू करने के लिए, Android SDK और AVD मैनेजर टूल का इस्तेमाल करके, प्लैटफ़ॉर्म को अपने SDK टूल में डाउनलोड करें.
प्लैटफ़ॉर्म की खास बातें
उपयोगकर्ताओं के लिए उपलब्ध नई सुविधाओं और प्लैटफ़ॉर्म की हाइलाइट की सूची देखने के लिए, Android 2.0 प्लैटफ़ॉर्म की हाइलाइट दस्तावेज़ देखें.
पहले से मौजूद ऐप्लिकेशन
डाउनलोड किए जा सकने वाले प्लैटफ़ॉर्म में शामिल सिस्टम इमेज में, ये पहले से मौजूद ऐप्लिकेशन होते हैं:
|
|
स्थान-भाषाएं
डाउनलोड किए जा सकने वाले प्लैटफ़ॉर्म में शामिल सिस्टम इमेज, Google News पर पहले से मौजूद स्थान-भाषाएँ. कुछ मामलों में, स्थान-भाषाएं. अन्य मामलों में, भाषा के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है. Android 2.0 सिस्टम इमेज में उपलब्ध भाषाओं की सूची यहां दी गई है. साथ ही, language_country/region लोकेल डिस्क्रिप्टर भी दिया गया है.
|
|
स्थानीय जगह के अनुसार बनाई गई यूज़र इंटरफ़ेस (यूआई) स्ट्रिंग उन स्थान-भाषाओं से मेल खाती हैं जिन्हें ऐक्सेस किया जा सकता है सेटिंग में जाकर.
एम्युलेटर स्किन
डाउनलोड किए जा सकने वाले प्लैटफ़ॉर्म में एम्युलेटर स्किन का एक सेट होता है. इसका इस्तेमाल अपने ऐप्लिकेशन की मॉडलिंग को अलग-अलग साइज़ और रिज़ॉल्यूशन में करने के लिए किया जा सकता है. एम्युलेटर स्किन ये हैं:
- QVGA (240x320, कम डेंसिटी, छोटी स्क्रीन)
- WQVGA (240x400, कम डेंसिटी, सामान्य स्क्रीन)
- FWQVGA (240x432, कम डेंसिटी, सामान्य स्क्रीन)
- एचवीजीए (320x480, मीडियम डेंसिटी, सामान्य स्क्रीन)
- WVGA800 (480x800, हाई डेंसिटी, सामान्य स्क्रीन)
- WVGA854 (480x854 उच्च सघनता, सामान्य स्क्रीन)
Android के साथ काम करने वाले सभी डिवाइसों पर ठीक से दिखने और काम करने वाले ऐप्लिकेशन को डेवलप करने के तरीके के बारे में ज़्यादा जानकारी के लिए, एक से ज़्यादा स्क्रीन का इस्तेमाल करने की सुविधा देखें.
डेवलपर के लिए सुविधाएं
नीचे दिए गए सेक्शन, डेवलपर के लिए डाउनलोड की जा सकने वाली Android 2.0 प्लैटफ़ॉर्म कॉम्पोनेंट से मिलने वाली नई सुविधाओं के बारे में जानकारी देते हैं.
Ant सहायता
- डीबग और रिलीज़ मोड में ऐप्लिकेशन को हस्ताक्षर करना. रिलीज़-मोड साइनिंग में
zipalign
को ऑप्टिमाइज़ करने के लिए इंटिग्रेट की गई सहायता शामिल है. ज़्यादा जानकारी के लिए, अपने ऐप्लिकेशन पर हस्ताक्षर करना लेख पढ़ें. - Emma इंस्ट्रूमेंटेशन प्रोजेक्ट (कोड कवरेज) के लिए, Ant बिल्ड सिस्टम जोड़ा गया है.
फ़्रेमवर्क एपीआई
यहां दिए गए सेक्शन में, Android 2.0 प्लैटफ़ॉर्म से मिलने वाले ऐप्लिकेशन फ़्रेमवर्क एपीआई के बारे में जानकारी दी गई है.
API स्तर
Android 2.0 प्लैटफ़ॉर्म, फ़्रेमवर्क एपीआई का अपडेट किया गया वर्शन उपलब्ध कराता है. पिछले वर्शन की तरह ही, Android 2.0 API को एक पूर्णांक आइडेंटिफ़ायर असाइन किया जाता है — 5 — जो सेव किया जाता है. इस आइडेंटिफ़ायर को "एपीआई लेवल" कहा जाता है. इससे सिस्टम को यह पता लगाने में मदद मिलती है कि कोई ऐप्लिकेशन, सिस्टम के साथ काम करता है या नहीं.
अपने ऐप्लिकेशन में Android 2.0 में लॉन्च किए गए एपीआई का इस्तेमाल करने के लिए, आपको अपने ऐप्लिकेशन के मेनिफ़ेस्ट में <uses-sdk>
एलिमेंट के एट्रिब्यूट में सही वैल्यू, "5" सेट करनी होगी.
एपीआई लेवल को इस्तेमाल करने के तरीके के बारे में ज़्यादा जानने के लिए, एपीआई लेवल वाला दस्तावेज़ देखें.
एपीआई में हुए बदलावों की खास जानकारी
ब्लूटूथ
- ब्लूटूथ चालू/बंद करें
- डिवाइस और सेवा खोजना
- RFCOMM का इस्तेमाल करके किसी रिमोट डिवाइस से कनेक्ट करना और डेटा भेजना/पाना
- RFCOMM सेवाओं का विज्ञापन दें और आने वाले RFCOMM कनेक्शन को सुनें
सिंक अडैप्टर
- किसी भी बैकएंड से कनेक्ट करने के लिए, सिंक अडैप्टर के लिए नए एपीआई
खाता मैनेजर
- पुष्टि करने वाले टोकन/पासवर्ड को सुरक्षित तरीके से सेव और ऐक्सेस करने के लिए, एक ही जगह से मैनेज होने वाला खाता मैनेजर एपीआई
संपर्क
- नए संपर्क एपीआई, जो कई खातों से डेटा इकट्ठा करने की अनुमति देते हैं
- नए Quick Contacts फ़्रेमवर्क के एपीआई, डेवलपर को अपने ऐप्लिकेशन में संपर्क बैज बनाने की सुविधा देते हैं. बैज पर क्लिक करने से एक विंडो खुलती है. इसमें बस एक क्लिक में किसी व्यक्ति से संपर्क करने के तरीकों की सूची होती है.
WebView
- काम नहीं करने वाली क्लास: UrlInterceptHandler, प्लग इन, प्लगिनडेटा, प्लगिनलिस्ट, UrlInterceptRegistry.
कैमरा
- कलर इफ़ेक्ट, सीन मोड, फ़्लैश मोड, फ़ोकस मोड, व्हाइट बैलेंस, रोटेशन, और अन्य सेटिंग के लिए नए पैरामीटर.
- ज़ूम लेवल बदलने पर कार्रवाइयां करने के लिए, नया ZoomCallback इंटरफ़ेस.
मीडिया
- MediaScanner अब सभी इमेज के लिए थंबनेल जनरेट करता है. ऐसा तब होता है, जब उन्हें MediaStore में डाला जाता है.
- मांग पर इमेज और वीडियो के थंबनेल पाने के लिए, नया थंबनेल एपीआई.
अन्य फ़्रेमवर्क
- android.R.style में नई सिस्टम थीम, ताकि मौजूदा सिस्टम वॉलपेपर के ऊपर आसानी से गतिविधियां दिखाई जा सकें या पिछली गतिविधि को बैकग्राउंड में देखा जा सके.
- नया WallpaperManager API, पहले Context में मौजूद वॉलपेपर एपीआई की जगह लेता है और उन्हें बेहतर बनाता है. इससे ऐप्लिकेशन, सिस्टम वॉलपेपर का अनुरोध कर सकते हैं और उसे सेट कर सकते हैं.
- नए Service API, ऐप्लिकेशन को सेवा के लाइफ़साइकल को सही तरीके से मैनेज करने में मदद करते हैं. खास तौर पर, कम मेमोरी वाली स्थितियों में, जब किसी सेवा को चलने के दौरान बंद किया जा सकता है.
- Service.setForeground() को बंद कर दिया गया है और अब यह कोई काम नहीं करता. इसे एक नए एपीआई, startForeground() से बदल दिया गया है, जो फ़ोरग्राउंड स्थिति के साथ चल रही सूचना को जोड़ने में मदद (और ज़रूरी) करता है.
- MotionEvent अब उन डिवाइसों के लिए, एक साथ होने वाले टच की जानकारी दे सकता है जिन पर यह काम करता है. एक साथ तीन पॉइंटर ट्रैक किए जा सकते हैं.
- KeyEvent में, बटन दबाने पर होने वाली कार्रवाई और बटन को दबाकर रखने की सुविधा को लागू करने के लिए, बटन दबाने से जुड़े नए एपीआई हैं. साथ ही, वर्चुअल बटन के लिए बटन दबाने की सुविधा को रद्द करने का एक नया तरीका भी है.
- WindowManager.LayoutParams में नए कॉन्सटेंट हैं, जो स्क्रीन के दिखने पर विंडो को चालू कर देते हैं और स्क्रीन लॉक होने पर भी विंडो दिखाते हैं. इससे ऐप्लिकेशन, डिवाइस को सक्रिय करने वाली अलार्म घड़ियों जैसी चीज़ों को ज़्यादा अच्छी तरह से लागू कर सकते हैं.
- नए इंटेंट एपीआई, जो डिवाइस के डॉकिंग स्टेटस को ब्रॉडकास्ट करते हैं. साथ ही, डिवाइस को डेस्कटॉप या कार डॉक में रखने पर, ऐप्लिकेशन को खास गतिविधियां शुरू करने की अनुमति देते हैं.
बटन छोड़ने पर होने वाले मुख्य इवेंट
Android 2.0 को उन डिवाइसों पर चलाने के लिए डिज़ाइन किया गया है जो फ़िज़िकल बटन के बजाय, वर्चुअल बटन का इस्तेमाल करते हैं. जैसे, होम, मेन्यू, बैक, और खोजने के लिए. बेहतरीन उपयोगकर्ता की मदद करने के लिए अनुभव प्राप्त कर रहे हैं, तो Android प्लेटफ़ॉर्म अब इन बटन को की-डाउन का विकल्प होता है. इससे, बटन पर अनजाने में होने वाले इवेंट को रोकने में मदद मिलती है. साथ ही, उपयोगकर्ता को बटन के हिस्से को दबाने और फिर इवेंट जनरेट किए बिना उसे बाहर खींचने की सुविधा मिलती है.
व्यवहार में इस बदलाव से आपके ऐप्लिकेशन पर सिर्फ़ तब असर होगा, जब यह बटन इवेंट को रोकने और की-डाउन पर कार्रवाई करने के बजाय, बटन दबाएं. विशेष रूप से अगर आपका ऐप्लिकेशन BACK कुंजी को बाधित कर रहा है, तो आपको यह भी पक्का करें कि आपका ऐप्लिकेशन मुख्य इवेंट को सही तरीके से मैनेज कर रहा हो.
आम तौर पर, किसी ऐप्लिकेशन में BACK कुंजी को रोकने की सलाह नहीं दी जाती है, हालांकि, अगर आपका ऐप्लिकेशन ऐसा कर रहा है और वह की-डाउन पर क्लिक करें, न कि बटन-अप, तो आपको अपने कोड में बदलाव करना चाहिए.
अगर आपका ऐप्लिकेशन, Android 2.0 (एपीआई लेवल 5) में उपलब्ध एपीआई का इस्तेमाल करता है, तो मुख्य-इवेंट पेयर को मैनेज करने के लिए, नए एपीआई का इस्तेमाल किया जा सकता है:
- अगर आप किसी गतिविधि या डायलॉग में BACK कुंजी को इंटरसेप्ट कर रहे हैं, तो बस
नया
onBackPressed()
तरीका लागू करें. - अगर किसी व्यू में BACK बटन को इंटरसेप्ट किया जा रहा है, तो आपको बटन दबाने पर (
startTracking()
के नए तरीके से) बटन इवेंट को ट्रैक करना चाहिए. इसके बाद, बटन छोड़ने पर कार्रवाई शुरू करनी चाहिए. यहां एक पैटर्न दिया गया है, जिसका इस्तेमाल किया जा सकता है:
Kotlin
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { KeyEvent.KEYCODE_BACK -> { if (event.repeatCount == 0) { event.startTracking() true } else { false } } ... else -> super.onKeyDown(keyCode, event) } } override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { KeyEvent.KEYCODE_BACK -> { if (event.isTracking && !event.isCanceled) { // *** DO ACTION HERE *** true } else { false } } ... else -> super.onKeyUp(keyCode, event) } }
Java
public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { event.startTracking(); return true; } return super.onKeyDown(keyCode, event); } public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking() && !event.isCanceled()) { // *** DO ACTION HERE *** return true; } return super.onKeyUp(keyCode, event); }
अगर आप किसी लेगसी ऐप्लिकेशन को अपडेट करना चाहते हैं, ताकि वह BACK को हैंडल करे कुंजी Android 2.0 और पुराने प्लेटफ़ॉर्म, दोनों वर्शन के लिए ठीक से काम करती है, तो ऊपर बताए गए तरीके का इस्तेमाल कर सकते हैं. आपका कोड, बटन को दबाने पर टारगेट बटन इवेंट को कैच कर सकता है. साथ ही, मुख्य इवेंट को ट्रैक करने के लिए एक फ़्लैग सेट कर सकता है. इसके बाद, बटन को छोड़ने पर भी इवेंट को कैच कर सकता है. अगर ट्रैकिंग फ़्लैग सेट है, तो वह अपनी पसंद की कार्रवाई को लागू कर सकता है. आप फ़ोकस में होने वाले बदलावों पर नज़र रखना और ट्रैकिंग को मिटाना भी चाहेंगे फ़ोकस पाने/खोने पर फ़्लैग कर सकता है.
एपीआई में अंतर की रिपोर्ट
Android 2.0 (एपीआई लेवल 5) में, पिछले वर्शन की तुलना में एपीआई में हुए बदलावों के बारे में ज़्यादा जानने के लिए, एपीआई में हुए बदलावों की रिपोर्ट देखें.