Android Studio 3.2 (सितंबर 2018)

Android Studio 3.2 एक मुख्य रिलीज़ है. इसमें कई नई सुविधाएं और सुधार शामिल हैं.

3.2.1 (अक्टूबर 2018)

Android Studio 3.2 के इस अपडेट में, ये बदलाव किए गए हैं और गड़बड़ियां ठीक की गई हैं:

  • बंडल किए गए Kotlin का वर्शन अब 1.2.71 है.
  • अब डिफ़ॉल्ट बिल्ड टूल का वर्शन 28.0.3 है.
  • नेविगेशन लाइब्रेरी में, आर्ग्युमेंट टाइप के नाम type से बदलकर argType कर दिए गए हैं.
  • इन गड़बड़ियों को ठीक कर दिया गया है:
    • डेटा बाइंडिंग लाइब्रेरी का इस्तेमाल करते समय, अंडरस्कोर वाले वैरिएबल के नामों की वजह से कंपाइल करने में गड़बड़ियां हो रही थीं.
    • CMake की वजह से, IntelliSense और CLion की अन्य सुविधाएं काम नहीं कर रही थीं.
    • SliceProvider जोड़ने की वजह से, उन प्रोजेक्ट में कंपाइल करने से जुड़ी गड़बड़ियां हो रही थीं जिनमें androidx.* लाइब्रेरी का इस्तेमाल नहीं किया गया था.
    • कुछ Kotlin यूनिट टेस्ट नहीं चलाए जा रहे थे.
    • डेटा बाइंडिंग से जुड़ी समस्या की वजह से PsiInvalidElementAccessException हो रहा था.
    • <merge> एलिमेंट की वजह से, कभी-कभी लेआउट एडिटर क्रैश हो जाता था.

3.2.0 वर्शन से जुड़ी समस्याएं

ध्यान दें: ये समस्याएं Android Studio 3.2.1 में हल कर दी गई हैं

  • हमारा सुझाव है कि Kotlin के वर्शन 1.2.70 का इस्तेमाल न करें.

    Kotlin के वर्शन 1.2.61 में, Android Studio के हैंग होने की समस्या को ठीक किया गया है. हालांकि, Kotlin 1.2.70 में यह सुधार शामिल नहीं है.

    हालांकि, Kotlin के 1.2.71 और उसके बाद के वर्शन में, इस समस्या को ठीक कर दिया गया है.

  • आम तौर पर, आपको बिल्ड टूल का वर्शन बताने की ज़रूरत नहीं होती. हालांकि, Android Gradle प्लगिन 3.2.0 का इस्तेमाल करते समय, अगर renderscriptSupportModeEnabled को true पर सेट किया जाता है, तो आपको हर मॉड्यूल की build.gradle फ़ाइल में यह शामिल करना होगा:

    android.buildToolsVersion "28.0.3"

Assistant में नया क्या है

Android Studio में हुए नए बदलावों के बारे में आपको एक नई असिस्टेंट बताती है.

अगर Android Studio को नए सिरे से इंस्टॉल किया गया है या उसे अपडेट किया गया है, तो उसे शुरू करने पर Assistant खुल जाती है. ऐसा तब होता है, जब उसे पता चलता है कि दिखाने के लिए कोई नई जानकारी उपलब्ध है. सहायता > Android Studio में नया क्या है को चुनकर भी, Assistant को खोला जा सकता है.

Android Jetpack

Android Jetpack की मदद से, Android ऐप्लिकेशन को तेज़ी से डेवलप किया जा सकता है. इसमें कॉम्पोनेंट, टूल, और दिशा-निर्देश शामिल होते हैं. इनकी मदद से, दोहराए जाने वाले कामों को खत्म किया जा सकता है. साथ ही, अच्छी क्वालिटी वाले ऐसे ऐप्लिकेशन बनाए जा सकते हैं जिनकी जांच की जा सकती है. Android Studio में, Jetpack के साथ काम करने के लिए ये अपडेट शामिल हैं. ज़्यादा जानकारी के लिए, Jetpack का दस्तावेज़ देखें.

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

Android Studio 3.2 में, नेविगेशन एडिटर एक एक्सपेरिमेंटल सुविधा है. नेविगेशन एडिटर को चालू करने के लिए, फ़ाइल > सेटिंग (Mac पर Android Studio > प्राथमिकताएं) पर क्लिक करें. इसके बाद, बाईं ओर मौजूद पैनल में एक्सपेरिमेंटल कैटगरी चुनें. इसके बाद, नेविगेशन एडिटर चालू करें के बगल में मौजूद बॉक्स पर सही का निशान लगाएं. इसके बाद, Android Studio को फिर से चालू करें.

ज़्यादा जानने के लिए, नेविगेशन एडिटर का दस्तावेज़ पढ़ें.

AndroidX पर माइग्रेट करना

Jetpack के तहत, हम Android Support Libraries को नई Android एक्सटेंशन लाइब्रेरी में माइग्रेट कर रहे हैं. इसके लिए, androidx नेमस्पेस का इस्तेमाल किया जा रहा है. ज़्यादा जानकारी के लिए, AndroidX की खास जानकारी देखें.

Android Studio 3.2 में, माइग्रेट करने की नई सुविधा उपलब्ध है. इससे आपको इस प्रोसेस को पूरा करने में मदद मिलती है.

किसी मौजूदा प्रोजेक्ट को AndroidX पर माइग्रेट करने के लिए, Refactor > Migrate to AndroidX चुनें. अगर आपके पास ऐसी Maven डिपेंडेंसी हैं जो AndroidX नेमस्पेस पर माइग्रेट नहीं हुई हैं, तो Android Studio का बिल्ड सिस्टम उन प्रोजेक्ट डिपेंडेंसी को भी अपने-आप बदल देता है.

Android Gradle प्लग इन, ये ग्लोबल फ़्लैग उपलब्ध कराता है. इन्हें gradle.properties फ़ाइल में सेट किया जा सकता है:

  • android.useAndroidX: इस फ़्लैग को true पर सेट करने का मतलब है कि आपको अब से AndroidX का इस्तेमाल करना है. अगर फ़्लैग मौजूद नहीं है, तो Android Studio इस तरह से काम करता है जैसे फ़्लैग को false पर सेट किया गया हो.
  • android.enableJetifier: इस फ़्लैग को true पर सेट करने का मतलब है कि आपको टूल सपोर्ट (Android Gradle प्लगिन से) चाहिए, ताकि मौजूदा तीसरे पक्ष की लाइब्रेरी को अपने-आप इस तरह से बदला जा सके जैसे कि उन्हें AndroidX के लिए लिखा गया हो. अगर फ़्लैग मौजूद नहीं है, तो Android Studio इस तरह से काम करता है जैसे फ़्लैग को false पर सेट किया गया हो.

Migrate to AndroidX कमांड का इस्तेमाल करने पर, दोनों फ़्लैग true पर सेट हो जाते हैं.

अगर आपको AndroidX लाइब्रेरी का इस्तेमाल तुरंत शुरू करना है और तीसरे पक्ष की मौजूदा लाइब्रेरी को बदलने की ज़रूरत नहीं है, तो android.useAndroidX फ़्लैग को true पर और android.enableJetifier फ़्लैग को false पर सेट करें.

Android ऐप्लिकेशन बंडल

Android ऐप्लिकेशन बंडल, अपलोड करने का एक नया फ़ॉर्मैट है. इसमें आपके ऐप्लिकेशन का कंपाइल किया गया पूरा कोड और रिसॉर्स शामिल होते हैं. हालांकि, यह Google Play Store को एपीके जनरेट करने और साइन करने की अनुमति देता है.

इसके बाद, Google Play का नया ऐप्लिकेशन डिलीवरी मॉडल, आपके ऐप्लिकेशन बंडल का इस्तेमाल करके हर उपयोगकर्ता के डिवाइस कॉन्फ़िगरेशन के हिसाब से ऑप्टिमाइज़ किए गए APK जनरेट करता है और उन्हें डिलीवर करता है. इससे हर उपयोगकर्ता सिर्फ़ वह कोड और संसाधन डाउनलोड करता है जिनकी उसे आपका ऐप्लिकेशन चलाने के लिए ज़रूरत होती है. अब आपको एक से ज़्यादा APK बनाने, साइन करने, और मैनेज करने की ज़रूरत नहीं है. साथ ही, उपयोगकर्ताओं को छोटे और ज़्यादा ऑप्टिमाइज़ किए गए डाउनलोड मिलते हैं.

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

बंडल बनाने के लिए, बनाएं > बंडल / APK बनाएं > बंडल बनाएं को चुनें.

Android ऐप्लिकेशन बंडल बनाने और उसका विश्लेषण करने के निर्देशों के साथ-साथ ज़्यादा जानकारी के लिए, Android ऐप्लिकेशन बंडल लेख पढ़ें.

लेआउट एडिटर में सैंपल डेटा

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

सैंपल डेटा का इस्तेमाल करने के लिए, नए लेआउट में RecyclerView जोड़ें. इसके बाद, व्यू के नीचे मौजूद डिज़ाइन-टाइम एट्रिब्यूट बटन पर क्लिक करें. इसके बाद, सैंपल डेटा टेंप्लेट के कैरसेल से कोई विकल्प चुनें.

स्लाइस

स्लाइस, Android पर अन्य यूज़र इंटरफ़ेस प्लैटफ़ॉर्म में आपके ऐप्लिकेशन की कुछ सुविधाओं को एम्बेड करने का नया तरीका है. उदाहरण के लिए, स्लाइस की मदद से Google Search के सुझावों में ऐप्लिकेशन की सुविधाओं और कॉन्टेंट को दिखाया जा सकता है.

Android Studio 3.2 में, स्लाइस प्रोवाइडर के नए एपीआई के साथ-साथ नए लिंट चेक की सुविधा भी है. इससे आपको अपने ऐप्लिकेशन को बेहतर बनाने में मदद मिलती है. साथ ही, यह पक्का किया जा सकता है कि स्लाइस बनाते समय, सबसे सही तरीकों का इस्तेमाल किया जा रहा हो.

शुरू करने के लिए, किसी प्रोजेक्ट फ़ोल्डर पर राइट क्लिक करें. इसके बाद, New > Other > Slice Provider चुनें.

ज़्यादा जानने के लिए, स्लाइस इस्तेमाल करने से जुड़े दिशा-निर्देश पढ़ें. इसमें स्लाइस इंटरैक्शन की जांच करने का तरीका भी बताया गया है.

Kotlin 1.2.61

Android Studio 3.2 में Kotlin 1.2.61 बंडल किया गया है. साथ ही, नया Android SDK, Kotlin के साथ बेहतर तरीके से इंटिग्रेट होता है. ज़्यादा जानकारी के लिए, Android Developers ब्लॉग देखें.

IntelliJ IDEA 2018.1.6

Android Studio के मुख्य IDE को IntelliJ IDEA से मिले सुधारों के साथ अपडेट किया गया है. यह अपडेट 2018.1.6 रिलीज़ के ज़रिए किया गया है.

Android प्रोफ़ाइलर

Android Studio 3.2 में, Android Profiler की ये नई सुविधाएं आज़माएं.

सेशन

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

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

सिस्टम ट्रेस करने वाला टूल

अपने डिवाइस के सिस्टम सीपीयू और थ्रेड गतिविधि की जांच करने के लिए, सीपीयू प्रोफ़ाइलर में जाकर, नया सिस्टम ट्रेस कॉन्फ़िगरेशन चुनें. यह ट्रेस कॉन्फ़िगरेशन, systrace पर आधारित है. यह सिस्टम-लेवल की समस्याओं की जांच करने के लिए काम आता है. जैसे, यूज़र इंटरफ़ेस (यूआई) में गड़बड़ी.

इस ट्रेस कॉन्फ़िगरेशन का इस्तेमाल करते समय, प्रोफ़ाइलर टाइमलाइन में ज़रूरी कोड रूटीन को विज़ुअली मार्क किया जा सकता है. इसके लिए, अपने C/C++ कोड को नेटिव ट्रेसिंग एपीआई या अपने Java कोड को Trace क्लास के साथ इंस्ट्रुमेंट करें.

Memory Profiler में JNI रेफ़रंस की जांच करना

अगर आपने अपने ऐप्लिकेशन को Android 8.0 (एपीआई लेवल 26) या उसके बाद के वर्शन पर चलने वाले किसी डिवाइस पर डिप्लॉय किया है, तो अब Memory Profiler का इस्तेमाल करके, अपने ऐप्लिकेशन के JNI कोड के लिए मेमोरी के बंटवारे की जांच की जा सकती है.

जब आपका ऐप्लिकेशन चल रहा हो, तब टाइमलाइन का वह हिस्सा चुनें जिसकी आपको जांच करनी है. इसके बाद, क्लास की सूची के ऊपर मौजूद ड्रॉप-डाउन मेन्यू से JNI हीप चुनें. यह नीचे दिखाया गया है. इसके बाद, हीप में मौजूद ऑब्जेक्ट की जांच सामान्य तरीके से की जा सकती है. साथ ही, Allocation Call Stack टैब में मौजूद ऑब्जेक्ट पर दो बार क्लिक करके यह देखा जा सकता है कि आपके कोड में JNI रेफ़रंस कहां-कहां असाइन और रिलीज़ किए गए हैं.

मेमोरी हीप डंप फ़ाइलों को इंपोर्ट, एक्सपोर्ट, और उनकी जांच करना

अब Memory Profiler की मदद से बनाई गई .hprof मेमोरी हीप डंप फ़ाइलों को इंपोर्ट, एक्सपोर्ट, और उनकी जांच की जा सकती है.

प्रोफ़ाइलर के सेशन पैन में जाकर, नया प्रोफ़ाइलर सेशन शुरू करें पर क्लिक करके, अपनी .hprof फ़ाइल इंपोर्ट करें. इसके बाद, फ़ाइल से लोड करें को चुनें. इसके बाद, मेमोरी प्रोफ़ाइलर में इसके डेटा की जांच की जा सकती है. यह जांच, किसी अन्य हीप डंप की तरह ही की जाती है.

अगर आपको हीप डंप डेटा को बाद में देखने के लिए सेव करना है, तो सेशन पैन में मौजूद हीप डंप एंट्री के दाईं ओर मौजूद, हीप डंप एक्सपोर्ट करें बटन का इस्तेमाल करें. इसके बाद, आपको इस नाम से एक्सपोर्ट करें डायलॉग दिखेगा. इसमें फ़ाइल को .hprof फ़ाइल नाम एक्सटेंशन के साथ सेव करें.

ऐप्लिकेशन शुरू होने के दौरान सीपीयू की गतिविधि रिकॉर्ड करें

अब अपने ऐप्लिकेशन के स्टार्टअप के दौरान, सीपीयू की गतिविधि को इस तरह रिकॉर्ड किया जा सकता है:

  1. मुख्य मेन्यू में जाकर, चलाएं > कॉन्फ़िगरेशन में बदलाव करें को चुनें.
  2. अपनी पसंद के रन कॉन्फ़िगरेशन के प्रोफ़ाइलिंग टैब में जाकर, स्टार्टअप पर किसी तरीके की ट्रेसिंग रिकॉर्ड करना शुरू करें के बगल में मौजूद बॉक्स को चुनें.
  3. ड्रॉपडाउन मेन्यू से, इस्तेमाल करने के लिए कोई सीपीयू रिकॉर्डिंग कॉन्फ़िगरेशन चुनें.
  4. अपने ऐप्लिकेशन को Android 8.0 (एपीआई लेवल 26) या उसके बाद के वर्शन पर चलने वाले डिवाइस पर डिप्लॉय करें. इसके लिए, चलाएं > प्रोफ़ाइल बनाएं को चुनें.

सीपीयू ट्रेस एक्सपोर्ट करना

सीपीयू प्रोफ़ाइलर की मदद से सीपीयू की गतिविधि रिकॉर्ड करने के बाद, डेटा को .trace फ़ाइल के तौर पर एक्सपोर्ट किया जा सकता है. इससे डेटा को दूसरों के साथ शेयर किया जा सकता है या बाद में इसकी जांच की जा सकती है.

सीपीयू की गतिविधि रिकॉर्ड करने के बाद, ट्रेस एक्सपोर्ट करने के लिए यह तरीका अपनाएं:

  1. सीपीयू टाइमलाइन से जिस रिकॉर्डिंग को एक्सपोर्ट करना है उस पर राइट क्लिक करें.
  2. ड्रॉपडाउन मेन्यू से, ट्रेस एक्सपोर्ट करें चुनें.
  3. उस जगह पर जाएं जहां आपको फ़ाइल सेव करनी है. इसके बाद, सेव करें पर क्लिक करें.

सीपीयू ट्रेस फ़ाइलें इंपोर्ट करना और उनकी जांच करना

अब Debug API या CPU Profiler की मदद से बनाई गई .trace फ़ाइलों को इंपोर्ट और उनकी जांच की जा सकती है. (फ़िलहाल, सिस्टम ट्रेस रिकॉर्डिंग इंपोर्ट नहीं की जा सकतीं.)

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

  • सीपीयू की गतिविधि को सीपीयू टाइमलाइन के साथ नहीं दिखाया गया है.
  • थ्रेड की गतिविधि की टाइमलाइन से सिर्फ़ यह पता चलता है कि हर थ्रेड के लिए ट्रेस डेटा कहां उपलब्ध है. इससे थ्रेड की मौजूदा स्थिति (जैसे कि चल रहा है, इंतज़ार कर रहा है या स्लीपिंग) के बारे में पता नहीं चलता.

Debug API का इस्तेमाल करके, सीपीयू की गतिविधि रिकॉर्ड करना

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

एनर्जी प्रोफ़ाइलर

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

जब कनेक्ट किए गए डिवाइस या Android 8.0 (एपीआई 26) या इसके बाद के वर्शन पर चलने वाले Android Emulator पर ऐप्लिकेशन चलाया जाता है, तब Energy Profiler, Profiler विंडो में सबसे नीचे नई लाइन के तौर पर दिखता है.

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

सिस्टम इवेंट, बैटरी के इस्तेमाल पर असर डालते हैं. इन्हें एनर्जी टाइमलाइन के नीचे मौजूद सिस्टम टाइमलाइन में दिखाया जाता है. एनर्जी टाइमलाइन में कोई समयावधि चुनने पर, इवेंट पैन में उस समयावधि के सिस्टम इवेंट की जानकारी दिखती है.

सिस्टम इवेंट, जैसे कि वेकलॉक के लिए कॉल स्टैक और अन्य जानकारी देखने के लिए, इवेंट पैन में जाकर उसे चुनें. सिस्टम इवेंट के लिए ज़िम्मेदार कोड पर जाने के लिए, कॉल स्टैक में मौजूद एंट्री पर दो बार क्लिक करें.

लिंट की जांच की जा रही है

Android Studio 3.2 में, लिंट चेकिंग के लिए कई नई और बेहतर सुविधाएं शामिल हैं.

लिंट की नई जांचों की मदद से, कोड से जुड़ी सामान्य समस्याओं का पता लगाया जा सकता है. इनमें इस्तेमाल से जुड़ी संभावित समस्याओं के बारे में चेतावनियों से लेकर, सुरक्षा से जुड़ी संभावित कमज़ोरियों के बारे में ज़्यादा प्राथमिकता वाली गड़बड़ियां शामिल हैं.

Java/Kotlin इंटरऑपरेबिलिटी के लिए लिंट की जांच

यह पक्का करने के लिए कि आपका Java कोड, Kotlin कोड के साथ अच्छी तरह से काम करे, नए लिंट चेक, Kotlin Interop Guide में बताए गए सबसे सही तरीकों को लागू करते हैं. इन जांचों के उदाहरणों में, Nullability एनोटेशन की मौजूदगी, Kotlin के हार्ड कीवर्ड का इस्तेमाल, और लैम्डा पैरामीटर को आखिर में रखना शामिल है.

इन जांचों को चालू करने के लिए, फ़ाइल > सेटिंग (Mac पर Android Studio > प्राथमिकताएं) पर क्लिक करके सेटिंग डायलॉग खोलें. इसके बाद, एडिटर > जांच > Android > Lint > इंटरऑपरेबिलिटी > Kotlin इंटरऑपरेबिलिटी सेक्शन पर जाएं और वे नियम चुनें जिन्हें आपको चालू करना है.

कमांड-लाइन बिल्ड के लिए इन जांचों को चालू करने के लिए, अपनी build.gradle फ़ाइल में यह जोड़ें:

        android {
            lintOptions {
                check 'Interoperability'
            }
        }
        
      

स्लाइस के लिए लिंट चेक

स्लाइस के लिए नई लिंट जांचों से यह पक्का करने में मदद मिलती है कि स्लाइस सही तरीके से बनाए जा रहे हैं. उदाहरण के लिए, अगर आपने किसी स्लाइस को मुख्य कार्रवाई असाइन नहीं की है, तो लिंट चेक आपको इसकी चेतावनी देते हैं.

नया Gradle टारगेट

lintFix Gradle टास्क का इस्तेमाल करके, लिंट चेक से सुझाए गए सभी सुरक्षित फ़िक्स को सीधे तौर पर सोर्स कोड पर लागू करें. लिंट चेक का एक उदाहरण SyntheticAccessor है. इसमें, समस्या को सुरक्षित तरीके से ठीक करने का सुझाव दिया गया है.

मेटाडेटा के अपडेट

Android 9 (एपीआई लेवल 28) के साथ काम करने के लिए, लिंट की जांच से जुड़े कई मेटाडेटा अपडेट किए गए हैं. जैसे, सेवा कास्ट की जांच.

नए वैरिएंट पर लिंट चलाने पर चेतावनी

लिंट अब यह रिकॉर्ड करता है कि किस वैरिएंट और वर्शन के साथ बेसलाइन रिकॉर्ड की गई है. अगर आपने लिंट को किसी ऐसे वैरिएंट पर चलाया है जिसके साथ बेसलाइन नहीं बनाई गई थी, तो लिंट आपको इसकी सूचना देगा.

मौजूदा लिंट चेक में सुधार

Android Studio 3.2 में, मौजूदा लिंट चेक की सुविधा को बेहतर बनाया गया है. उदाहरण के लिए, संसाधन साइकल की जांचें अब अन्य संसाधन टाइप पर भी लागू होती हैं. साथ ही, अनुवाद का पता लगाने वाला टूल, Editor में तुरंत ही छूटे हुए अनुवादों का पता लगा सकता है.

समस्याओं के आईडी को ज़्यादा आसानी से खोजा जा सकता है

समस्या के आईडी अब ज़्यादा जगहों पर दिखते हैं. इनमें जांच के नतीजे वाली विंडो भी शामिल है. इससे आपको build.gradle में lintOptions के ज़रिए, खास जांचों को चालू या बंद करने के लिए ज़रूरी जानकारी आसानी से मिल जाती है.

ज़्यादा जानकारी के लिए, Gradle के साथ लिंट के विकल्पों को कॉन्फ़िगर करना लेख पढ़ें.

डेटा बाइंडिंग V2

डेटा बाइंडिंग V2 अब डिफ़ॉल्ट रूप से चालू है और यह V1 के साथ काम करता है. इसका मतलब है कि अगर आपके पास ऐसी लाइब्रेरी डिपेंडेंसी हैं जिन्हें V1 के साथ कंपाइल किया गया है, तो उन्हें Data Binding V2 का इस्तेमाल करने वाले प्रोजेक्ट के साथ इस्तेमाल किया जा सकता है. हालांकि, ध्यान दें कि V1 का इस्तेमाल करने वाले प्रोजेक्ट, V2 के साथ कंपाइल की गई डिपेंडेंसी का इस्तेमाल नहीं कर सकते.

D8 desugaring

Android Studio 3.1 में, हमने D8 टूल में डिसुगरिंग के चरण को एक्सपेरिमेंट के तौर पर उपलब्ध कराया है. इससे, बिल्ड करने में लगने वाला कुल समय कम हो जाता है. Android Studio 3.2 में, D8 की मदद से डिसुगरिंग की सुविधा डिफ़ॉल्ट रूप से चालू होती है.

कोड छोटा करने की नई सुविधा

R8, कोड का साइज़ कम करने और उसे अस्पष्ट बनाने वाला नया टूल है. यह ProGuard की जगह काम करता है. R8 के झलक वर्शन का इस्तेमाल शुरू करने के लिए, अपने प्रोजेक्ट की gradle.properties फ़ाइल में यह शामिल करें:

      android.enableR8 = true
    

मल्टी-एपीके के लिए डिफ़ॉल्ट एबीआई बदले गए

एक से ज़्यादा APK बनाने पर, प्लगिन डिफ़ॉल्ट रूप से इन एबीआई के लिए APK जनरेट नहीं करता: mips, mips64, और armeabi. हालांकि, हर APK अलग-अलग एबीआई को टारगेट करता है.

अगर आपको इन एबीआइ को टारगेट करने वाले APK बनाने हैं, तो आपको NDK r16b या इससे पहले का वर्शन इस्तेमाल करना होगा. साथ ही, एबीआइ को अपनी build.gradle फ़ाइल में शामिल करना होगा. इसके लिए, यहां दिया गया तरीका अपनाएं:

    splits {
        abi {
            include 'armeabi', 'mips', 'mips64'
            ...
        }
    }
    
    splits {
        abi {
            include("armeabi", "mips", "mips64")
            ...
        }
    }
    

ध्यान दें: यह बदलाव, Android Studio 3.1 RC1 और इसके बाद के वर्शन में भी शामिल है.

CMake बिल्ड फ़ाइलों के लिए, एडिटर की बेहतर सुविधाएं

अगर CMake का इस्तेमाल अपने प्रोजेक्ट में C और C++ कोड जोड़ने के लिए किया जाता है, तो Android Studio में अब एडिटर की बेहतर सुविधाएं शामिल हैं. इनकी मदद से, CMake की बिल्ड स्क्रिप्ट में बदलाव किया जा सकता है. जैसे:

  • सिंटैक्स हाइलाइट करना और कोड पूरा करना: अब IDE, सामान्य CMake कमांड के लिए सिंटैक्स हाइलाइट करता है और कोड पूरा करने का सुझाव देता है. इसके अलावा, Control कुंजी (Mac पर Command) दबाकर रखते हुए किसी फ़ाइल पर क्लिक करके भी उस पर जाया जा सकता है.
  • कोड को फिर से फ़ॉर्मैट करना: अब IntelliJ के कोड को फिर से फ़ॉर्मैट करने वाले विकल्प का इस्तेमाल करके, अपनी CMake बिल्ड स्क्रिप्ट पर कोड स्टाइल लागू की जा सकती हैं.
  • सुरक्षित रिफ़ैक्टरिंग: IDE में पहले से मौजूद रिफ़ैक्टरिंग टूल अब यह भी देखते हैं कि क्या आपने CMake बिल्ड स्क्रिप्ट में रेफ़र की गई फ़ाइलों का नाम बदला है या उन्हें मिटाया है.

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

अगर आपने पहले से ही अपने प्रोजेक्ट में C/C++ कोड और लाइब्रेरी शामिल की हैं, तो मुख्य मेन्यू में जाकर व्यू > टूल विंडो > प्रोजेक्ट चुनें. इसके बाद, IDE की बाईं ओर मौजूद प्रोजेक्ट विंडो खोलें. अब ड्रॉप-डाउन मेन्यू से Android चुनें. cpp डायरेक्ट्री में, आपके ऐप्लिकेशन प्रोजेक्ट के स्कोप में आने वाले सभी हेडर, आपकी स्थानीय C/C++ लाइब्रेरी की हर डिपेंडेंसी के लिए include नोड के तहत व्यवस्थित किए जाते हैं. इन्हें नीचे दिखाया गया है.

नेटिव मल्टीडेक्स की सुविधा डिफ़ॉल्ट रूप से चालू होती है

Android Studio के पिछले वर्शन में, Android API लेवल 21 या उसके बाद के वर्शन पर चलने वाले डिवाइस पर ऐप्लिकेशन का डीबग वर्शन डिप्लॉय करते समय, नेटिव मल्टीडेक्स की सुविधा चालू होती थी. अब, चाहे आपको किसी डिवाइस पर डिप्लॉय करना हो या रिलीज़ के लिए कोई APK बनाना हो, Gradle के लिए Android प्लगइन, minSdkVersion=21 या इससे ज़्यादा सेट करने वाले सभी मॉड्यूल के लिए नेटिव मल्टीडेक्स चालू करता है.

AAPT2 को Google की मेवन रिपॉज़िटरी में ट्रांसफ़र कर दिया गया है

Android Studio 3.2 से, AAPT2 (Android ऐसेट पैकेजिंग टूल 2) का सोर्स, Google की मेवन रिपॉज़िटरी है.

AAPT2 का इस्तेमाल करने के लिए, पक्का करें कि आपकी build.gradle फ़ाइल में google() डिपेंडेंसी हो. यहां दिखाया गया है:

    buildscript {
        repositories {
            google() // here
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.2.0'
        }
    }
    allprojects {
        repositories {
            google() // and here
            jcenter()
        }
    }
    
    buildscript {
        repositories {
            google() // here
            jcenter()
        }
        dependencies {
            classpath("com.android.tools.build:gradle:3.2.0")
        }
    }
    allprojects {
        repositories {
            google() // and here
            jcenter()
        }
    }
    

AAPT2 के नए वर्शन में कई समस्याएं ठीक की गई हैं. इनमें Windows पर गैर-ASCII वर्णों को बेहतर तरीके से हैंडल करने की सुविधा भी शामिल है.

मांग पर कॉन्फ़िगरेशन हटाने की सुविधा

Android Studio से, मांग पर कॉन्फ़िगर करें सेटिंग हटा दी गई है.

Android Studio अब Gradle को --configure-on-demand आर्ग्युमेंट नहीं देता है.

ADB कनेक्शन असिस्टेंट

नई ADB कनेक्शन असिस्टेंट सुविधा में, डिवाइस को Android डीबग ब्रिज (ADB) कनेक्शन से सेट अप करने और इस्तेमाल करने के बारे में चरण-दर-चरण निर्देश दिए गए हैं.

सहायता पाने के लिए, Tools > Connection Assistant चुनें.

ADB कनेक्शन असिस्टेंट, Assistant पैनल के कई पेजों में निर्देश, कॉन्टेक्स्ट के हिसाब से कंट्रोल, और कनेक्ट किए गए डिवाइसों की सूची दिखाती है.

एम्युलेटर में किए गए सुधार

अब Android Emulator में, किसी भी समय AVD (Android वर्चुअल डिवाइस) के स्नैपशॉट सेव और लोड किए जा सकते हैं. इससे, टेस्ट करने के लिए किसी एमुलेट किए गए डिवाइस को जानी-पहचानी स्थिति में वापस लाना आसान और तेज़ हो जाता है. AVD मैनेजर का इस्तेमाल करके किसी AVD में बदलाव करते समय, यह तय किया जा सकता है कि AVD शुरू होने पर कौनसे AVD स्नैपशॉट को लोड किया जाए.

AVD स्नैपशॉट को सेव करने, लोड करने, और मैनेज करने के कंट्रोल अब एम्युलेटर की एक्सटेंडेड कंट्रोल विंडो में मौजूद स्नैपशॉट टैब में उपलब्ध हैं.

ज़्यादा जानकारी के लिए, स्नैपशॉट देखें.

Emulator में नया क्या है और क्या बदला है, इस बारे में ज़्यादा जानकारी के लिए, Emulator के रिलीज़ नोट देखें.