Android Studio 4.2 (अप्रैल 2021)

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

4.2.2 (जून 2021)

इस छोटे अपडेट में कई गड़बड़ियां ठीक की गई हैं. गड़बड़ियों को ठीक करने से जुड़ी अहम जानकारी देखने के लिए, रिलीज़ अपडेट ब्लॉग पर मौजूद उससे जुड़ी पोस्ट पढ़ें.

4.2.1 (मई 2021)

इस छोटे से अपडेट में, Kotlin प्लगिन 1.5.0 को बंडल किया गया है. साथ ही, इसमें कई गड़बड़ियां ठीक की गई हैं. ठीक की गई अहम गड़बड़ियों की सूची देखने के लिए, रिलीज़ के अपडेट से जुड़े ब्लॉग पर इससे जुड़ी पोस्ट पढ़ें.

Android Gradle प्लग इन 4.2.0

Android Gradle प्लग इन के नए वर्शन में कई अपडेट शामिल हैं. ज़्यादा जानने के लिए, Android Gradle प्लग-इन की रिलीज़ के बारे में पूरी जानकारी पढ़ें.

Gradle की कंपैटबिलिटी और कॉन्फ़िगरेशन में बदलाव

Android Studio में काम करते समय, Gradle बिल्ड टूल, Studio के बंडल किए गए JDK का इस्तेमाल करता है. पिछली रिलीज़ में, JDK 8 को Studio के साथ बंडल किया गया था. हालांकि, 4.2 में, अब JDK 11 को बंडल किया गया है. Gradle को चलाने के लिए, बंडल किए गए नए JDK का इस्तेमाल करने पर, हो सकता है कि कुछ समस्याएं आएं या कचरा इकट्ठा करने वाले टूल में किए गए बदलावों की वजह से JVM की परफ़ॉर्मेंस पर असर पड़े. इन समस्याओं के बारे में, AGP रिलीज़ नोट में बताया गया है.

Gradle के सिंक होने में लगने वाले समय को ऑप्टिमाइज़ करने का विकल्प

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

डेटाबेस इंस्पेक्टर

क्वेरी एडिटर में किए गए सुधार

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

DB Inspector एडिटर

इसके अलावा, अब हम आपको आपकी पिछली क्वेरी का इतिहास भी दिखाते हैं. क्वेरी का इतिहास दिखाएं क्वेरी के इतिहास दिखाने का बटन{: .inline-icon} बटन पर क्लिक करने पर, आपको उन क्वेरी की सूची दिखेगी जिन्हें आपने अभी चुने गए डेटाबेस के लिए पहले चलाया था. सूची में मौजूद किसी क्वेरी पर क्लिक करके, एडिटर में पूरी क्वेरी की झलक देखें. साथ ही, उसे एडिटर में कॉपी करने के लिए, Enter दबाएं. इसके बाद, स्टेटमेंट को लागू करने के लिए, चालू करें पर क्लिक करें.

क्वेरी एडिटर में कमांड चलाना

ऑफ़लाइन मोड

Android Studio के पिछले वर्शन में, डेटाबेस इंस्पेक्टर का इस्तेमाल करते समय किसी ऐप्लिकेशन प्रोसेस से डिसकनेक्ट करने पर, जांच करने वाला टूल और उसका डेटा बंद हो जाता है. हमने Android Studio 4.2 में, प्रोसेस के डिसकनेक्ट होने के बाद भी, आपके ऐप्लिकेशन के डेटाबेस की जांच करने की सुविधा जोड़ी है. इससे ऐप्लिकेशन क्रैश होने के बाद, उसे डीबग करना आसान हो जाता है.

डिसकनेक्ट होने पर, डेटाबेस इंस्पेक्टर आपके डेटाबेस डाउनलोड करता है और फिर उन्हें ऑफ़लाइन मोड में उपलब्ध कराता है. ऑफ़लाइन होने पर, टेबल खोली जा सकती हैं और क्वेरी चलाई जा सकती हैं.

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

AGP के लिए Assistant को अपग्रेड करना

'Android Gradle प्लग इन' के लिए नया अपग्रेड असिस्टेंट आपके प्रोजेक्ट के एजीपी वर्शन को अपडेट करने में मदद कर सकता है.

Android Gradle प्लग इन को अपग्रेड करने के लिए Assistant का डायलॉग

यह टूल, AGP के मौजूदा वर्शन को अपग्रेड करने की सुविधा के आधार पर बनाया गया है. यह आपको प्रोजेक्ट के सभी अपडेट/रिफ़ैक्टर करने के दौरान दिशा-निर्देश देता है. साथ ही, इसमें अपडेट की झलक भी शामिल होती है, ताकि AGP को अपग्रेड करने से पहले, संभावित बदलावों से होने वाले नुकसान से बचा जा सके.

Upgrade Assistant की मदद से किए जाने वाले बदलावों की झलक

सिस्टम ट्रैक: मेमोरी और ग्राफ़िक के लिए बेहतर मेट्रिक

सीपीयू प्रोफ़ाइलर में, सिस्टम ट्रेस की सुविधा में अब ऐप्लिकेशन की परफ़ॉर्मेंस का विश्लेषण करने के लिए नई मेट्रिक शामिल की गई हैं. साथ ही, इसमें ये चीज़ें शामिल की गई हैं:

  • इवेंट टेबल. यह सूची, फ़िलहाल चुने गए थ्रेड में मौजूद सभी ट्रेस इवेंट की जानकारी देती है.

  • BufferQueue. डिसप्ले सेक्शन में, यह नया ट्रैक ऐप्लिकेशन के प्लैटफ़ॉर्म के BufferQueue (0, 1 या दो) के बफ़र की संख्या दिखाता है. इससे आपको Android ग्राफ़िक्स कॉम्पोनेंट के बीच, इमेज बफ़र की स्थिति को समझने में मदद मिलती है.

    सिस्टम ट्रेस बफ़र सूची

  • सीपीयू की फ़्रीक्वेंसी. सीपीयू के कोर सेक्शन में, यह नया ट्रैक हर कोर के हिसाब से सीपीयू फ़्रीक्वेंसी दिखाता है. इससे पता चलता है कि हर कोर कितनी मेहनत से काम कर रहा है.

    सिस्टम ट्रेस करने वाली सीपीयू फ़्रीक्वेंसी

  • प्रोसेस मेमोरी (आरएसएस). इस नई विंडो में, यह दिखता है कि फ़िलहाल ऐप्लिकेशन कितनी फ़िज़िकल मेमोरी का इस्तेमाल कर रहा है.

    सिस्टम ट्रेस प्रोसेस मेमोरी (आरएसएस)

ज़्यादा जानकारी के लिए, सीपीयू प्रोफ़ाइलर की मदद से सीपीयू गतिविधि की जांच करना लेख पढ़ें.

नया लेआउट इंस्पेक्टर रीफ़्रेश करने की कार्रवाई

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

अपने ऐप्लिकेशन से यूज़र इंटरफ़ेस (यूआई) डेटा का स्नैपशॉट मैन्युअल तरीके से लोड करने के लिए, पहले लाइव अपडेट विकल्प को बंद करें. इसके बाद, जांच के लिए यूज़र इंटरफ़ेस स्टैक का नया स्नैपशॉट लेने के लिए, रीफ़्रेश करें {:.inline-icon} बटन पर क्लिक करें. लेआउट जांचने वाला टूल, अब सेशन के बीच लाइव अपडेट की सेटिंग को चालू या बंद रखने की आपकी प्राथमिकता को याद रखेगा.

Safe Args के लिए सहायता

Safe Args एक Gradle प्लगिन है. यह टाइप-सुरक्षित नेविगेशन और उससे जुड़े सभी आर्ग्युमेंट को ऐक्सेस करने के लिए, आसान ऑब्जेक्ट और बिल्डर क्लास जनरेट करता है. Android Studio में अब, सुरक्षित आर्ग्युमेंट के साथ काम करने के लिए ज़्यादा बेहतर सहायता शामिल है. इस बारे में यहां बताया गया है:

  • निर्देशों, Args, और कई बिल्डर क्लास के लिए अपने-आप पूरा होने की सुविधा
  • Java और Kotlin के सेफ़ आर्ग प्लगिन के साथ काम करता है
  • सोर्स से एक्सएमएल पर नेविगेट करना

R8 retrace की सुविधा अब कमांड-लाइन टूल में उपलब्ध है

R8 retrace, कमांड-लाइन टूल के वर्शन 4.0 में मौजूद एक स्टैंडअलोन टूल है. इसकी मदद से, उलझाने वाले स्टैक ट्रेस से ओरिजनल स्टैक ट्रेस हासिल किया जा सकता है.

इस पैकेज को SDK मैनेजर की मदद से डाउनलोड किया जा सकता है. यह android_sdk/cmdline-tools में R8 ReTrace को इंस्टॉल करता है. इसके अलावा, आपके पास स्टैंडअलोन कमांड-लाइन टूल पैकेज डाउनलोड करने का विकल्प भी है.

इस्तेमाल से जुड़ी जानकारी के लिए, उपयोगकर्ता गाइड में R8 रीट्रैस देखें.

एक से ज़्यादा डिवाइसों पर डिप्लॉय करना

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

  1. टारगेट किए गए डिवाइस के ड्रॉपडाउन मेन्यू (IDE के सबसे ऊपरी हिस्से में) में, एक से ज़्यादा डिवाइस चुनें चुनें.

    टारगेट डिवाइस का ड्रॉपडाउन

  2. टारगेट किए गए डिवाइस चुनें और ठीक है पर क्लिक करें.

    डिवाइस सेट डायलॉग में बदलाव करना

  3. अपना ऐप्लिकेशन चलाएं.

फ़ीचर मॉड्यूल के लिए नई removable सेटिंग

Android Gradle प्लग इन 4.2, bundletool 1.0.0 का इस्तेमाल करता है. इससे, सुविधा वाले मॉड्यूल का इस्तेमाल करने वाले ऐप्लिकेशन के व्यवहार में बदलाव होता है: dist:install-time के तौर पर बताए गए किसी भी सुविधा वाले मॉड्यूल को dist:removable के तौर पर साफ़ तौर पर मार्क न करने पर, उसे डिफ़ॉल्ट रूप से नहीं हटाया जा सकेगा. यह नई सेटिंग, इंस्टॉल के समय काम करने वाले मॉड्यूल को बेस मॉड्यूल के साथ फ़्यूज़ करने को ऑप्टिमाइज़ करती है. इससे कुछ ऐप्लिकेशन की परफ़ॉर्मेंस बेहतर हो सकती है.

फ़ीचर मॉड्यूल को अनइंस्टॉल करने के लिए, जिस मॉड्यूल को अनइंस्टॉल करना है उस पर dist:removable="true" सेट करें.

इस नई सेटिंग के बारे में ज़्यादा जानने के लिए, सुविधा मॉड्यूल मेनिफ़ेस्ट के दस्तावेज़ में, dist:removable टैग के लिए दस्तावेज़ देखें.

बदलाव लागू करें

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

कोड में अन्य बदलाव करने के लिए सहायता

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

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

नए प्रोजेक्ट और नए मॉड्यूल के लिए, अपडेट किए गए विज़र्ड

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

नया मॉड्यूल विज़र्ड से .JAR/.AAR पैकेज इंपोर्ट करने का विकल्प भी हटा दिया गया है. अपने प्रोजेक्ट में JAR या AAR इंपोर्ट करने के लिए, इसके बजाय प्रोजेक्ट स्ट्रक्चर डायलॉग का इस्तेमाल करें.

Kotlin 1.4.31

Android Studio 4.2 में Kotlin 1.4.31 बंडल किया गया है. Kotlin 1.4.0 के बदलावों की जानकारी देखें और जानें कि इसमें कौनसे अहम बदलाव किए गए हैं.

ANDROID_SDK_HOME एनवायरमेंट वैरिएबल बंद किया गया

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

Android Studio 4.2 की सामान्य समस्याएं

इस सेक्शन में, Android Studio 4.2 में मौजूद समस्याओं के बारे में बताया गया है. पूरी सूची के लिए, पहचानी गई समस्याएं पेज पर जाएं.

Android Studio 4.2.0, गलत Kotlin वर्शन वाले प्रोजेक्ट जनरेट करता है: "1.5.0-release-764"

अगर Android Studio 4.2.0 का इस्तेमाल किया जा रहा है और Kotlin प्लग इन 1.5.0 पर अपग्रेड किया गया है, तो Studio से बनाए गए नए Kotlin प्रोजेक्ट, Gradle सिंक करने से जुड़ी इस गड़बड़ी की वजह से बिल्ड नहीं हो पाएंगे:

Could not find org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.0-release-764.

इस समस्या को हल करने के लिए, प्रोजेक्ट की build.gradle फ़ाइलों में 1.5.0-release-764 को 1.5.0 से बदलें.

पासकोड और कीस्टोर के लिए अलग-अलग पासवर्ड इस्तेमाल करने पर गड़बड़ी

Android Studio 4.2 से, यह JDK 11 पर काम करता है. इस अपडेट की वजह से, साइनिंग पासकोड के काम करने के तरीके में बदलाव होता है.

जब आप बिल्ड > हस्ताक्षर किया गया बंडल / APK पर जाते हैं और किसी ऐप्लिकेशन बंडल या APK के लिए ऐप्लिकेशन साइनिंग को कॉन्फ़िगर करने की कोशिश करते हैं, तो की और कीस्टोर के लिए अलग-अलग पासवर्ड डालने पर यह गड़बड़ी हो सकती है:

Key was created with errors:
Warning: Different store and Key passwords not supported for PKCS12 Key stores

इस समस्या को हल करने के लिए, पासकोड को पासकोड और पासकोड के लिए एक ही रखें.

Android Studio 4.2 इंस्टॉल करने के बाद, वह शुरू नहीं होता

Studio, पहले से मौजूद .vmoptions को इंपोर्ट करने की कोशिश करता है और उन्हें JDK 11 के इस्तेमाल किए जाने वाले गै़रबेज कलेक्टर के साथ काम करने के लिए साफ़ करता है. अगर यह प्रोसेस पूरी नहीं होती है, तो हो सकता है कि .vmoptions फ़ाइल में कस्टम वर्चुअल मशीन (वीएम) के विकल्प सेट करने वाले कुछ उपयोगकर्ताओं के लिए, IDE शुरू न हो.

हमारा सुझाव है कि इस समस्या को हल करने के लिए, # वर्ण का इस्तेमाल करके, .vmoptions में कस्टम विकल्पों पर टिप्पणी करें. .vmoptions फ़ाइल को यहां पाया जा सकता है:

Windows

C:\Users\YourUserName\AppData\<var>[Local|Roaming]</var>\Google\AndroidStudio4.2\studio64.exe.vmoptions

macOS

~/Library/Application Support/Google/AndroidStudio4.2/studio.vmoptions

Linux

~/.config/Google/AndroidStudio4.2/studio64.vmoptions

अगर यह तरीका आज़माने के बाद भी Studio शुरू नहीं होता है, तो नीचे अपग्रेड करने के बाद भी Studio शुरू नहीं होता देखें.