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 खुल जाती है. ऐसा तब होता है, जब 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 की मदद से अपने ऐप्लिकेशन को इंस्ट्रुमेंट करके, सीपीयू प्रोफ़ाइलर में सीपीयू गतिविधि को रिकॉर्ड किया जा सकता है. साथ ही, इसे रोका भी जा सकता है. किसी डिवाइस पर ऐप्लिकेशन डिप्लॉय करने के बाद, जब आपका ऐप्लिकेशन 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 के साथ कंपाइल किया गया है, तो उन्हें डेटा बाइंडिंग V2 का इस्तेमाल करने वाले प्रोजेक्ट के साथ इस्तेमाल किया जा सकता है. हालांकि, ध्यान दें कि V1 का इस्तेमाल करने वाले प्रोजेक्ट, V2 के साथ कंपाइल की गई डिपेंडेंसी का इस्तेमाल नहीं कर सकते.

D8 डिशुगरिंग

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

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

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

      android.enableR8 = true
    

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

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

अगर आपको इन एबीआइ को टारगेट करने वाले 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) कनेक्शन के ज़रिए सेट अप करने और इस्तेमाल करने के लिए, चरण-दर-चरण निर्देश दिए गए हैं.

Assistant को शुरू करने के लिए, Tools > Connection Assistant चुनें.

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

एम्युलेटर से जुड़े सुधार

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

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

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

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