Android 2.0, रिलीज़ 1

एपीआई लेवल: 5

Android 2.0, प्लैटफ़ॉर्म का एक मुख्य वर्शन है. इसे नवंबर 2009 से, Android वाले हैंडसेट पर डिप्लॉय किया जा सकता है. रिलीज़ में उपयोगकर्ताओं और डेवलपर के लिए नई सुविधाएं शामिल हैं. साथ ही, Android फ़्रेमवर्क एपीआई में बदलाव किए गए हैं.

डेवलपर के लिए, Android 2.0 प्लैटफ़ॉर्म, Android SDK टूल के लिए डाउनलोड किए जा सकने वाले कॉम्पोनेंट के तौर पर उपलब्ध है. डाउनलोड किए जा सकने वाले प्लैटफ़ॉर्म में, पूरी तरह से काम करने वाली Android लाइब्रेरी और सिस्टम इमेज के साथ-साथ एम्युलेटर स्किन का एक सेट, सैंपल ऐप्लिकेशन वगैरह शामिल हैं. डाउनलोड किया जा सकने वाला प्लैटफ़ॉर्म, पूरी तरह से नीति का पालन करता हो और उसमें कोई बाहरी लाइब्रेरी शामिल न हो.

Android 2.0 प्लैटफ़ॉर्म को डेवलप करना या उसकी जांच करना शुरू करने के लिए, Android SDK और AVD Manager टूल का इस्तेमाल करके, प्लैटफ़ॉर्म को अपने SDK टूल में डाउनलोड करें.

प्लैटफ़ॉर्म की खास बातें

उपयोगकर्ताओं के लिए उपलब्ध नई सुविधाओं और प्लैटफ़ॉर्म की हाइलाइट की सूची देखने के लिए, Android 2.0 प्लैटफ़ॉर्म की हाइलाइट दस्तावेज़ देखें.

पहले से मौजूद ऐप्लिकेशन

डाउनलोड किए जा सकने वाले प्लैटफ़ॉर्म में शामिल सिस्टम इमेज में, ये पहले से मौजूद ऐप्लिकेशन होते हैं:

  • अलार्म क्लॉक
  • ब्राउज़र
  • कैल्कुलेटर
  • कैमकॉर्डर
  • कैमरा
  • संपर्क
  • पसंद के मुताबिक स्थान-भाषा (डेवलपर ऐप्लिकेशन)
  • Dev Tools (डेवलपर ऐप्लिकेशन)
  • Dialer
  • ईमेल
  • गैलरी में देखें
  • जेस्चर बिल्डर
  • जैपनीज़ टेक्स्ट इनपुट के लिए IME
  • मैसेज सेवा
  • संगीत
  • सेटिंग
  • Spare Parts (डेवलपर ऐप्लिकेशन)

स्थान-भाषाएं

डाउनलोड किए जा सकने वाले प्लैटफ़ॉर्म में शामिल सिस्टम इमेज में, कई तरह की पहले से मौजूद भाषाएं उपलब्ध होती हैं. कुछ मामलों में, इलाके के हिसाब से स्ट्रिंग, लोकेल के लिए उपलब्ध होती हैं. अन्य मामलों में, भाषा के डिफ़ॉल्ट वर्शन का इस्तेमाल किया जाता है. Android 2.0 सिस्टम इमेज में उपलब्ध भाषाओं की सूची यहां दी गई है. साथ ही, language_country/region लोकेल डिस्क्रिप्टर भी दिया गया है.

  • चाइनीज़, पीआरसी (zh_CN)
  • चाइनीज़, ताइवान (zh_TW)
  • चेक (cs_CZ)
  • डच, नीदरलैंड्स (nl_NL)
  • डच, बेल्जियम (nl_BE)
  • अंग्रेज़ी, अमेरिका (en_US)
  • अंग्रेज़ी, ब्रिटेन (en_GB)
  • अंग्रेज़ी, कनाडा (en_CA)
  • अंग्रेज़ी, ऑस्ट्रेलिया (en_AU)
  • अंग्रेज़ी, न्यूज़ीलैंड (en_NZ)
  • अंग्रेज़ी, सिंगापुर(hi_SG)
  • फ़्रेंच, फ़्रांस (fr_FR)
  • फ़्रेंच, बेल्जियम (fr_BE)
  • फ़्रेंच, कनाडा (fr_CA)
  • फ़्रेंच, स्विट्ज़रलैंड (fr_CH)
  • जर्मन, जर्मनी (de_DE)
  • जर्मन, ऑस्ट्रिया (de_AT)
  • जर्मन, स्विट्ज़रलैंड (de_CH)
  • जर्मन, लिख्तेंस्ताइन (de_LI)
  • इटैलियन, इटली (it_IT)
  • इटैलियन, स्विट्ज़रलैंड (it_CH)
  • जैपनीज़ (ja_JP)
  • कोरियन (ko_KR)
  • पोलिश (pl_PL)
  • रशियन (ru_RU)
  • स्पैनिश (es_ES)
  • स्थानीय जगह के अनुसार बनाई गई यूआई स्ट्रिंग उन स्थान-भाषाओं से मेल खाती हैं जिन्हें सेटिंग से ऐक्सेस किया जा सकता है.

    एम्युलेटर स्किन

    डाउनलोड किए जा सकने वाले प्लैटफ़ॉर्म में, एम्युलेटर स्किन का एक सेट शामिल होता है. इसका इस्तेमाल, अलग-अलग स्क्रीन साइज़ और रिज़ॉल्यूशन में अपने ऐप्लिकेशन को मॉडलिंग करने के लिए किया जा सकता है. एम्युलेटर स्किन ये हैं:

    • QVGA (240x320, लो डेंसिटी, छोटी स्क्रीन)
    • WQVGA (240x400, कम डेंसिटी, सामान्य स्क्रीन)
    • FWQVGA (240x432, कम डेंसिटी, सामान्य स्क्रीन)
    • HVGA (320x480, मध्यम सघनता, सामान्य स्क्रीन)
    • WVGA800 (480x800, उच्च सघनता, सामान्य स्क्रीन)
    • WVGA854 (480x854 हाई डेंसिटी, सामान्य स्क्रीन)

    Android वाले सभी डिवाइसों पर सही तरीके से दिखने और काम करने वाला ऐप्लिकेशन बनाने के तरीके के बारे में ज़्यादा जानने के लिए, एक से ज़्यादा स्क्रीन के साथ काम करने की सुविधा देखें.

    डेवलपर के लिए सुविधाएं

    नीचे दिए गए सेक्शन, डेवलपर के लिए डाउनलोड की जा सकने वाली Android 2.0 प्लैटफ़ॉर्म कॉम्पोनेंट से मिलने वाली नई सुविधाओं के बारे में जानकारी देते हैं.

    चींटियों की सहायता

    • डीबग- और रिलीज़-मोड ऐप्लिकेशन साइनिंग. रिलीज़-मोड साइनिंग में zipalign को ऑप्टिमाइज़ करने के लिए इंटिग्रेट की गई सहायता शामिल है. ज़्यादा जानकारी के लिए, अपने ऐप्लिकेशन साइन करना देखें.
    • Emma इंस्ट्रुमेंटेशन प्रोजेक्ट (कोड कवरेज) के लिए सहायता वाला नया Ant बिल्ड सिस्टम जोड़ता है.

    Framework API

    नीचे दिए गए सेक्शन Android 2.0 प्लैटफ़ॉर्म से मिले ऐप्लिकेशन फ़्रेमवर्क एपीआई के बारे में जानकारी देते हैं.

    API स्तर

    Android 2.0 प्लैटफ़ॉर्म, फ़्रेमवर्क एपीआई का अपडेट किया गया वर्शन उपलब्ध कराता है. पिछले वर्शन की तरह ही, Android 2.0 API को एक इंटीजर आइडेंटिफ़ायर दिया जाता है — 5 — जो सिस्टम में सेव होता है. "एपीआई लेवल" नाम के इस आइडेंटिफ़ायर की मदद से, सिस्टम को ऐप्लिकेशन इंस्टॉल करने से पहले सही तरीके से यह तय करने की अनुमति मिलती है कि कोई ऐप्लिकेशन, सिस्टम के साथ काम करता है या नहीं.

    अपने ऐप्लिकेशन में Android 2.0 में लॉन्च किए गए एपीआई का इस्तेमाल करने के लिए, आपको अपने ऐप्लिकेशन के मेनिफ़ेस्ट में <uses-sdk> एलिमेंट के एट्रिब्यूट में सही वैल्यू, "5" सेट करनी होगी.

    एपीआई लेवल को इस्तेमाल करने के तरीके के बारे में ज़्यादा जानने के लिए, एपीआई लेवल वाला दस्तावेज़ देखें.

    एपीआई में हुए बदलावों की खास जानकारी

    ब्लूटूथ

    • ब्लूटूथ चालू/बंद करें
    • डिवाइस और सेवाओं की अपने-आप पहचान करना
    • RFCOMM का इस्तेमाल करके रिमोट डिवाइस से कनेक्ट करें और डेटा भेजें/पाएं
    • RFCOMM सेवाओं का विज्ञापन करना और आने वाले RFCOMM कनेक्शन को सुनना

    अडैप्टर सिंक करें

    • किसी भी बैकएंड से कनेक्ट करने के लिए, सिंक अडैप्टर के लिए नए एपीआई

    खाता मैनेजर

    • पुष्टि करने वाले टोकन/पासवर्ड को सुरक्षित तरीके से सेव और ऐक्सेस करने के लिए, एक ही जगह पर मौजूद खाता मैनेजर एपीआई

    संपर्क

    • नए संपर्क एपीआई, जो कई खातों से डेटा इकट्ठा करने की अनुमति देते हैं
    • क्विक संपर्क फ़्रेमवर्क के नए एपीआई की मदद से, डेवलपर अपने ऐप्लिकेशन में संपर्क बैज बना सकते हैं. बैज पर क्लिक करने से एक विंडो खुलती है, जिसमें एक क्लिक से उस व्यक्ति से संपर्क करने के तरीकों की सूची होती है.

    WebView

    • अब काम न करने वाली क्लास: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry.

    कैमरा

    • कलर इफ़ेक्ट, सीन मोड, फ़्लैश मोड, फ़ोकस मोड, व्हाइट बैलेंस, रोटेशन, और अन्य सेटिंग के लिए नए पैरामीटर.
    • ज़ूम लेवल बदलने पर कार्रवाइयां करने के लिए, नया ZoomCallback इंटरफ़ेस.

    मीडिया

    • MediaScanner अब MediaStore में डाली गई सभी इमेज के लिए थंबनेल जनरेट करता है.
    • मांग पर इमेज और वीडियो के थंबनेल वापस पाने के लिए नया थंबनेल एपीआई.

    अन्य फ़्रेमवर्क

    • गतिविधियों को आसानी से मौजूदा सिस्टम वॉलपेपर के ऊपर दिखाने या पिछली गतिविधि को बैकग्राउंड में दिखाने के लिए, android.R.style में नई सिस्टम थीम इस्तेमाल की गई हैं.
    • नया WallpaperManager API, पहले Context में मौजूद वॉलपेपर एपीआई की जगह लेता है और उन्हें बेहतर बनाता है. इससे ऐप्लिकेशन, सिस्‍टम वॉलपेपर का अनुरोध कर सकते हैं और उसे सेट कर सकते हैं.
    • नए सेवा एपीआई, सेवा की लाइफ़साइकल को सही तरीके से मैनेज करने में ऐप्लिकेशन की मदद करते हैं. खास तौर पर, कम मेमोरी वाली स्थितियों में सेवा के चलते समय सेवा बंद हो सकती है.
      • Service.setForeground() को बंद कर दिया गया है और अब यह कोई काम नहीं करता. इसे एक नए एपीआई, startForeground() से बदल दिया गया है, जो फ़ोरग्राउंड स्थिति के साथ चल रही सूचना को जोड़ने में मदद (और ज़रूरी) करता है.
    • MotionEvent अब उन सभी डिवाइस से एक साथ होने वाली टच जानकारी की रिपोर्ट कर सकता है जिन पर यह सुविधा काम करती है. एक साथ तीन पॉइंटर ट्रैक किए जा सकते हैं.
    • KeyEvent में कुंजी भेजने वाले नए एपीआई हैं, जो ऊपर बताई गई कार्रवाई और लंबे समय तक दबाए जाने वाले व्यवहार को लागू करने में मदद करते हैं. साथ ही, वर्चुअल बटन के लिए, बटन दबाने पर कार्रवाई को रद्द करने का नया तरीका भी मौजूद है.
    • WindowManager.LayoutParams में नए कॉन्स्टेंट हैं. इनकी मदद से, विंडो को स्क्रीन पर दिखाने पर, स्क्रीन चालू हो जाती है. साथ ही, स्क्रीन लॉक होने पर भी विंडो दिखती है. इससे ऐप्लिकेशन, डिवाइस को सक्रिय करने वाली अलार्म घड़ियों जैसी चीज़ों को ज़्यादा अच्छी तरह से लागू कर सकते हैं.
    • नए इंटेंट एपीआई, जो डिवाइस की डॉकिंग स्थिति को ब्रॉडकास्ट करते हैं और डिवाइस को डेस्कटॉप या कार डॉक में रखे जाने पर ऐप्लिकेशन को विशेष गतिविधियां लॉन्च करने की अनुमति देते हैं.

    की-अप के बाद चलाए गए मुख्य इवेंट

    Android 2.0 को उन डिवाइसों पर चलाने के लिए डिज़ाइन किया गया है जो फ़िज़िकल बटन के बजाय, वर्चुअल बटन का इस्तेमाल करते हैं. जैसे, होम, मेन्यू, बैक, और खोजने के लिए. उन डिवाइसों पर उपयोगकर्ताओं को बेहतर अनुभव देने के लिए, Android प्लैटफ़ॉर्म अब इन बटन को दबाने पर, बटन को छोड़ने के बजाय दबाने पर काम करता है. इससे, बटन पर अनजाने में होने वाले इवेंट को रोकने में मदद मिलती है. साथ ही, उपयोगकर्ता को बटन के हिस्से को दबाने और फिर इवेंट जनरेट किए बिना उसे बाहर खींचने की सुविधा मिलती है.

    व्यवहार में इस बदलाव से आपके ऐप्लिकेशन पर सिर्फ़ तब असर होगा, जब वह बटन दबाने के बजाय, बटन पर होने वाले इवेंट को रोक रहा हो और की-डाउन पर कोई कार्रवाई कर रहा हो. खास तौर पर अगर आपका ऐप्लिकेशन BACK कुंजी को बाधित कर रहा है, तो आपको यह पक्का करना चाहिए कि आपका ऐप्लिकेशन मुख्य इवेंट को सही तरीके से मैनेज कर रहा हो.

    आम तौर पर, किसी ऐप्लिकेशन में BACK कुंजी को रोकने की सलाह नहीं दी जाती है. हालांकि, अगर आपका ऐप्लिकेशन ऐसा कर रहा है और वह की-अप के बजाय, की-डाउन पर कोई कार्रवाई शुरू करता है, तो आपको अपने कोड में बदलाव करना चाहिए.

    अगर आपका ऐप्लिकेशन Android 2.0 (एपीआई लेवल 5) में पेश किए गए एपीआई का इस्तेमाल करता है, तो आप मुख्य इवेंट पेयर को मैनेज करने के लिए नए एपीआई का इस्तेमाल कर सकते हैं:

    • अगर किसी गतिविधि या डायलॉग में BACK बटन को इंटरसेप्ट किया जा रहा है, तो onBackPressed() का नया तरीका लागू करें.
    • अगर किसी व्यू में 'वापस जाएं' बटन का इंटरसेप्ट किया जा रहा है, तो आपको की-डाउन पर बटन (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);
          }
      

    अगर आपको किसी लेगसी ऐप्लिकेशन को अपडेट करना है, ताकि Android 2.0 और पुराने, दोनों प्लैटफ़ॉर्म वर्शन के लिए 'वापस जाएं' बटन सही तरीके से काम करे, तो ऊपर बताए गए तरीके का इस्तेमाल करें. आपका कोड, बटन को दबाने पर टारगेट बटन इवेंट को कैच कर सकता है. साथ ही, मुख्य इवेंट को ट्रैक करने के लिए फ़्लैग सेट कर सकता है. इसके बाद, बटन को छोड़ने पर भी इवेंट को कैच कर सकता है. ट्रैकिंग फ़्लैग सेट होने पर, वह अपनी पसंद की कार्रवाई भी कर सकता है. आपको फ़ोकस में बदलावों को भी देखना होगा. साथ ही, फ़ोकस हासिल करने/खोने पर ट्रैकिंग फ़्लैग को हटाना होगा.

    एपीआई में अंतर की रिपोर्ट

    Android 2.0 (एपीआई लेवल 5) में, पिछले वर्शन की तुलना में एपीआई में हुए बदलावों के बारे में ज़्यादा जानने के लिए, एपीआई में हुए बदलावों की रिपोर्ट देखें.