Android 2.2 के लिए API

एपीआई लेवल: 8

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

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

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

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

एपीआई लेवल

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

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

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

Framework API में हुए बदलाव

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

बाहरी स्टोरेज मीडिया पर ऐप्लिकेशन इंस्टॉल करना

Android प्लैटफ़ॉर्म अब ऐप्लिकेशन को डिवाइस के बाहरी स्टोरेज मीडिया (जैसे, एसडी कार्ड) पर इंस्टॉल करने का अनुरोध करने की अनुमति देता है. यह अनुरोध, डिवाइस की इंटरनल मेमोरी पर इंस्टॉल करने के विकल्प के तौर पर किया जाता है.

ऐप्लिकेशन डेवलपर, मेनिफ़ेस्ट फ़ाइल में <manifest> के नए एट्रिब्यूट की मदद से, अपने ऐप्लिकेशन के लिए इंस्टॉलेशन की पसंदीदा जगह बता सकते हैं, android:installLocation. इस एट्रिब्यूट की तीन वैल्यू इस्तेमाल की जा सकती हैं: "internalOnly", "preferExternal", और "auto". इंस्टॉल करते समय, सिस्टम android:installLocation की वैल्यू की जांच करता है. साथ ही, अगर मुमकिन हो, तो android:installLocation को पसंदीदा जगह के हिसाब से इंस्टॉल करता है..apk अगर ऐप्लिकेशन ने बाहरी स्टोरेज में इंस्टॉल करने का अनुरोध किया है, तो सिस्टम उसे बाहरी स्टोरेज में मौजूद, एन्क्रिप्ट (सुरक्षित) किए गए निजी पार्टीशन में इंस्टॉल करता है. जब किसी ऐप्लिकेशन का .apk फ़ाइल फ़ॉर्मैट में मौजूद ऐप्लिकेशन, डिवाइस के बाहरी स्टोरेज में इंस्टॉल हो जाता है, तो उपयोगकर्ता सेटिंग में 'ऐप्लिकेशन मैनेज करें' सेक्शन में जाकर, उपयोगकर्ता .apk फ़ाइल के स्टोरेज की जगह बदल सकता है. साथ ही, ज़रूरत पड़ने पर उसे डिवाइस के इंटरनल स्टोरेज में ले जा सकता है. इसके अलावा, .apk फ़ाइल को इंटरनल स्टोरेज से बाहरी स्टोरेज में भी ले जाया जा सकता है.

डिफ़ॉल्ट रूप से, सिस्टम सभी ऐप्लिकेशन को डिवाइस की इंटरनल मेमोरी में इंस्टॉल करता है. हालांकि, उन ऐप्लिकेशन को बाहरी स्टोरेज में इंस्टॉल करने का अनुरोध किया जा सकता है. इसका मतलब है कि सिस्टम हमेशा लेगसी ऐप्लिकेशन को इंटरनल मेमोरी में इंस्टॉल करेगा, क्योंकि उनके पास android:installLocation एट्रिब्यूट का ऐक्सेस नहीं होता. हालांकि, किसी लेगसी ऐप्लिकेशन को कॉन्फ़िगर और कंपाइल किया जा सकता है, ताकि वह प्लैटफ़ॉर्म के पुराने वर्शन पर अंदरूनी तौर पर और ज़रूरत पड़ने पर Android 2.2 और उसके बाद के वर्शन वाले प्लैटफ़ॉर्म पर बाहरी तौर पर इंस्टॉल हो सके.

ध्यान दें कि डिवाइस के बाहरी मीडिया पर इंस्टॉल करने का अनुरोध करना, सभी ऐप्लिकेशन के लिए सही नहीं है. ऐसा इसलिए, क्योंकि बाहरी मीडिया को हटाया जा सकता है और उसे अनमाउंट/फिर से माउंट करने से, उपयोगकर्ता अनुभव और सिस्टम सेटिंग में रुकावट आ सकती है.

अपने ऐप्लिकेशन के लिए, इंस्टॉल करने की पसंदीदा जगह सेट करने के बारे में ज़्यादा जानने के लिए, कृपया ऐप्लिकेशन इंस्टॉल करने की जगह दस्तावेज़ पढ़ें. इसमें यह जानकारी भी दी गई है कि किस तरह के ऐप्लिकेशन को बाहरी इंस्टॉलेशन का अनुरोध करना चाहिए और किस तरह के ऐप्लिकेशन को नहीं.

डेटा का बैक अप लेना

प्लैटफ़ॉर्म अब एक सामान्य बैकअप सेवा उपलब्ध कराता है. इसका इस्तेमाल करके, ऐप्लिकेशन उपयोगकर्ता के डेटा का बैकअप ले सकते हैं और उसे पहले जैसा कर सकते हैं. इससे यह पक्का होता है कि डिवाइस बदलने या ऐप्लिकेशन को फिर से इंस्टॉल करने पर, उपयोगकर्ता का डेटा सुरक्षित रहेगा. बैकअप मैनेजर, ऐप्लिकेशन के डेटा को क्लाउड में बैकअप स्टोरेज से और उसमें भेजने का काम करता है. Backup Manager, किसी भी तरह का डेटा सेव कर सकता है. जैसे, कोई भी डेटा या फ़ाइलें. साथ ही, यह बैकअप लेने और उसे वापस लाने की प्रोसेस को एक-एक करके मैनेज करता है. ज़्यादा जानकारी के लिए, डेटा का बैकअप लेना लेख पढ़ें.

ग्राफ़िक्स

  • android.opengl.GLES20 में नए OpenGL ES 2.0 एपीआई.
  • टेक्सचर कंप्रेस करने के लिए ETC1 का इस्तेमाल करने के लिए, नई ETC1, ETC1Util, और ETC1Util.ETC1Texture क्लास और यूटिलिटी के तरीके.
  • नई ImageFormat क्लास.
  • YUV से JPEG में कंप्रेस करने और YUV डेटा में बदलाव करने की सुविधा चालू करने के लिए, नया YUV image format API.

मीडिया

  • android.media.AudioManager में नए एपीआई जोड़े गए हैं. इनकी मदद से, ऑडियो फ़ोकस को मैनेज किया जा सकता है. साथ ही, ट्रांसपोर्ट कंट्रोल, ऑडियो फ़ोकस के कुछ समय के लिए बंद होने, और डकिंग की सुविधा को कंट्रोल किया जा सकता है.
  • ऑडियो को एससीओ पर भेजने के लिए, ब्रॉडकास्ट का नया इंटेंट — ACTION_SCO_AUDIO_STATE_CHANGED. इसमें नई स्थिति के बारे में बताने वाले एक्सट्रा शामिल हैं.
  • SoundPool में नए एपीआई, जो साउंड लोड होने की प्रोसेस पूरी होने का पता लगाते हैं.
  • SoundPool में, वीडियो अपने-आप रुकने और फिर से चलने की सुविधा के लिए नए एपीआई.
  • MediaRecorder में नए एपीआई, जो चैनलों की संख्या, एन्कोडिंग और सैंपलिंग रेट, सैंपलिंग रेट के लिए ऑडियो सेटिंग तय करने के लिए हैं.
  • मीडिया डेटाबेस में फ़ाइलें जोड़ने के लिए नए एपीआई, ताकि वे अपने-आप स्कैन हो जाएं. MediaScannerConnection.scanFile और MediaScannerConnection.OnScanCompletedListener देखें.

बोली पहचानने की सुविधा और तीसरे पक्ष के पहचान करने वाले इंजन

  • यह प्लैटफ़ॉर्म, बोली को पहचानने वाले नए एपीआई उपलब्ध कराता है. इनकी मदद से, ऐप्लिकेशन, आवाज़ को पहचानने वाली उपलब्ध सुविधा के साथ बेहतर तरीके से इंटरैक्ट कर सकते हैं. उदाहरण के लिए, एपीआई की मदद से, किसी आईएमई में आवाज़ पहचानने की सुविधा को बेहतर तरीके से इंटिग्रेट किया जा सकता है.
  • यह प्लैटफ़ॉर्म, RecognitionService बेस क्लास भी उपलब्ध कराता है. इसकी मदद से, तीसरे पक्ष के डेवलपर, प्लग-इन पहचानने वाले इंजन बना सकते हैं.
  • कॉलबैक पाने के लिए, नया RecognitionListener इंटरफ़ेस.
  • RecognizerIntent के नए एक्सट्रा, जिनकी मदद से अनुरोध करने वाले ऐप्लिकेशन को पसंदीदा भाषा, मिलीसेकंड में कम से कम अवधि वगैरह की जानकारी देने की सुविधा मिलती है.

कैमरा और कैमकॉर्डर

  • झलक दिखाने वाली पाइपलाइन की परफ़ॉर्मेंस को बेहतर बनाने के लिए, कैमरे की झलक दिखाने वाले एपीआई में बदलाव किए गए हैं.
  • कैमरे के लिए नया डिसप्ले ओरिएंटेशन (यह अब पोर्ट्रेट ओरिएंटेशन में काम कर सकता है).
  • ज़ूम लेवल को मैनेज करने के लिए, android.hardware.Camera में नए एपीआई.
  • डिवाइस के कैमरे की सेटिंग, जैसे कि फ़ोकल लेंथ, एक्सपोज़र, ज़ूम लेवल, व्यू ऐंगल वगैरह की जानकारी पाने और उन्हें सेट करने के लिए नए एपीआई android.hardware.Camera.Parameters.
  • वीडियो और इमेज के थंबनेल बनाने के लिए नई thumbnail सुविधा.
  • नई CamcorderProfile और CamcorderProfile क्लास की मदद से, ऐप्लिकेशन यह तय कर सकते हैं कि डिवाइस के हार्डवेयर कैमरे की क्या सुविधाएं हैं.
  • android.media.ExifInterface में जीपीएस और फ़ोकल लेंथ की जानकारी पाने के लिए नई सुविधा.

डिवाइस नीति मैनेजर

डिवाइस की नीति मैनेज करने वाले नए एपीआई की मदद से, डेवलपर "डिवाइस एडमिन" ऐप्लिकेशन लिख सकते हैं. ये ऐप्लिकेशन, डिवाइस की सुरक्षा से जुड़ी सुविधाओं को कंट्रोल कर सकते हैं. जैसे, पासवर्ड की कम से कम सुरक्षा, डेटा मिटाना वगैरह. उपयोगकर्ता, अपने डिवाइसों पर चालू किए गए एडमिन चुन सकते हैं. ज़्यादा जानकारी के लिए, DeviceAdminSample.java में android.app.admin क्लास या ऐप्लिकेशन कोड का उदाहरण देखें.

यूज़र इंटरफ़ेस (यूआई) फ़्रेमवर्क

  • नए यूज़र इंटरफ़ेस (यूआई) मोड "कार मोड" और "नाइट मोड" और UiModeManager की मदद से, ऐप्लिकेशन अपने यूज़र इंटरफ़ेस (यूआई) को उपयोगकर्ता के खास मोड के हिसाब से अडजस्ट कर सकते हैं.
  • नया ScaleGestureDetector, जो दिए गए MotionEvents का इस्तेमाल करके, एक से ज़्यादा पॉइंटर (मल्टीटच) वाले ट्रांसफ़ॉर्मेशन जेस्चर का पता लगाता है और उन्हें मैनेज करता है.
  • MotionEvent ऑब्जेक्ट में मल्टीटच इवेंट की रिपोर्टिंग के तरीके में सुधार.
  • लेआउट एट्रिब्यूट fill_parent का नाम बदलकर match_parent कर दिया गया है. इसका असर एक्सएमएल और जावा कोड, दोनों पर पड़ता है (ViewGroup.LayoutParams देखें). ध्यान दें कि प्लैटफ़ॉर्म, लेगसी ऐप्लिकेशन में fill_parent के इस्तेमाल को स्वीकार करता रहेगा.
  • नए लेआउट एट्रिब्यूट tabStripEnabled, tabStripRight, और tabStripLeft की मदद से, डेवलपर TabWidgets की सबसे नीचे मौजूद स्ट्रिप को पसंद के मुताबिक बना सकते हैं.
  • गतिविधि में मैनेज किए जा रहे डायलॉग के लिए बेहतर सहायता.

खाते और सिंक करना

  • नए तरीके AddPeriodicSync() की मदद से, किसी खास खाते, प्राधिकरण, और अन्य चीज़ों को तय फ़्रीक्वेंसी पर सिंक करने का शेड्यूल बनाया जा सकता है.

नए मेनिफ़ेस्ट एलिमेंट और एट्रिब्यूट

  • ऐप्लिकेशन को इंस्टॉल करने के लिए, डिवाइस के स्टोरेज में जगह तय करने के लिए (ऊपर बाहरी स्टोरेज मीडिया पर ऐप्लिकेशन इंस्टॉल करना देखें):
    • <manifest> एलिमेंट का नया android:installLocation एट्रिब्यूट. इससे किसी ऐप्लिकेशन के लिए, इंस्टॉल करने की डिफ़ॉल्ट जगह के बारे में पता चलता है.
  • उपयोगकर्ता के डेटा का बैकअप मैनेज करने के लिए (ज़्यादा जानकारी के लिए, ऊपर बैकअप मैनेजर देखें):
    • <application> एलिमेंट का नया android:backupAgent एट्रिब्यूट. बैकअप/वापस लाने के ऑपरेशन को मैनेज करने के लिए, ऐप्लिकेशन के दिए गए BackupAgent सबक्लास के कॉम्पोनेंट का नाम बताता है.
    • <application> एलिमेंट का नया android:restoreAnyVersion एट्रिब्यूट. बूलियन वैल्यू, जो यह बताती है कि ऐप्लिकेशन, बैक अप लिए गए किसी भी डेटासेट को वापस लाने के लिए तैयार है या नहीं. भले ही, बैकअप, डिवाइस पर फ़िलहाल इंस्टॉल किए गए ऐप्लिकेशन के नए वर्शन का हो.
  • प्लैटफ़ॉर्म के JIT कंपाइलर को मैनेज करने के लिए:
    • <application> एलिमेंट का नया android:vmSafeMode एट्रिब्यूट. बूलियन वैल्यू, जो यह बताती है कि ऐप्लिकेशन चलाते समय, JIT कंपाइलर ऑप्टिमाइज़ेशन को बंद करना है या नहीं.

अनुमतियां

  • android.permission.BIND_DEVICE_ADMIN — डिवाइस एडमिनिस्ट्रेशन ब्रॉडकास्ट रिसीवर को यह अनुमति ज़रूर चाहिए, ताकि यह पक्का किया जा सके कि सिर्फ़ सिस्टम ही उससे इंटरैक्ट कर सके.
  • android.permission.KILL_BACKGROUND_PROCESSES — ऐप्लिकेशन को killBackgroundProcesses(String) को कॉल करने की अनुमति देता है.
  • android.permission.BIND_WALLPAPER — किसी भी WallpaperService के लिए यह अनुमति ज़रूरी है, ताकि यह पक्का किया जा सके कि सिर्फ़ सिस्टम ही उससे इंटरैक्ट कर सके.
  • android.permission.SET_TIME — ऐप्लिकेशन को सिस्टम का समय सेट करने की अनुमति देता है.

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

Android 2.2 (एपीआई लेवल 8) में एपीआई से जुड़े सभी बदलावों के बारे में ज़्यादा जानने के लिए, एपीआई के अंतर की रिपोर्ट देखें.