पुरानी रिलीज़

Android Studio 3.6 और उससे पहले के वर्शन और Android के रिलीज़ नोट नीचे दिए गए हैं Gradle प्लग इन 3.6.0 और इससे पहले का वर्शन.

Android Studio के पुराने वर्शन

3.6 (फ़रवरी 2020)

Android Studio 3.6 एक बहुत बड़ी रिलीज़ है, जिसमें कई नई सुविधाएं शामिल हैं और सुधार.

हम अपने समुदाय में योगदान देने वाले उन सभी लोगों को भी धन्यवाद देना चाहते हैं जिन्होंने इस रिलीज़ में मदद की है.

3.6.3 (अप्रैल 2020)

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

3.6.2 (मार्च 2020)

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

3.6.1 (फ़रवरी 2020)

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

डिज़ाइन टूल

Android Studio के इस वर्शन में कई डिज़ाइन टूल, जैसे कि जिसमें लेआउट एडिटर और रिसोर्स मैनेजर भी शामिल हैं.

स्प्लिट व्यू और ज़ूम इन डिज़ाइन एडिटर

स्प्लिट व्यू में, डिज़ाइन और टेक्स्ट व्यू, दोनों एक साथ दिखते हैं

इस रिलीज़ में, विज़ुअल डिज़ाइन एडिटर के लिए ये अपडेट शामिल हैं:

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

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

ज़्यादा जानने के लिए, लेआउट एडिटर की मदद से यूज़र इंटरफ़ेस (यूआई) बनाना लेख पढ़ें.

कलर पिकर रिसॉर्स टैब

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

अपने-आप भरी गई कलर वैल्यू के साथ कलर पिकर

रिसोर्स मैनेजर

रिसोर्स मैनेजर में ये अपडेट शामिल हैं:

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

ज़्यादा जानने के लिए, Resource Manager की मदद से अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) के संसाधन मैनेज करना लेख पढ़ें.

Android Gradle प्लग इन से जुड़े अपडेट

'Android Gradle प्लग इन' के नए वर्शन में कई अपडेट, इसमें बिल्ड स्पीड के लिए ऑप्टिमाइज़ेशन और Maven पब्लिशिंग के लिए सहायता शामिल है प्लगिन और व्यू बाइंडिंग के लिए सहायता उपलब्ध कराते हैं. ज़्यादा जानने के लिए, प्रॉडक्ट की पूरी जानकारी के साथ आता है.

व्यू बाइंडिंग

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

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

व्यू बाइंडिंग चालू करने के लिए, आपको 'Android Gradle प्लग इन' इस्तेमाल करना होगा 3.6.0 या उसके बाद के वर्शन का इस्तेमाल कर सकते हैं और हर मॉड्यूल के build.gradle फ़ाइल:

ग्रूवी

  android {
      buildFeatures.viewBinding = true
  }
  

Kotlin

  android {
      buildFeatures.viewBinding = true
  }
  

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

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

इन दोनों कार्रवाइयों के बीच के अंतर के बारे में ज़्यादा जानने के लिए, देखें बदलावों को लागू करें.

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

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

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

ध्यान दें:आपके बेस ऐप्लिकेशन मॉड्यूल को तुरंत चालू करने का विकल्प नया प्रोजेक्ट बनाएं विज़र्ड से हटा दिया गया है.

इस बारे में ज़्यादा जानने के लिए, पढ़ें Google Play इंस्टैंट की खास जानकारी.

APK ऐनालाइज़र में क्लास और मेथड बाइट कोड डिकोड करना

APK ऐनालाइज़र का इस्तेमाल करते समय, DEX फ़ाइलों की जांच करें, तो क्लास और मेथड के बाइटकोड को इस तरह डिकोड किया जा सकता है:

  1. बिल्ड > चुनें मेन्यू बार से APK का विश्लेषण करें.
  2. स्क्रीन पर दिख रहे डायलॉग बॉक्स में, उस APK पर जाएं जिसकी आपको जांच करनी है और तो उसे चुनें.
  3. खोलें पर क्लिक करें.
  4. APK ऐनालाइज़र में वह DEX फ़ाइल चुनें जिसकी जांच करनी है.
  5. DEX फ़ाइल व्यूअर में, उस APK के लिए ProGuard मैपिंग फ़ाइल को लोड करें जिसका विश्लेषण किया जा रहा है.
  6. जिस क्लास या तरीके की जांच करनी है उस पर राइट क्लिक करें और उसे चुनें बाइट कोड दिखाएं.

नेटिव टूल

नीचे दिए गए अपडेट, Android Studio में नेटिव (C/C++) डेवलपमेंट में मदद करते हैं.

Kotlin सहायता

Android Studio में NDK की ये सुविधाएं, पहले Java में काम करती थीं. अब ये सुविधाएं Kotlin में भी काम करती हैं:

  • JNI एलान से संबंधित लागू करने के फ़ंक्शन पर जाएं C/C++ में हो सकता है. इसके पास C या C++ आइटम मार्कर पर होवर करके यह मैपिंग देखें मैनेज की गई सोर्स कोड फ़ाइल में लाइन नंबर.

  • जेएनआई एलान के लिए, अपने-आप स्टब लागू करने का फ़ंक्शन बनाएं. सबसे पहले JNI घोषणा परिभाषित करें और फिर “jni” लिखें या तरीका का नाम लिखें C/C++ फ़ाइल को चालू करें.

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

  • जब किसी नेटिव लागू करने के फ़ंक्शन का नाम बदला जाता है (रिफ़ैक्टर) किया जाता है, तो सभी इससे जुड़े JNI एलान अपडेट कर दिए गए हैं. जेएनआई एलान का नाम बदलकर यह करें नेटिव लागू करने के फ़ंक्शन को अपडेट करें.

  • हस्ताक्षर के साथ, सीधे तौर पर लागू किए गए JNI की जांच.

JNI में किए गए अन्य सुधार

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

नेटिव लाइब्रेरी के लिए APK फिर से लोड करना {:#3.6-reload-apk}

अगर आपके प्रोजेक्ट का APK IDE के बाहर अपडेट किया गया. Android Studio, APK में हुए बदलावों का पता लगाता है और उसे फिर से इंपोर्ट करने का विकल्प होता है.

सिर्फ़ Kotlin APK सोर्स अटैच करें

अब पहले से बने APKs की प्रोफ़ाइल बनाने और उन्हें डीबग करने के दौरान, सिर्फ़ Kotlin वाले बाहरी APK सोर्स अटैच किए जा सकते हैं. ज़्यादा जानने के लिए, Kotlin/Java सोर्स अटैच करना लेख पढ़ें.

मेमोरी प्रोफ़ाइलर में लीक का पता लगाना

मेमोरी प्रोफ़ाइलर में हीप डंप का विश्लेषण करते समय, अब प्रोफ़ाइलिंग को फ़िल्टर किया जा सकता है वह डेटा जो Android Studio के मुताबिक, Activity और आपके ऐप्लिकेशन में Fragment इंस्टेंस.

फ़िल्टर में इस तरह का डेटा दिखता है:

  • Activity ऐसे इंस्टेंस जिन्हें खत्म कर दिया गया है, लेकिन वे अब भी मौजूद हैं इस्तेमाल किया जा रहा है.
  • Fragment ऐसे इंस्टेंस जिनमें मान्य FragmentManager नहीं है, लेकिन फिर भी उनका रेफ़रंस दिया जा रहा है.

सिर्फ़ Kotlin APK सोर्स अटैच करें

अब पहले से बने APKs की प्रोफ़ाइल बनाने और उन्हें डीबग करने के दौरान, सिर्फ़ Kotlin वाले बाहरी APK सोर्स अटैच किए जा सकते हैं. ज़्यादा जानने के लिए, Kotlin/Java सोर्स अटैच करना लेख पढ़ें.

मेमोरी प्रोफ़ाइलर में लीक का पता लगाने की सुविधा

मेमोरी प्रोफ़ाइलर में हीप डंप का विश्लेषण करते समय, अब प्रोफ़ाइलिंग को फ़िल्टर किया जा सकता है वह डेटा जो Android Studio के मुताबिक, Activity और आपके ऐप्लिकेशन में Fragment इंस्टेंस.

फ़िल्टर में इस तरह का डेटा दिखता है:

  • Activity ऐसे इंस्टेंस जिन्हें खत्म कर दिया गया है, लेकिन वे अब भी मौजूद हैं इस्तेमाल किया जा रहा है.
  • Fragment इंस्टेंस, जिनके लिए कोई मान्य वैल्यू नहीं है FragmentManager, लेकिन अब भी इनका रेफ़रंस दिया जा रहा है.

कुछ मामलों में, जैसे कि फ़िल्टर, गलत नतीजे दिखा सकता है सकारात्मक:

  • एक Fragment बना दिया गया है, लेकिन अभी तक उसका इस्तेमाल नहीं किया गया है.
  • Fragment को कैश मेमोरी में सेव किया जा रहा है, लेकिन कैश मेमोरी में सेव नहीं किया जा रहा है FragmentTransaction.

इस सुविधा का इस्तेमाल करने के लिए, पहले Android Studio में हीप डंप कैप्चर करें या हीप डंप फ़ाइल इंपोर्ट करें. ऐसे फ़्रैगमेंट और गतिविधियों को दिखाने के लिए जिनसे मेमोरी लीक हो सकती है, मेमोरी प्रोफ़ाइलर के ढेर के डंप पैनल में गतिविधि/फ़्रैगमेंट लीक चेकबॉक्स चुनें.

प्रोफ़ाइलर: मेमोरी लीक का पता लगाने की सुविधा

मेमोरी लीक के लिए हीप डंप को फ़िल्टर करना.

एम्युलेटर

Android Studio 3.6 की मदद से, Android Emulator 29.2.7 और इसके बाद के वर्शन में शामिल कई अपडेट का फ़ायदा लिया जा सकता है. इन अपडेट के बारे में यहां बताया गया है.

जगह की जानकारी से जुड़ी बेहतर सहायता

Android Emulator 29.2.7 और उसके बाद वाले वर्शन, एम्युलेटर के लिए अतिरिक्त सहायता देता है जीपीएस कोऑर्डिनेट और रास्ते की जानकारी. एम्युलेटर खोलने पर कंट्रोल की ज़्यादा सेटिंग, स्थान टैब में मौजूद विकल्प अब दो टैब में व्यवस्थित हो जाते हैं: सिंगल पॉइंट और रास्ते.

सिंगल पॉइंट

सिंगल पॉइंट टैब में, आप खोजने के लिए Google Maps वेबव्यू का इस्तेमाल कर सकते हैं लोकप्रिय जगहें, जैसे कि फ़ोन पर Google Maps इस्तेमाल करते समय या ब्राउज़र खोलें. मैप में कोई जगह खोजने या उस पर क्लिक करने पर, मैप के सबसे नीचे मौजूद 'जगह सेव करें' को चुनकर, उस जगह को सेव किया जा सकता है. आपके सभी सेव की गई जगहों की सूची, एक्सटेंडेड कंट्रोल की दाईं ओर दी गई है विंडो.

एम्युलेटर की जगह को मैप पर चुनी गई जगह पर सेट करने के लिए, एक्सटेंडेड कंट्रोल विंडो के सबसे नीचे दाईं ओर मौजूद, जगह सेट करें बटन पर क्लिक करें.

एम्युलेटर के एक्सटेंडेड कंट्रोल में सिंगल पॉइंट टैब..

रास्ते

एक पॉइंट टैब की तरह ही, रास्ते टैब में भी Google Maps का वेबव्यू मिलता है. इसका इस्तेमाल करके, दो या उससे ज़्यादा जगहों के बीच रास्ता बनाया जा सकता है. कोई रूट बनाने और सेव करने के लिए, ये काम करें:

  1. मैप व्यू में, पहला डेस्टिनेशन खोजने के लिए टेक्स्ट फ़ील्ड का इस्तेमाल करें आपका रास्ता.
  2. खोज के नतीजों में से जगह चुनें.
  3. नेविगेट करें बटन को चुनें.
  4. मैप से अपने रास्ते का शुरुआती पॉइंट चुनें.
  5. (ज़रूरी नहीं) अपने रास्ते में और स्टॉप जोड़ने के लिए मंज़िल जोड़ें पर क्लिक करें.
  6. मैप व्यू में, रास्ता सेव करें पर क्लिक करके अपना रास्ता सेव करें.
  7. रास्ते का नाम डालें और सेव करें पर क्लिक करें.

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

एम्युलेटर के लिए एक्सटेंडेड कंट्रोल की सेटिंग में रूट टैब..

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

मल्टी-डिसप्ले की सुविधा

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

  1. खोलें एक्सटेंडेड कंट्रोल और डिसप्ले टैब पर जाएं.

  2. दूसरा डिसप्ले जोड़ें पर क्लिक करके दूसरा डिसप्ले जोड़ें.

  3. सेकंडरी डिसप्ले में मौजूद ड्रॉपडाउन मेन्यू से, इनमें से कोई एक काम करें:

  4. पहले से सेट किए गए आसपेक्ट रेशियो में से किसी एक को चुनें

  5. पसंद के मुताबिक चुनें और अपने फ़िल्टर के लिए ऊंचाई, चौड़ाई, और डीपीआई सेट करें कस्टम डिसप्ले.

  6. तीसरा डिसप्ले जोड़ने के लिए, सेकंडरी डिसप्ले जोड़ें पर क्लिक करें. हालांकि, ऐसा करना ज़रूरी नहीं है.

  7. चुने गए डिसप्ले को चलाने के लिए, बदलाव लागू करें पर क्लिक करें वर्चुअल डिवाइस.

एक से ज़्यादा डिसप्ले एम्युलेटर के लिए एक्सटेंडेड कंट्रोल का डिसप्ले टैब जोड़ें.

Android Automotive OS के लिए, नए वर्चुअल डिवाइस और प्रोजेक्ट टेंप्लेट

Android Studio का इस्तेमाल करके नया प्रोजेक्ट बनाते समय, अब नया प्रोजेक्ट बनाएं विज़र्ड में वाहन संबंधित टैब में जाकर, तीन टेंप्लेट में से किसी एक को चुना जा सकता है: कोई गतिविधि नहीं, मीडिया सेवा, और मैसेज सेवा. इसके लिए मौजूदा प्रोजेक्ट के अलावा, Android Automotive डिवाइसों के लिए फ़ाइल > नया > नया मॉड्यूल चुनें और मेन्यू बार में जाकर ऑटोमोटिव मॉड्यूल. इसके बाद, नया मॉड्यूल बनाएं विज़र्ड आपको गाइड करेगा हम एक नया मॉड्यूल बनाकर, Android Automotive प्रोजेक्ट में से किसी एक का इस्तेमाल कर सकते हैं टेम्प्लेट.

Android Automotive प्रोजेक्ट टेंप्लेट चुना जा रहा है..

साथ ही, अब आप ये काम कर सकते हैं: Android वर्चुअल डिवाइस (एवीडी) बनाना नीचे दिए गए विकल्पों में से कोई एक चुनकर, Android Automotive OS डिवाइसों के लिए वर्चुअल डिवाइस कॉन्फ़िगरेशन विज़र्ड में, ऑटोमोटिव टैब में.

  1. Polestar 2: ऐसा एवीडी बनाएं जो Polestar 2 के हेड यूनिट की नकल करता हो.
  2. ऑटोमोटिव (1024 पिक्सल लैंडस्केप): सामान्य 1024 x 768 पिक्सल के लिए एवीडी बनाएं Android Automotive की हेड यूनिट.

Android Automotive वर्चुअल डिवाइस को चुना जा रहा है..

SDK टूल के डाउनलोड फिर से शुरू किए जा सकते हैं

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

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

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

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

Win32 अब काम नहीं करता

Android Studio के Windows 32-बिट वर्शन पर अब अपडेट नहीं मिलेंगे दिसंबर 2019 के बाद है और दिसंबर 2020 के बाद इस पर सहायता नहीं मिलेगी. Android Studio का इस्तेमाल जारी रखा जा सकता है. हालांकि, अतिरिक्त अपडेट पाने के लिए, अपने वर्कस्टेशन को Windows के 64-बिट वर्शन पर अपग्रेड करें.

ज़्यादा जानने के लिए, Windows 32-बिट में कीमत में गिरावट की जानकारी देने वाला ब्लॉग पढ़ें

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

पिछली रिलीज़ में, Android Studio ने Gradle के सभी टास्क की सूची वापस ले ली है Gradle सिंक के दौरान. बड़े प्रोजेक्ट के लिए, टास्क की सूची को वापस पाने पर, सिंक होने में ज़्यादा समय लग सकता है.

Gradle सिंक की परफ़ॉर्मेंस को बेहतर बनाने के लिए, फ़ाइल > सेटिंग > एक्सपेरिमेंट के तौर पर उपलब्ध और 'ग्रेडल सिंक' के दौरान 'ग्रेडल टास्क सूची न बनाएं' चुनें.

जब यह विकल्प चालू किया जाता है, तो Android Studio प्रोसेस के दौरान टास्क की सूची नहीं बनाता सिंक करें, जिससे Gradle Sync तेज़ी से पूरा होता है और यूज़र इंटरफ़ेस (यूआई) को बेहतर बनाता है प्रतिक्रियात्मकता. ध्यान रखें कि जब आईडीई, टास्क की सूची नहीं बनाता, तो Gradle पैनल में टास्क की सूचियां खाली हैं और टास्क के नाम अपने-आप पूरे होने की सुविधा बिल्ड फ़ाइलें काम नहीं करतीं.

Gradle का ऑफ़लाइन मोड टॉगल करने के लिए, नई जगह की जानकारी

Gradle का ऑफ़लाइन मोड चालू या बंद करने के लिए, पहले देखें > टूल की विंडो > Gradle को चुनें. इसके बाद, सबसे ऊपर Gredle विंडो में, ऑफ़लाइन मोड टॉगल करें पर क्लिक करें Gradle पैनल में Gradle ऑफ़लाइन बटन..

IntelliJ IDEA 2019.2

Android Studio के मुख्य आईडीई को IntelliJ ने बेहतर बनाया है 2019.2 की रिलीज़ तक IDEA.

IntelliJ के अन्य वर्शन में हुए सुधारों के बारे में ज़्यादा जानने के लिए, साल 2019.2 के साथ कुल मिलाकर इन पेजों को देखें:

कम्यूनिटी में योगदान देने वाले लोग

हमारी कम्यूनिटी में योगदान देने वाले सभी लोगों का धन्यवाद. इन लोगों ने हमें Android Studio 3.6 में मौजूद गड़बड़ियों को ढूंढने और उसे बेहतर बनाने के अन्य तरीकों का पता लगाने में मदद की है. खास तौर पर, हम उन लोगों का धन्यवाद करना चाहते हैं जिन्होंने गड़बड़ियों की शिकायत की है:

  • Albert Lo
  • एलेक्सी रॉट
  • एंड्रिया लेगांज़ा
  • बेनेडिक्ट कोल्ब
  • सीज़र पुएर्ता
  • कर्टिस क्रोएच
  • दामियन विज़ोरेक
  • डैन ल्यू
  • डेविड बर्स्ट्रॉम
  • दीपांशु
  • एगोर आंद्रेविच
  • एली ग्रैबर
  • एमिन कोकलारी
  • इवान टाटरका
  • फ्रंतिसेक नेगी
  • ग्रेग मॉन्स
  • हैन्स एक्लेइटनर
  • हंस पीटर ईड
  • हेनिंग बंक
  • Hugo Visser
  • इगोर एस्कोड्रो
  • इनाकी विलार
  • जवेंतीरा लिएनाटा
  • जो रॉजर्स
  • क्रिस्टॉफ़ डेनियलसन
  • लिरान बारिसा
  • लुइस सीएडी
  • लोरांट पिंटर
  • ऊकाज़ वासिलकोवस्की
  • ल्यूक फ़ील्के
  • माल्विन सुतांतो
  • मासातोशी कुबोडे
  • मैथ्यू विंटर्स
  • माइकल बेली
  • मिशैल गोर्नी
  • मिहाई निक्सू
  • माइक स्कैमेल
  • Monte Creasor
  • नेल्सन ओसाकी
  • नेल्सन ओसाकी
  • निक फ़िरमानी
  • Nicklas Ansman Giertz
  • निकास क्रोन
  • Nicolás Lichtmaier
  • Niek Haarman
  • नील्स वैन होव
  • Niklas Baudy
  • रेनाटो गोंज़ाल्वेस
  • Roar Grønmo
  • रुसलान बरातोव
  • सिनन कोज़ाक
  • स्लावोमिर ज़रविन्स्की
  • स्टीफ़न वुल्फ़
  • स्टीवन डामिको
  • ताओ वांग
  • तोमस ख्लाडेक
  • Tomáš Procházka
  • टोनी रोबालिक
  • Torbjørn Sørli
  • वॉरेन ही
  • येंची लिन
  • ज़ैक स्वियर्स
  • 3.5 (अगस्त 2019)

    Android Studio 3.5 एक मेजर रिलीज़ है और यह Project Marble का नतीजा है. इसकी रिलीज़ से शुरुआत Android Studio 3.3 में, Project Marble पहल ने कई रिलीज़ शामिल की हैं. IDE के तीन मुख्य क्षेत्रों को बेहतर बनाना: सिस्टम हेल्थ, बेहतर बनाने की सुविधा और गड़बड़ियों को ठीक करना.

    इनके और अन्य Project Marble अपडेट के बारे में जानकारी के लिए, Android Developers ब्लॉग पोस्ट या नीचे दिए गए सेक्शन.

    हम अपने सभी उपयोगकर्ताओं को भी धन्यवाद देना चाहते हैं योगदान देने वाले ऐसे लोग जिन्होंने हमें इस रिलीज़ में मदद मिली.

    3.5.3 (दिसंबर 2019)

    इस छोटे अपडेट में, कई गड़बड़ियां ठीक की गई हैं और परफ़ॉर्मेंस को बेहतर बनाया गया है.

    3.5.2 (नवंबर 2019)

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

    3.5.1 (अक्टूबर 2019)

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

    प्रोजेक्ट मार्बल: सिस्टम की परफ़ॉर्मेंस

    इस सेक्शन में Android Studio 3.5 में हो रहे बदलावों के बारे में बताया गया है. सिस्टम की परफ़ॉर्मेंस बेहतर हो रही है.

    मेमोरी की सुझाई गई सेटिंग

    अगर Android Studio को पता चलता है कि आपके डिवाइस के ऑपरेटिंग सिस्टम (ओएस) में ज़्यादा से ज़्यादा रैम उपलब्ध कराने पर, Android Studio की परफ़ॉर्मेंस को बेहतर बनाया जा सकता है, तो वह आपको इसकी सूचना देगा. ओएस को Android Studio की प्रोसेस के लिए ज़्यादा से ज़्यादा रैम उपलब्ध कराने की ज़रूरत होती है. जैसे, कोर आईडीई, Gradle डेमन, और Kotlin डेमन. आपके पास, सूचना में दिए गए ऐक्शन लिंक पर क्लिक करके, सुझाई गई सेटिंग को स्वीकार करने का विकल्प है. इसके अलावा, फ़ाइल > सेटिंग (या macOS पर Android Studio > प्राथमिकताएं) को चुनकर, इन सेटिंग में मैन्युअल तरीके से बदलाव किया जा सकता है. इसके बाद, दिखने का तरीका और व्यवहार > सिस्टम सेटिंग में जाकर, मेमोरी सेटिंग सेक्शन ढूंढें. ज़्यादा जानने के लिए, ज़्यादा से ज़्यादा हीप साइज़ देखें.

    मेमोरी की सुझाई गई सेटिंग के बारे में सूचना.

    मेमोरी की सुझाई गई सेटिंग के बारे में सूचना.

    मेमोरी के इस्तेमाल की रिपोर्ट

    Android Studio में मेमोरी से जुड़ी समस्याओं को दोहराना और उनके बारे में बताना कभी-कभी मुश्किल होता है. इस समस्या को हल करने के लिए, Android Studio आपको मेमोरी जनरेट करने की सुविधा देता है सहायता > मेन्यू बार में जाकर, मेमोरी के इस्तेमाल का विश्लेषण करें. ऐसा करने पर, IDE निजी जानकारी के लिए डेटा को स्थानीय तौर पर साफ़ करता है. इसके बाद, यह पूछता है कि क्या आपको इसे Android Studio टीम को भेजना है, ताकि मेमोरी से जुड़ी समस्याओं के सोर्स की पहचान की जा सके. ज़्यादा जानने के लिए, 'मेमोरी का इस्तेमाल करना' सेक्शन देखें रिपोर्ट.

    मेमोरी के इस्तेमाल की रिपोर्ट.

    मेमोरी के इस्तेमाल की रिपोर्ट.

    Windows: एंटीवायरस फ़ाइल I/O ऑप्टिमाइज़ेशन

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

    Project Marble: फ़ीचर पॉलिश

    इस सेक्शन में Android Studio 3.5 में हो रहे बदलावों के बारे में बताया गया है. मौजूदा सुविधाओं को बेहतर बनाया जा रहा है.

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

    'बदलाव लागू करें' सुविधा की मदद से, ऐप्लिकेशन को फिर से शुरू किए बिना, अपने ऐप्लिकेशन में कोड और संसाधन में बदलाव किए जा सकते हैं. साथ ही, कुछ मामलों में, मौजूदा गतिविधि को फिर से शुरू किए बिना भी ऐसा किया जा सकता है. 'बदलाव लागू करें' सुविधा, आपके ऐप्लिकेशन की स्थिति को बनाए रखने के लिए एक बिल्कुल नया तरीका लागू करती है. Instant Run के उलट, जिसने आपके APK के बाइटकोड को फिर से लिखा, लागू करें बदलाव, रनटाइम इंस्ट्रुमेंटेशन का इस्तेमाल करके क्लास को तुरंत फिर से तय करते हैं Android 8.0 (एपीआई लेवल 26) या इसके बाद वाले वर्शन में काम करता हो.

    ज़्यादा जानने के लिए, बदलाव लागू करना लेख पढ़ें.

    'बदलाव लागू करें' विकल्प के टूलबार बटन.

    'बदलाव लागू करें' विकल्प के टूलबार बटन.

    ऐप्लिकेशन डिप्लॉयमेंट फ़्लो

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

    टारगेट डिवाइस के लिए ड्रॉप-डाउन मेन्यू.

    टारगेट डिवाइस के लिए ड्रॉप-डाउन मेन्यू.

    Gradle सिंक और कैश मेमोरी का पता लगाने की सुविधा को बेहतर बनाया गया

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

    बिल्ड की गड़बड़ी का बेहतर आउटपुट

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

    • AAPT फ़ाइल को कंपाइल करना और लिंक करना
    • R8 और ProGuard
    • डेक्सिंग
    • रिसॉर्स मर्ज करना
    • एक्सएमएल फ़ाइल पार्स करना
    • Javac, Kotlinc, और CMake कंपाइलेशन

    प्रोजेक्ट अपग्रेड

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

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

    लेआउट एडिटर

    Android Studio 3.5 में लेआउट विज़ुअलाइज़ेशन के लिए कई सुधार किए गए हैं, और इंटरैक्शन शामिल होते हैं.

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

    चुने गए यूज़र इंटरफ़ेस (यूआई) एलिमेंट के लिए कंस्ट्रेंट रिलेशनशिप.

    चुने गए यूज़र इंटरफ़ेस (यूआई) एलिमेंट के लिए कंस्ट्रेंट रिलेशनशिप.

    इसी तरह, अब किसी शर्त को चुनकर और Delete बटन दबाकर, उसे मिटाया जा सकता है. किसी कंस्ट्रेंट को हटाने के लिए, Control बटन (macOS पर Command) और कंस्ट्रेंट ऐंकर. ध्यान दें कि Control या Command बटन को दबाकर किसी ऐंकर पर कर्सर घुमाने पर, उससे जुड़ी सभी पाबंदियां लाल हो जाती हैं. इससे पता चलता है कि उन्हें मिटाने के लिए उन पर क्लिक किया जा सकता है.

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

    इस ऐनिमेशन में, कंस्ट्रेंट विजेट का इस्तेमाल करके कॉन्टेंट बनाने का तरीका बताया गया है
            करना है.

    कंस्ट्रेंट बनाने के लिए, कंस्ट्रेंट विजेट का इस्तेमाल करना .

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

    ओवरलैप होने के लिए कंस्ट्रेंट बनाने का तरीका दिखाने वाला ऐनिमेशन
            घटक में उपलब्ध है.

    इसमें ओवरलैप होने वाले कॉम्पोनेंट के लिए कंस्ट्रेंट बनाना Android Studio 3.4.

    Android Studio 3.5 में, ओवरलैप करने वाले कॉम्पोनेंट के लिए कंस्ट्रेंट बनाने का तरीका बताने वाला ऐनिमेशन.

    इसमें ओवरलैप होने वाले कॉम्पोनेंट के लिए कंस्ट्रेंट बनाना Android Studio 3.5.

    ऊपर दिए गए अपडेट के अलावा, Android Studio 3.5 में लेआउट एडिटर में किए गए सुधारों के बाद:

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

    इन बदलावों के बारे में ज़्यादा जानकारी के लिए, देखें Android Studio Project Marble: Layout Editor.

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

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

    Android Studio पर कोड एडिटर की परफ़ॉर्मेंस दिखाने वाला ऐनिमेशन
            3.4.

    Android Studio 3.4 पर कोड एडिटर की परफ़ॉर्मेंस.

    Android Studio पर कोड एडिटर की परफ़ॉर्मेंस दिखाने वाला ऐनिमेशन
            3.5.

    Android Studio पर कोड में बदलाव करने की बेहतर परफ़ॉर्मेंस 3.5.

    C/C++ प्रोजेक्ट के लिए बेहतर सहायता

    Android Studio 3.5 में ऐसे कई बदलाव शामिल हैं जो C/C++ के लिए बेहतर तरीके से काम करते हैं प्रोजेक्ट.

    एक वैरिएंट को सिंक करने के लिए, वैरिएंट पैनल में किए गए सुधार

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

    ज़्यादा जानने के लिए, बिल्ड का वैरिएंट बदलना लेख पढ़ें.

    वैरिएंट बनाने वाला पैनल, जिसमें एबीआई के हिसाब से एक वैरिएंट का विकल्प दिखाया गया है.

    बिल्ड वैरिएंट पैनल, जिसमें नीचे दिया गया वैरिएंट चुनने का विकल्प मौजूद है एबीआई.

    एनडीके के साइड-बाय-साइड वर्शन

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

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

    ज़्यादा जानने के लिए, NDK, CMake, और LLDB इंस्टॉल और कॉन्फ़िगर करना लेख पढ़ें.

    ChromeOS सहायता

    Android Studio अब आधिकारिक तौर पर ChromeOS डिवाइसों पर काम करता है. जैसे, HP Chromebook x360 14, Acer Chromebook 13/Spin 13 वगैरह. इनके बारे में ज़्यादा जानने के लिए, सिस्टम की ज़रूरी शर्तें लेख पढ़ें. शुरू करने के लिए, अपने काम करने वाले ChromeOS डिवाइस पर Android Studio डाउनलोड करें और इंस्टॉल करने के निर्देशों का पालन करें.

    ध्यान दें: फ़िलहाल, ChromeOS पर Android Studio में आपके ऐप्लिकेशन को सिर्फ़ इन कामों के लिए डिप्लॉय किया जा सकता है कनेक्ट किया गया हार्डवेयर डिवाइस. इस बारे में ज़्यादा जानने के लिए, पढ़ें हार्डवेयर पर ऐप्लिकेशन चलाना डिवाइस पर टैप करें.

    सुविधा वाले मॉड्यूल के लिए, शर्तों के साथ डिलीवरी

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

    फ़िलहाल, यह डिलीवरी का तरीका मॉड्यूल के डाउनलोड को कंट्रोल करने की सुविधा देता है ऐप्लिकेशन इंस्टॉल करते समय इन डिवाइस कॉन्फ़िगरेशन के हिसाब से:

    • डिवाइस के हार्डवेयर और सॉफ़्टवेयर की सुविधाएं. इनमें OpenGL ES वर्शन भी शामिल है
    • उपयोगकर्ता का देश
    • API स्तर

    अगर कोई डिवाइस आपकी तय की गई सभी ज़रूरतों को पूरा नहीं करता है, तो मॉड्यूल ऐप्लिकेशन इंस्टॉल करते समय डाउनलोड किया गया. हालांकि, आपका ऐप्लिकेशन बाद में Play Core का इस्तेमाल करके, मांग पर मॉड्यूल डाउनलोड करें लाइब्रेरी. इस बारे में ज़्यादा जानने के लिए, पढ़ें कंडिशनल डिलीवरी कॉन्फ़िगर करना.

    IntelliJ IDEA 2019.1

    Android Studio के मुख्य आईडीई को IntelliJ ने बेहतर बनाया है 2019.1 की रिलीज़ के दौरान IDEA, जैसे कि थीम को पसंद के मुताबिक बनाना.

    Android Studio में आखिरी बार IntelliJ का वर्शन, 4.2018 को शामिल किया गया था. IntelliJ के अन्य वर्शन में हुए सुधारों के बारे में ज़्यादा जानकारी पाने के लिए Android Studio के इस रिलीज़ के साथ कुल मिलाकर शामिल किए गए ऐप्लिकेशन देखें. गड़बड़ी ठीक करने के अपडेट के बारे में नीचे बताया गया है:

    'Android Gradle प्लग इन 3.5.0' के अपडेट

    'Android Gradle प्लग इन 3.5.0' में नया क्या है, इसकी जानकारी के लिए का समर्थन करने के लिए, इंक्रीमेंटल एनोटेशन प्रोसेसिंग और कैश करने योग्य यूनिट टेस्ट के लिए प्रॉडक्ट की जानकारी शामिल करें.

    कम्यूनिटी कॉन्ट्रिब्यूटर

    कम्यूनिटी में योगदान देने वाले उन सभी लोगों का धन्यवाद जिन्होंने गड़बड़ियां खोजने में हमारी मदद की और Android Studio 3.5 को बेहतर बनाने के दूसरे तरीके भी बताए हैं. खास तौर पर, हम आपके समाचार संगठन को ये लोग जिन्होंने P0 और P1 गड़बड़ी की शिकायत की है:

    3.4 (अप्रैल 2019)

    Android Studio 3.4 एक बड़ी रिलीज़ है, जिसमें कई नई सुविधाएं शामिल हैं और सुधार.

    3.4.2 (जुलाई 2019)

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

    3.4.1 (मई 2019)

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

    3.4.0 में पहले से मौजूद समस्याएं

    • Android Q बीटा वर्शन पर चलने वाले डिवाइस पर ऐप्लिकेशन को डिप्लॉय करने पर, प्रोफ़ाइलिंग की सुविधा बंद हो जाती है.

    • डेटा बाइंडिंग लाइब्रेरी का इस्तेमाल करते समय, LiveDataListener.onChanged(), एनपीई के साथ फ़ेल हो सकता है. इस समस्या को ठीक करने का तरीका, Android Studio 3.4.1 में शामिल किया जाएगा. यह तरीका, Android Studio 3.5 के सबसे नए प्रीव्यू वर्शन में पहले से ही उपलब्ध है. (देखें समस्या #122066788)

    IntelliJ IDEA 2018.3.4

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

    'Android Gradle प्लग इन 3.4.0' के अपडेट

    'Android Gradle प्लग इन 3.4.0' में नया क्या है, इस बारे में जानकारी के लिए प्रॉडक्ट की जानकारी शामिल करें.

    नए प्रोजेक्ट के स्ट्रक्चर वाला डायलॉग बॉक्स

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

    मेन्यू बार में जाकर, फ़ाइल > प्रोजेक्ट स्ट्रक्चर को चुनकर, PSD फ़ाइल खोली जा सकती है. PSD को खोलने के लिए, Windows पर Ctrl+Shift+Alt+S को दबाएं और macOS पर Linux या Command+; (सेमीकोलन). यहां PSD के कुछ नए और अपडेट किए गए सेक्शन के बारे में जानकारी दी गई है.

    वैरिएबल

    PSD के नए वैरिएबल सेक्शन से, बिल्ड बनाने और मैनेज करने में मदद मिलती है वैरिएबल, जैसे कि डिपेंडेंसी के लिए वर्शन नंबर को एक जैसा बनाए रखने वाले वैरिएबल पूरे प्रोजेक्ट में शामिल किया जा सकता है.

    • अपने प्रोजेक्ट में पहले से मौजूद बिल्ड वैरिएबल को तुरंत देखें और उनमें बदलाव करें Gradle बिल्ड स्क्रिप्ट.
    • सीधे PSD से प्रोजेक्ट- या मॉड्यूल-लेवल पर नए बिल्ड वैरिएबल जोड़ें.

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

    मॉड्यूल

    किसी मौजूदा मॉड्यूल में सभी बिल्ड वैरिएंट पर लागू होने वाली प्रॉपर्टी कॉन्फ़िगर करें या मॉड्यूल सेक्शन से अपने प्रोजेक्ट में नए मॉड्यूल जोड़ें. इसके लिए उदाहरण के लिए, यहां defaultConfig प्रॉपर्टी को कॉन्फ़िगर किया जा सकता है या साइनिंग कॉन्फ़िगरेशन.

    डिपेंडेंसी

    इसके डिपेंडेंसी ग्राफ़ में हर डिपेंडेंसी की जांच करें और उसे विज़ुअलाइज़ करें आपका प्रोजेक्ट सिंक होने के दौरान, Gradle ने इन चरणों का पालन करके समाधान किया चरण:

    1. PSD के बाएं पैनल में, डिपेंडेंसी चुनें.
    2. मॉड्यूल पैनल में वह मॉड्यूल चुनें जिसकी आपको जांच करनी है डिपेंडेंसी रिज़ॉल्व की गई.
    3. PSD की दाईं ओर, समाधान किया गया डिपेंडेंसी पैनल खोलें, जो नीचे दी गई जानकारी देखें.

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

    चुनी गई डिपेंडेंसी के टाइप के आधार पर, आपको एक डायलॉग दिखेगा, नीचे दिए गए कोड की तरह, जो आपको मॉड्यूल में डिपेंडेंसी जोड़ने में मदद करता है.

    वैरिएंट बनाना

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

    सुझाव

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

    नया संसाधन मैनेजर

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

    • संसाधनों को विज़ुअलाइज़ करना: अपनी ज़रूरत के संसाधनों को तुरंत ढूंढने के लिए, ड्रॉ किए जा सकने वाले आइटम, रंग, और लेआउट की झलक देखी जा सकती है.
    • बल्क इंपोर्ट: ड्रॉ करने लायक कई ऐसेट को एक साथ इंपोर्ट किया जा सकता है. इसके लिए, उन्हें संसाधन मैनेजर टूल विंडो में खींचें और छोड़ें या ड्रॉ करने लायक आइटम इंपोर्ट करें विज़र्ड का इस्तेमाल करके. विज़र्ड तक पहुंचने के लिए, {4} क्लिक करें, और फिर ड्रॉप-डाउन मेन्यू से ड्रॉ करने लायक आइटम इंपोर्ट करें.
    • SVGs को VectorDrawable ऑब्जेक्ट में बदलें: इसका इस्तेमाल किया जा सकता है अपनी SVG इमेज को VectorDrawable में बदलने के लिए, Drawables इंपोर्ट करें विज़र्ड ऑब्जेक्ट हैं.
    • ऐसेट को खींचना और छोड़ना: संसाधन मैनेजर टूल विंडो से, ये काम किए जा सकते हैं ड्रॉ करने लायक आइटम को लेआउट के डिज़ाइन और एक्सएमएल व्यू, दोनों में खींचें और छोड़ें एडिटर.
    • वैकल्पिक वर्शन देखना: अब आपके पास अपने ब्राउज़र के अन्य वर्शन देखने का विकल्प है टूल विंडो में किसी संसाधन पर दो बार क्लिक करके, उसके संसाधनों को ऐक्सेस किया जा सकता है. यह व्यू आपके बनाए गए अलग-अलग वर्शन और क्वालीफ़ायर दिखाता है जो शामिल हैं.
    • टाइल और सूची व्यू: टूल विंडो में मौजूद व्यू को अपने संसाधनों को अलग-अलग तरीके से विज़ुअलाइज़ करें.

    ज़्यादा जानने के लिए, ऐप्लिकेशन के संसाधनों को मैनेज करें.

    APKs की प्रोफ़ाइल बनाते और उन्हें डीबग करते समय, बिल्ड आईडी की जांच की जा रही है

    जब शेयर की गई .so लाइब्रेरी के लिए, डीबग करने वाली सिंबल फ़ाइलें दी जाती हैं को इंस्टॉल करता है, तो Android Studio पुष्टि करता है कि दी गई सिंबल फ़ाइलों का बिल्ड आईडी मेल खाता है APK में मौजूद .so लाइब्रेरी का बिल्ड आईडी.

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

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

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

    नीचे दी गई इमेज, कंपाइल करने की प्रोसेस की खास जानकारी देती है R8 लॉन्च होने से पहले किया था.

    R8 से पहले, ProGuard को डेक्सिंग से अलग तरीके से कंपाइल किया गया था और
            डिसुगरिंग.

    अब R8 के साथ, डीसुगरिंग, छोटा करना, गुप्त करना, ऑप्टिमाइज़ करना, और डीक्स करना (D8) ये सभी एक चरण में पूरे हो जाते हैं, जैसा कि यहां दिखाया गया है.

    R8 की मदद से, डिसुगरिंग, स्क्रिंकिंग, अस्पष्ट, ऑप्टिमाइज़, और डेक्सिंग
            सभी फ़ाइलों को कंपाइल करने के लिए एक ही चरण में पूरा किया जाता है.

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

    अगर आपको R8 का इस्तेमाल करने में समस्या आ रही है, तो R8 के साथ काम करने के बारे में अक्सर पूछे जाने वाले सवाल यह देखने के लिए कि क्या आपकी समस्या का कोई समाधान है. अगर समाधान के बारे में जानकारी नहीं है, कृपया गड़बड़ी की शिकायत करें. अपने प्रोजेक्ट के प्रोजेक्ट में इनमें से किसी एक लाइन को जोड़कर, R8 को बंद किया जा सकता है gradle.properties फ़ाइल:

        # Disables R8 for Android Library modules only.
        android.enableR8.libraries = false
        # Disables R8 for all modules.
        android.enableR8 = false
        
      

    ध्यान दें: अगर आपने किसी बिल्ड टाइप को सेट किया है, तो आपके ऐप्लिकेशन में useProguard से false मॉड्यूल की build.gradle फ़ाइल है, तो 'Android Gradle प्लग इन' आपके उस बिल्ड टाइप के लिए ऐप्लिकेशन का कोड डालें, भले ही आप अपने ऐप्लिकेशन में R8 को बंद करें प्रोजेक्ट की gradle.properties फ़ाइल होगी.

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

    लेआउट एडिटर में किए गए सुधार {:#layout-Editor}

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

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

    डिपेंडेंसी इंपोर्ट करने के लिए नई इंटेंट कार्रवाई

    अगर आपने अपने कोड में कुछ Jetpack और Firebase क्लास इस्तेमाल करना शुरू किया है, तो इंटेंट कार्रवाई का सुझाव है कि अपनी Gradle लाइब्रेरी डिपेंडेंसी के लिए ज़रूरी शामिल हैं, अगर आपने पहले से ऐसा नहीं किया है. उदाहरण के लिए, यदि आप WorkManager क्लास को इंपोर्ट करना ज़रूरी नहीं है android.arch.work:work-runtime डिपेंडेंसी. इंटेंट ऐक्शन की मदद से ऐसा किया जा सकता है जो नीचे बताए गए तरीके से बस एक क्लिक में आसानी से मिल जाएंगे.

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

    3.3 (जनवरी 2019)

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

    3.3.2 (मार्च 2019)

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

    3.3.1 (फ़रवरी 2019)

    इस छोटे अपडेट में, कई गड़बड़ियां ठीक की गई हैं और परफ़ॉर्मेंस को बेहतर बनाया गया है.

    IntelliJ IDEA 2018.2.2

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

    Android Gradle प्लग इन से जुड़े अपडेट

    Android Gradle प्लग-इन में जो नई सुविधाएं जोड़ी गई हैं उनके बारे में जानने के लिए, इसके रिलीज़ नोट देखें.

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

    ज़्यादा जानकारी के लिए, नेविगेशन आर्किटेक्चर कॉम्पोनेंट की मदद से नेविगेशन लागू करना लेख पढ़ें.

    इस्तेमाल नहीं की जा रही Android Studio डायरेक्ट्री मिटाना

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

    Android Studio जिन डायरेक्ट्री को मिटाना चाहता है उनकी सूची यहां दी गई है:

    • Linux: ~/.AndroidStudio[Preview]X.Y
    • Mac: ~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]X.Y
    • Windows: %USER%.AndroidStudio[Preview]X.Y

    लिंट में सुधार

    Gradle से लिंट करने पर, यह प्रोसेस काफ़ी तेज़ हो जाती है. बड़े प्रोजेक्ट में, लिंट की प्रोसेस चार गुना तेज़ हो सकती है.

    नया प्रोजेक्ट बनाने वाला विज़र्ड

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

    ज़्यादा जानकारी के लिए, प्रोजेक्ट बनाना देखें.

    प्रोफ़ाइलर से जुड़े अपडेट

    Android Studio 3.3 में, अलग-अलग प्रोफ़ाइलर के लिए अपडेट शामिल हैं.

    बेहतर परफ़ॉर्मेंस

    उपयोगकर्ता के सुझाव के आधार पर, प्रोफ़ाइलर का इस्तेमाल करते समय रेंडरिंग की गई परफ़ॉर्मेंस काफ़ी बेहतर हो गया है. कृपया यहां जाएं सुझाव, शिकायत या राय दें, खास तौर पर तब, जब आपको परफ़ॉर्मेंस की समस्याएं लगातार दिखती हों.

    प्रोफ़ाइलर के लिए मेमोरी ऐलोकेशन को ट्रैक करने के विकल्प

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

    ऐलोकेशन ट्रैकिंग ड्रॉपडाउन का इस्तेमाल करके, इनमें से कोई विकल्प चुना जा सकता है मोड:

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

    • सैंपल किया गया: यह ऑब्जेक्ट मेमोरी के ऐलोकेशन का समय-समय पर सैंपल कैप्चर करता है. यह है इससे ऐप्लिकेशन की परफ़ॉर्मेंस पर कम असर पड़ता है. आपको उन ऐप्लिकेशन में परफ़ॉर्मेंस से जुड़ी कुछ समस्याएं आ सकती हैं जो बहुत ज़्यादा कम समय में ऑब्जेक्ट को दिखाना.

    • बंद है: इससे मेमोरी का ऐलोकेशन बंद हो जाता है. अगर यह विकल्प पहले से चुना नहीं गया है, तो सीपीयू रिकॉर्डिंग के दौरान यह मोड अपने-आप चालू हो जाता है. रिकॉर्डिंग खत्म होने के बाद, यह पिछली सेटिंग पर वापस आ जाता है. आप इस व्यवहार को बदल सकते हैं वाला विकल्प भी है.

      ट्रैकिंग Java ऑब्जेक्ट और JNI संदर्भ दोनों को प्रभावित करती है.

    फ़्रेम रेंडरिंग डेटा की जांच करना

    सीपीयू प्रोफ़ाइलर में, अब इसकी जांच की जा सकती है इससे आपके Java ऐप्लिकेशन को मुख्य यूज़र इंटरफ़ेस (यूआई) थ्रेड पर हर फ़्रेम को रेंडर करने में ज़्यादा समय लगता है और रेंडर थ्रेड. यह डेटा, उन समस्याओं की जांच करने में मददगार हो सकता है जिनकी वजह से यूज़र इंटरफ़ेस (यूआई) में रुकावट आती है और फ़्रेम रेट कम हो जाता है. उदाहरण के लिए, हर फ़्रेम जो इससे ज़्यादा समय में आसान फ़्रेमरेट बनाए रखने के लिए ज़रूरी 16 मि॰से॰ को लाल रंग में दिखाया गया है.

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

    फ़्रेमरेट की समस्याओं की जांच करने और उन्हें ठीक करने के बारे में ज़्यादा जानने के लिए, पढ़ें धीमी रेंडरिंग.

    इवेंट टाइमलाइन में फ़्रैगमेंट

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

    नेटवर्क प्रोफ़ाइलर में कनेक्शन पेलोड के लिए फ़ॉर्मैट किया गया टेक्स्ट देखें

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

    ज़्यादा जानकारी के लिए, नेटवर्क प्रोफ़ाइलर की मदद से नेटवर्क ट्रैफ़िक की जांच करना देखें.

    SDK टूल के कॉम्पोनेंट अपने-आप डाउनलोड होने की सुविधा

    जब आपके प्रोजेक्ट को SDK प्लैटफ़ॉर्म, NDK या CMake से SDK टूल के किसी कॉम्पोनेंट की ज़रूरत होगी, Gradle अब तब तक ज़रूरी पैकेज अपने-आप डाउनलोड करता है, जब तक कि आपने SDK Manager का इस्तेमाल करके, लाइसेंस से जुड़े किसी भी कानूनी समझौते को पहले ही स्वीकार कर लिया हो.

    ज़्यादा जानकारी के लिए, यह देखें Gredle की मदद से, उन पैकेज को अपने-आप डाउनलोड करें जो मौजूद नहीं हैं.

    Clang-Tidy के लिए सहायता

    Android Studio में अब स्टैटिक कोड का विश्लेषण करने की सुविधा शामिल है. इसके लिए, Clang-Tidy का इस्तेमाल किया जाता है. यह सुविधा, नेटिव कोड वाले प्रोजेक्ट के लिए उपलब्ध है. Clang-Tidy के साथ काम करने की सुविधा चालू करने के लिए, अपने NDK टूल को r18 या इसके बाद के वर्शन पर अपडेट करें.

    इसके बाद, सेटिंग या प्राथमिकताएं डायलॉग खोलकर, जांच की सुविधा को चालू या फिर से चालू किया जा सकता है. इसके लिए, एडिटर > जांच > C/C++ > सामान्य > Clang-Tidy पर जाएं. इसे चुनते समय सेटिंग या प्राथमिकताएं डायलॉग में जांच की सुविधा का इस्तेमाल करके, Clang-Tidy की जांचों की सूची जो सबसे दाईं ओर मौजूद पैनल का Option सेक्शन. अतिरिक्त जांच चालू करने के लिए, उन्हें सूची में जोड़ें और लागू करें पर क्लिक करें.

    अतिरिक्त विकल्पों की मदद से Clang-Tidy को कॉन्फ़िगर करने के लिए, Clang-Tidy Checks के विकल्पों को कॉन्फ़िगर करें पर क्लिक करें और उन्हें उस डायलॉग बॉक्स में जोड़ें जिसमें खोलें.

    C++ कस्टमाइज़ेशन के विकल्पों को हटाना

    पसंद के मुताबिक C++ सहायता से इन विकल्पों को हटा दिया गया है डायलॉग:

    • अपवाद के तौर पर सहायता (-fअपवाद)
    • रनटाइम टाइप की जानकारी से जुड़ी सहायता (-ftti)

    Android Studio के ज़रिए बनाए गए सभी प्रोजेक्ट के लिए, अलग-अलग तरह की सुविधाएं इस्तेमाल की जा सकती हैं.

    CMake वर्शन 3.10.2

    CMake का वर्शन 3.10.2 अब SDK Manager में शामिल हो गया है. ध्यान दें कि Gradle अब भी डिफ़ॉल्ट रूप से, वर्शन 3.6.0 का इस्तेमाल करता है.

    Gradle के इस्तेमाल के लिए CMake का कोई वर्शन तय करने के लिए, अपने मॉड्यूल की build.gradle फ़ाइल में यह जानकारी जोड़ें:

        android {
            ...
            externalNativeBuild {
                cmake {
                    ...
                    version "3.10.2"
                }
            }
        }
        
      

    build.gradle में CMake को कॉन्फ़िगर करने के बारे में ज़्यादा जानने के लिए, Gradle को मैन्युअल तरीके से कॉन्फ़िगर करना लेख पढ़ें.

    CMake के कम से कम वर्शन तय करने के लिए नया “+” सिंटैक्स

    अपने मुख्य मॉड्यूल की build.gradle फ़ाइल में, CMake के वर्शन के बारे में बताते समय, अब आपके पास “+” जोड़ने का विकल्प है, जो CMake की cmake_minimum_required() आदेश.

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

    'Android ऐप्लिकेशन बंडल' अब इंस्टैंट ऐप्लिकेशन के साथ काम करते हैं

    Android Studio की मदद से, अब Android ऐप्लिकेशन बंडल बनाए जा सकते हैं. साथ ही, Google Play Instant के लिए पूरी तरह से काम करने वाले ऐप्लिकेशन बनाए जा सकते हैं. दूसरे शब्दों में, अब एक ही Android Studio प्रोजेक्ट से, इंस्टॉल किए गए ऐप्लिकेशन और झटपट इस्तेमाल की सुविधा, दोनों को बनाया और डिप्लॉय किया जा सकता है. साथ ही, उन्हें एक ही Android ऐप्लिकेशन बंडल में शामिल किया जा सकता है.

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

        <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
            <dist:module dist:instant="true" />
            ...
        </manifest>
        
      

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

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

    सिंगल-वैरिएंट प्रोजेक्ट सिंक करना

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

    आपको 'Android Gradle प्लग इन 3.3.0' के साथ Android Studio 3.3 या इसके बाद वाले वर्शन का इस्तेमाल करना होगा या इससे ज़्यादा का इस्तेमाल करें. इन ज़रूरी शर्तों को पूरा करने पर, IDE आपसे प्रोजेक्ट सिंक करते समय, इस ऑप्टिमाइज़ेशन को चालू करने के लिए कहता है. कॉन्टेंट बनाने नए प्रोजेक्ट के लिए ऑप्टिमाइज़ेशन डिफ़ॉल्ट रूप से चालू होता है.

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

    ध्यान दें: फ़िलहाल, यह ऑप्टिमाइज़ेशन ऐसे प्रोजेक्ट के साथ काम करता है जिनमें सिर्फ़ Java शामिल है प्रोग्रामिंग भाषा है. उदाहरण के लिए, अगर IDE, है, तो यह इस ऑप्टिमाइज़ेशन को अपने-आप चालू नहीं करता. इसलिए, आपको इसे मैन्युअल तरीके से चालू न करें.

    ज़्यादा जानकारी के लिए, सिंगल-वैरिएंट प्रोजेक्ट सिंक करने की सुविधा चालू करना देखें.

    तुरंत सुझाव या राय दें या शिकायत करें

    अगर आपने Android Studio को बेहतर बनाने के लिए, इस्तेमाल के आंकड़े शेयर करने का विकल्प चुना है, तो आपको IDE विंडो के सबसे नीचे मौजूद स्टेटस बार में ये दो नए आइकॉन दिखेंगे:

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

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

    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 में नया क्या है.

    Android Jetpack

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

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

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

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

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

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

    Android Studio 3.2 में, माइग्रेशन की नई सुविधा की मदद से, इस प्रोसेस को पूरा किया जा सकता है.

    किसी मौजूदा प्रोजेक्ट को AndroidX में माइग्रेट करने के लिए, Refactor > इस पर माइग्रेट करें 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 पर सेट किया गया होता.

    जब इसका इस्तेमाल किया जाता है, तो दोनों फ़्लैग true पर सेट हो जाते हैं AndroidX पर माइग्रेट करें निर्देश.

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

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

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

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

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

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

    ज़्यादा जानकारी के लिए, Android ऐप्लिकेशन बंडल देखें. इसमें, Android ऐप्लिकेशन बंडल बनाने और उसका विश्लेषण करने के निर्देश भी शामिल हैं.

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

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

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

    स्लाइस

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

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

    शुरू करने के लिए, किसी प्रोजेक्ट फ़ोल्डर पर राइट क्लिक करें और नया > अन्य > स्लाइस प्रोवाइडर.

    अपने स्लाइस के इंटरैक्शन की जांच करने के तरीके के साथ-साथ ज़्यादा जानने के लिए, स्लाइस शुरुआती निर्देश देखें.

    Kotlin 1.2.61

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

    IntelliJ IDEA 2018.1.6

    Android Studio के मुख्य आईडीई को IntelliJ ने बेहतर बनाया है IDEA से लेकर 1.6.2018 की रिलीज़.

    Android प्रोफ़ाइलर

    नीचे दिया गया नया Android प्रोफ़ाइलर आज़माएं Android Studio 3.2 में उपलब्ध सुविधाओं के बारे में ज़्यादा जानें.

    सेशन

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

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

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

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

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

    मेमोरी प्रोफ़ाइलर में JNI रेफ़रंस की जांच करना

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

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

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

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

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

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

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

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

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

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

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

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

    अब.trace Debug API या सीपीयू प्रोफ़ाइलर. (फ़िलहाल, आपको सिस्टम ट्रेस वाली रिकॉर्डिंग इंपोर्ट नहीं की जा सकतीं.)

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

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

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

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

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

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

    एनर्जी प्रोफ़ाइलर व्यू को बड़ा करने के लिए, एनर्जी लाइन पर क्लिक करें. अपना माउस रखें सीपीयू से ऊर्जा की खपत का ब्रेकडाउन देखने के लिए, टाइमलाइन में किसी बार के ऊपर पॉइंटर रखें, को ऐक्सेस करने में मदद मिलेगी.

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

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

    लिंट की जांच

    Android Studio 3.2 में लिंट की जांच करना.

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

    लिंट यह जांच करता है कि Java/Kotlin इंटरऑपरेबिलिटी (दूसरे सिस्टम के साथ काम करने का तरीका) क्या है

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

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

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

            android {
                lintOptions {
                    check 'Interoperability'
                }
            }
            
          
    स्लाइस के लिए लिंट की जांच

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

    नया Gradle टारगेट

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

    मेटाडेटा से जुड़े अपडेट

    लिंट के लिए कई मेटाडेटा अपडेट किए गए हैं. जैसे, सर्विस कास्ट की जांच की जांच करता है.

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

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

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

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

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

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

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

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

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

    D8 डिशुगरिंग

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

    नया कोड श्रिन्कर

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

          android.enableR8 = true
        

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

    जब एक से ज़्यादा APK बनाए जाते हैं, तो हर 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 में अब एडिटर की बेहतर सुविधाएं शामिल हैं. इनका इस्तेमाल करके, बिल्ड स्क्रिप्ट बनाएं, जैसे कि:

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

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

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

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

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

    AAPT2 को Google की Maven रिपॉज़िटरी में भेज दिया गया है

    Android Studio 3.2 से शुरुआत करके, AAPT2 (Android ऐसेट पैकेजिंग टूल 2) Google की Maven रिपॉज़िटरी है.

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

        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 शुरू करने के लिए, टूल > चुनें कनेक्शन असिस्टेंट.

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

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

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

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

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

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

    3.1 (मार्च 2018)

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

    3.1.4 (अगस्त 2018)

    Android Studio 3.1 के इस अपडेट में ये बदलाव और सुधार शामिल हैं:

    • बंडल किए गए Kotlin का वर्शन अब 1.2.50 वर्शन है.
    • kotlin-stdlib-jdk* artifacts की मदद से नए प्रोजेक्ट बनाए जाते हैं, kotlin-stdlib-jre* आर्टफ़ैक्ट के बजाय हैं, जो बंद कर दिया गया है.
    • ProGuard के नियमों को R8 की मदद से पार्स करने की सुविधा को बेहतर बनाया गया है.
    • ये गड़बड़ियां ठीक कर दी गई हैं:
      • Kotlin की Main क्लास को चलाने की कोशिश करने पर, गड़बड़ी का यह मैसेज मिला: "Error: Could not find or load main class..."
      • कुछ ऑप्टिमाइज़ेशन करते हुए, R8 ने एक अनंत लूप डाला.
      • रन विंडो में पूरे न हुए टेस्ट फिर से चलाएं कमांड का इस्तेमाल करने पर, कभी-कभी गलत तरीके से "कोई टेस्ट नहीं मिला" मैसेज दिखता था.
      • D8 ने invoke-virtual इंस्टेंस को सही तरीके से हैंडल नहीं किया, VerifyError के साथ क्रैश होने की वजह से: invoke-super/virtual can't be used on private method
      • डेटा बाइंडिंग कंपाइलर इसके पुराने वर्शन पर निर्भर करता था com.android.tools:annotations. कंपाइलर अब उपलब्ध होने पर, बेस प्रोजेक्ट के टूल एनोटेशन भी जोड़े जा सकते हैं.
      • फ़्रैगमेंट ट्रांज़िशन के दौरान, Android Studio इस्तेमाल करते समय क्रैश हो गया प्रोफ़ाइलर.
      • टेक्स्ट बॉक्स वाले लेआउट की डीबगिंग करते समय, डीबगर क्रैश हो गया.
      • D8, खास वर्णों वाली कुछ ZIP फ़ाइलों को पढ़ने में कामयाब नहीं हुआ.

    3.1.3 (जून 2018)

    Android Studio 3.1 के इस अपडेट में नीचे दी गई गड़बड़ियों को ठीक किया गया है:

    • मेमोरी लीक की वजह से, Layout Editor का इस्तेमाल करने के बाद Android Studio धीमा हो गया और काम नहीं कर रहा था. इस अपडेट में सुधार शामिल हैं का समाधान देते हैं. हम जल्द ही एक और अपडेट रिलीज़ करेंगे, ताकि अतिरिक्त मेमोरी लीक को ठीक करता है.
    • D8 के साथ बनाए गए कुछ ऐप्लिकेशन, Verizon Ellipsis टैबलेट पर क्रैश हो गए.
    • D8 के साथ बनाए गए ऐप्लिकेशन को इंस्टॉल नहीं किया जा सका Android 5.0 या Android 5.0 चला रहे डिवाइसों पर INSTALL_FAILED_DEXOPT गड़बड़ी 5.1 (एपीआई लेवल 21 या 22).
    • कुछ ऐप्लिकेशन जो OkHttp लाइब्रेरी का इस्तेमाल करते हैं और D8 के साथ बनाए गए हैं यह समस्या, Android 4.4 (एपीआई लेवल 19) पर काम करने वाले डिवाइसों पर क्रैश हो गई थी.
    • Android Studio कभी-कभी चालू नहीं हो पाता है. क्लास शुरू करने के दौरान ProcessCanceledException com.intellij.psi.jsp.JspElementType.

    3.1.2 (अप्रैल 2018)

    Android Studio 3.1 के इस अपडेट में नीचे दी गई गड़बड़ियों को ठीक किया गया है:

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

      "The SourceSet name is not recognized by the Android Gradle Plugin."

    • 'इंस्टैंट रन' के चालू होने पर, नए Kotlin प्रोजेक्ट बनाना मुमकिन नहीं हुआ जब यह Run कमांड से ट्रिगर होता है.
    • build.gradle फ़ाइल में बदलाव करते समय, कभी-कभी किसी वर्ण को टाइप करने और वर्ण के दिखने के बीच काफ़ी देरी स्क्रीन पर.
    • बड़े साइज़ के कुछ प्रोजेक्ट में डेक्सिंग के दौरान बिल्ड विफल हुआ मॉड्यूल या बाहरी डिपेंडेंसी की संख्या, जिनमें ये गड़बड़ी शामिल है संदेश:

      "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

    • D8 की मुख्य DEX सूची की गणना में, कुछ ध्यान दें.

    इस अपडेट में ऐसे बदलाव भी शामिल हैं जिनसे Gradle से लिंट जांच चल रही है और तेज़ी से काम करता है.

    3.1.1 (अप्रैल 2018)

    Android Studio 3.1 के इस अपडेट में नीचे दी गई गड़बड़ियों को ठीक किया गया है:

    • कुछ मामलों में, जब Android Studio 3.0 में बनाया गया प्रोजेक्ट खोला गया था यह पहली बार Android Studio 3.1 में, Gradle-अवेयर बनाएं टास्क को रन/डीबग में लॉन्च से पहले क्षेत्र से हटाया गया था कॉन्फ़िगरेशन. इसका नतीजा यह था कि प्रोजेक्ट तब नहीं बनाए गए, जब Run या Debug बटन पर क्लिक किया गया, जिसकी वजह से गड़बड़ियां, जैसे कि गलत APK का डिप्लॉयमेंट और इस्तेमाल करते समय क्रैश हो जाना इंस्टैंट रन.

      इस समस्या को हल करने के लिए, Android Studio 3.1.1 उन प्रोजेक्ट के लिए, Gradle-aware Make टास्क को रन कॉन्फ़िगरेशन में जोड़ता है जिनमें यह एंट्री मौजूद नहीं है. यह बदलाव, Gradle के पहले सिंक के बाद तब होता है, जब प्रोजेक्ट लोड होता है.

    • बेहतर होने पर, टेक्स्ट बॉक्स वाले लेआउट को डीबग करते समय डीबगर क्रैश हो गया प्रोफ़ाइलिंग चालू की गई.
    • वैरिएंट बनाएं पर क्लिक करने के बाद, Android Studio फ़्रीज़ हो गया.
    • एएआर (Android आर्काइव) फ़ाइलें, ग्रेडल के दौरान दो बार निकाली गई थीं का एक बार इस्तेमाल किया जा सकता है.
    • एसवीजी फ़ाइलों से इंपोर्ट किए गए कुछ वेक्टर ड्रॉबल में एलिमेंट मौजूद नहीं थे.
    • compile के बंद होने से जुड़ी चेतावनी डिपेंडेंसी कॉन्फ़िगरेशन को अपडेट कर दिया गया है. साथ ही, इसे implementation और api कॉन्फ़िगरेशन. compile कॉन्फ़िगरेशन का इस्तेमाल बंद करने के बारे में जानकारी पाने के लिए, नए डिपेंडेंसी कॉन्फ़िगरेशन के दस्तावेज़ देखें.

    कोडिंग/आईडीई

    IntelliJ 2017.3.3

    Android Studio के मुख्य आईडीई को IntelliJ ने बेहतर बनाया है IDEA को 2017.3.3 में रिलीज़ किया गया. सुधारों में बेहतर कंट्रोल फ़्लो शामिल है कलेक्शन और स्ट्रिंग के लिए विश्लेषण, शून्य होने की संभावना का बेहतर अनुमान, नया क्विक सुधार, और बहुत कुछ.

    ज़्यादा जानकारी के लिए, IntelliJ IDEA वर्शन के लिए JetBrains के प्रॉडक्ट की जानकारी देखें 2017.2 और 2017.3, साथ ही, JetBrains में गड़बड़ियों को ठीक करने के लिए अपडेट.

    इसके साथ एसक्यूएल में बदलाव करने में सुधार कमरा

    जब आप रूम डेटाबेस लाइब्रेरी, आप SQL संपादन के कई सुधारों का लाभ उठा सकते हैं:

    • इस अवधि में कोड पूरा करने के बाद, Query एसक्यूएल टेबल (इकाइयों), कॉलम, क्वेरी पैरामीटर, उपनामों को समझता है. जॉइन, सबक्वेरी, और WITH क्लॉज़ में इस्तेमाल किया जाता है.
    • एसक्यूएल सिंटैक्स को हाइलाइट करने की सुविधा अब काम करती है.
    • एसक्यूएल में, किसी टेबल के नाम पर राइट क्लिक करके उसका नाम बदला जा सकता है. ऐसा करने से, संबंधित Java या Kotlin कोड को फिर से लिखता है (उदाहरण के लिए, (क्वेरी का रिटर्न टाइप). नाम बदला जा रहा है, भी, इसलिए Java क्लास या फ़ील्ड का नाम बदलने से संबंधित SQL को फिर से लिखा जाता है कोड.
    • इस्तेमाल के उदाहरण ढूंढें का इस्तेमाल करने पर, SQL के इस्तेमाल के उदाहरण दिखते हैं. इसके लिए, दाईं ओर क्लिक करें और संदर्भ मेन्यू से इस्तेमाल के उदाहरण ढूंढें को चुनें.
    • Java या Kotlin कोड में, SQL इकाई के एलान पर जाने के लिए, इकाई पर क्लिक करते समय, Control (Mac पर Command) को दबाकर रखा जा सकता है.

    Room के साथ SQL का इस्तेमाल करने के बारे में जानने के लिए, Room का इस्तेमाल करके, डेटा को किसी स्थानीय डेटाबेस में सेव करना लेख पढ़ें.

    डेटा बाइंडिंग के बारे में अपडेट

    इस अपडेट में कई सुधार शामिल हैं डेटा बाइंडिंग:

    • अब डेटा बाइंडिंग एक्सप्रेशन में, LiveData ऑब्जेक्ट को ऑब्ज़र्व किए जा सकने वाले फ़ील्ड के तौर पर इस्तेमाल किया जा सकता है. ViewDataBinding क्लास में अब एक नया setLifecycle() तरीका शामिल है. इसका इस्तेमाल, LiveData ऑब्जेक्ट को ऑब्ज़र्व करने के लिए किया जाता है.

    • अब ObservableField क्लास के कंस्ट्रक्टर में, Observable ऑब्जेक्ट के साथ-साथ अन्य ऑब्जेक्ट भी इस्तेमाल किए जा सकते हैं.

    • अपनी डेटा बाइंडिंग के लिए नए इंक्रीमेंटल कंपाइलर की झलक देखी जा सकती है क्लास. इस नए कंपाइलर की जानकारी और इसे चालू करने के निर्देश यह, देखें डेटा बाइंडिंग कंपाइलर V2.

      नए कंपाइलर के फ़ायदों में ये शामिल हैं:

      • ViewBinding क्लास, Java कंपाइलर से पहले, Gradle के लिए Android प्लग इन से जनरेट होती हैं.
      • लाइब्रेरी, जनरेट की गई बाइंडिंग क्लास को तब ही रखती हैं, जब ऐप्लिकेशन हर बार जनरेट करने के बजाय, कंपाइल किया जाता है. यह काम कर सकता है इसकी मदद से, मल्टी-मॉड्यूल प्रोजेक्ट की परफ़ॉर्मेंस को बेहतर बनाया जा सकता है.

    कंपाइलर और ग्रेडल

    डिफ़ॉल्ट DEX, D8 है कंपाइलर

    अब D8 कंपाइलर का इस्तेमाल DEX बाइटकोड जनरेट करने के लिए, डिफ़ॉल्ट रूप से किया जाता है.

    इस नए DEX कंपाइलर के साथ आपको कई फ़ायदे मिलते हैं. जैसे, फ़ॉलो किया जा रहा है:

    • तेज़ी से डेक्सिंग
    • कम मेमोरी का इस्तेमाल
    • कोड जनरेट करने की बेहतर सुविधा (बेहतर तरीके से रजिस्टर करने का ऐक्सेस, ज़्यादा स्मार्ट स्ट्रिंग टेबल)
    • कोड का इस्तेमाल करते समय, डीबग करने का बेहतर अनुभव

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

    अगर आपने अपने gradle.properties में android.enableD8 को false पर सेट किया है, तो उस फ़्लैग को मिटाएं या उसे true पर सेट करें:

            android.enableD8=true
          

    ज़्यादा जानकारी के लिए, नया DEX कंपाइलर देखें.

    इंक्रीमेंटल डीसुगरिंग

    Java 8 भाषा की सुविधाओं का इस्तेमाल करने वाले प्रोजेक्ट के लिए, डिसुगर करने की प्रोसेस को डिफ़ॉल्ट रूप से चालू किया जाता है. इससे प्रोजेक्ट को बनाने में लगने वाला समय कम हो सकता है.

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

    आप आपके प्रोजेक्ट की gradle.properties फ़ाइल:

            android.enableIncrementalDesugaring=false
          
    आसानी से समझ आने वाली आउटपुट विंडो

    Gradle Console को बिल्ड विंडो से बदल दिया गया है. इसमें सिंक करें और बिल्ड करें टैब होते हैं.

    नई और आसान बिल्ड विंडो का इस्तेमाल करने के तरीके के बारे में जानने के लिए, बिल्ड की निगरानी करें प्रोसेस.

    एक साथ कई अपडेट और इंडेक्स करने की सुविधा

    Gradle सिंक और IDE इंडेक्स करने की प्रोसेस अब ज़्यादा असरदार हो गई है. इससे, इंडेक्स करने के कई ग़ैर-ज़रूरी कामों में बर्बाद होने वाले समय की बचत होती है.

    C++ और LLDB

    हमने C++ डेवलपमेंट के कोडिंग, सिंक करने, बिल्ड करने, और डीबग करने के चरणों में, क्वालिटी और परफ़ॉर्मेंस से जुड़े कई सुधार किए हैं. इस विकल्प में, फ़ॉलो किया जा रहा है:

    • बड़े C++ प्रोजेक्ट पर काम करने पर, आपको इससे सिंबल बनाने में लगने वाले समय को कम किया जा सकता है. बड़े प्रोजेक्ट के लिए, सिंक करने में लगने वाला समय भी काफ़ी कम हो जाता है.

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

    • C++ डेटा स्ट्रक्चर के लिए फ़ॉर्मैटर ("सुंदर प्रिंटर") जोड़ना इससे LLDB आउटपुट को आसानी से पढ़ने में मदद मिलती है.

    • LLDB अब सिर्फ़ Android 4.1 (एपीआई लेवल 16) के साथ काम करता है और भी कई नतीजों पर मिलेंगे.

    ध्यान दें: Android Studio 3.0 या ग्रेटर 32-बिट Windows पर काम नहीं करता. अगर 32-बिट Windows का इस्तेमाल किया जा रहा है और आपको नेटिव कोड को डीबग करना है, तो Android Studio 2.3 का इस्तेमाल करें.

    Kotlin

    Kotlin को 1.2.30 वर्शन पर अपग्रेड किया गया

    Android Studio 3.1 में ये शामिल हैं कोटलिन वर्शन 1.2.30 है.

    Kotlin कोड का अब इसके साथ विश्लेषण किया जाता है कमांड-लाइन लिंट चेक

    कमांड लाइन अब आपकी Kotlin क्लास का विश्लेषण करती है.

    हर उस प्रोजेक्ट के लिए जिस पर आपको लिंट चलाना है, Google की Maven डेटा स्टोर करने की जगह को टॉप-लेवल build.gradle में शामिल किया जाना चाहिए फ़ाइल से लिए जाते हैं. Maven का डेटा स्टोर करने की जगह, Android Studio 3.0 और उसके बाद के वर्शन में बनाए गए प्रोजेक्ट के लिए पहले से ही शामिल होती है.

    परफ़ॉर्मेंस टूल

    सीपीयू प्रोफ़ाइलर की मदद से, नेटिव C++ प्रोसेस का सैंपल

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

    सैंपलिंग इंटरवल जैसी डिफ़ॉल्ट सेटिंग बदली जा सकती हैं. किसी को रिकॉर्डिंग कॉन्फ़िगरेशन.

    Java थ्रेड को ट्रैक करने के लिए, सैंपल किया गया (Java) या इंस्ट्रूमेंट किया गया (Java) कॉन्फ़िगरेशन चुनें.

    सीपीयू ट्रेस, मेमोरी के लिए तय किए गए ऐलोकेशन के नतीजे, और हेप डंप को फ़िल्टर करना

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

    खोजने के लिए, फ़िल्टर करें पर क्लिक करें पेन के शीर्ष दाएं कोने में, टाइप करें अपनी क्वेरी दर्ज करें और Enter दबाएं.

    अहम जानकारी: Control + F दबाकर भी खोज फ़ील्ड को खोला जा सकता है (Mac पर Command + F).

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

    तरीके, क्लास या पैकेज के नाम के हिसाब से फ़िल्टर करने के बारे में ज़्यादा जानकारी के लिए, देखें मेथड ट्रेस को रिकॉर्ड करें और उसकी जांच करें.

    नेटवर्क प्रोफ़ाइलर में मौजूद 'अनुरोध' टैब

    नेटवर्क प्रोफ़ाइलर अब इसमें अनुरोध टैब शामिल होगा, जो नेटवर्क के बारे में जानकारी देता है अनुरोध हैं. पिछले वर्शन में, नेटवर्क प्रोफ़ाइलर ने सिर्फ़ नेटवर्क से मिले जवाबों के बारे में जानकारी दी है.

    नेटवर्क प्रोफ़ाइलर में थ्रेड व्यू

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

    • कनेक्शन व्यू: यह Android Studio के पिछले वर्शन जैसी ही जानकारी देता है. इसमें, आपके ऐप्लिकेशन के सभी सीपीयू थ्रेड में, टाइमलाइन के चुने गए हिस्से के दौरान भेजी गई या पाने वाली फ़ाइलों की सूची होती है. हर अनुरोध के लिए, साइज़, टाइप, स्टेटस, और ट्रांसमिशन की अवधि की जांच की जा सकती है.
    • थ्रेड व्यू: आपके ऐप्लिकेशन के हर एक सीपीयू थ्रेड की नेटवर्क गतिविधि दिखाता है. इस व्यू से आपको यह जांचने की सुविधा मिलती है कि आपके ऐप्लिकेशन के कौनसे थ्रेड ज़िम्मेदार हैं का इस्तेमाल किया जा सकता है.

    लेआउट इंस्पेक्टर

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

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

    लेआउट एडिटर

    लेआउट एडिटर में मौजूद पैलेट में कई सुधार किए गए हैं:

    • व्यू और लेआउट के लिए कैटगरी को फिर से व्यवस्थित करना.
    • व्यू और लेआउट की नई सामान्य कैटगरी, जिसे को Favorite कमांड से जोड़ा जा सकता है.
    • बेहतर व्यू खोजें और लेआउट शामिल हैं.
    • किसी खास व्यू या लेआउट एलिमेंट के लिए, दस्तावेज़ खोलने के लिए नए निर्देश.

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

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

    दौड़ें और झटपट दौड़ें

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

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

    एम्युलेटर

    Android के बाद के वर्शन में, एम्युलेटर में नया क्या है और क्या बदलाव हुए हैं, इसकी जानकारी के लिए Studio 3.0, Android Emulator रिलीज़ नोट वर्शन 27.0.2 वर्शन 27.1.12 से.

    मुख्य सुधारों में ये शामिल हैं:

    • एम्युलेटर की स्थिति को सेव करने और तेज़ी से स्टार्ट करने के लिए, क्विक बूट स्नैपशॉट, अभी सेव करें कमांड का इस्तेमाल करके, पसंद के मुताबिक स्टार्ट होने की स्थिति.
    • विंडो के बिना एम्युलेटर स्क्रीन.
    • Android 8.0 (एपीआई लेवल 26), Android 8.1 (एपीआई लेवल) के लिए सिस्टम इमेज 27), और Android P डेवलपर प्रीव्यू के लिए उपलब्ध हैं.

    यूज़र इंटरफ़ेस और उपयोगकर्ता अनुभव सुधार

    अन्य टूलटिप, कीबोर्ड शॉर्टकट, और ज़रूरी मैसेज मिलते हैं.

    हमने कई जगहों पर टूलटिप और उपयोगी मैसेज ओवरले जोड़े हैं पूरे Android Studio में.

    कई निर्देशों के कीबोर्ड शॉर्टकट देखने के लिए, बस माउस को दबाकर रखें बटन पर तब तक पॉइंटर रखें, जब तक कि टूलटिप न दिखे.

    टूल > Android मेन्यू हटाया गया

    टूल > Android मेन्यू हटा दिया गया है. निर्देश जो पहले इस मेन्यू में शामिल थे उन्हें दूसरी जगह ले जाया गया है.

    • कई निर्देश सीधे टूल के नीचे ले जाए गए हैं मेन्यू.
    • gradle फ़ाइलों के साथ सिंक प्रोजेक्ट कमांड को फ़ाइल मेन्यू पर क्लिक करें.
    • Device Monitor निर्देश को हटा दिया गया है, क्योंकि जिनकी जानकारी नीचे दी गई है.

    डिवाइस मॉनिटर उपलब्ध है कमांड लाइन से

    Android Studio 3.1 में, डिवाइस मॉनिटर की भूमिका पहले के मुकाबले कम हो गई है. कई मामलों में, Device Monitor को अब नए और बेहतर टूल ने उपलब्ध कराया है.

    कमांड लाइन से डिवाइस मॉनिटर को चालू करने के निर्देशों और डिवाइस मॉनिटर के ज़रिए उपलब्ध टूल के बारे में जानकारी पाने के लिए, डिवाइस मॉनिटर का दस्तावेज़ देखें.

    3.0 (अक्टूबर 2017)

    Android Studio 3.0.0 एक बड़ी रिलीज़ है, जिसमें सुविधाओं और सुधारों के बारे में है.

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

    3.0.1 (नवंबर 2017)

    यह Android Studio 3.0 का एक छोटा अपडेट है. इसमें सामान्य गड़बड़ियां ठीक की गई हैं और परफ़ॉर्मेंस को बेहतर बनाया गया है.

    Gradle 3.0.0 के लिए Android प्लग इन

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

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

    नोट: इन सुधारों के लिए बड़े बदलावों की ज़रूरत थी, जो इनमें से कुछ को तोड़ने के लिए समझे गए के व्यवहार, DSL, और API. वर्शन 3.0.0 में अपग्रेड करने की ज़रूरत पड़ सकती है आपकी बिल्ड फ़ाइलों और Gradle प्लगिन में हुए बदलाव.

    इस वर्शन में ये चीज़ें भी शामिल हैं:

    • Android 8.0 के लिए सहायता.
    • भाषा के संसाधनों के आधार पर, अलग-अलग APK बनाने की सुविधा.
    • Java 8 लाइब्रेरी और Java 8 लैंग्वेज फ़ीचर (जैक कंपाइलर के बिना) के साथ काम करता है.
    • Android Test Support Library 1.0 के लिए सहायता (Android Test उपयोगिता और Android Test Orchestrator).
    • एनडीके-बिल्ड और cमेक बिल्ड की स्पीड बढ़ाई गई.
    • Gradle सिंक करने की स्पीड में सुधार किया गया.
    • AAPT2 अब डिफ़ॉल्ट रूप से चालू है.
    • ndkCompile का इस्तेमाल करने पर अब ज़्यादा पाबंदी लगा दी गई है. इसके बजाय, आपको CMake या ndk-build का इस्तेमाल करके, उस नेटिव कोड को कॉम्पाइल करने के लिए माइग्रेट करना चाहिए जिसे आपको अपने APK में पैकेज करना है. ज़्यादा जानने के लिए, ndkcompile से माइग्रेट करना लेख पढ़ें.

    क्या बदलाव हुए हैं, इस बारे में ज़्यादा जानकारी के लिए, Gradle के लिए Android प्लग-इन के रिलीज़ नोट देखें.

    अगर आप नए प्लग इन पर अपग्रेड करने के लिए तैयार हैं, तो Gradle के लिए Android प्लग इन 3.0.0 पर माइग्रेट करना लेख पढ़ें.

    Kotlin सहायता

    Google I/O 2017 में किए गए एलान के मुताबिक, Kotlin प्रोग्रामिंग लैंग्वेज अब आधिकारिक तौर पर Android पर काम करती है. इसलिए, इस रिलीज़ के साथ Android Studio में, Android डेवलपमेंट के लिए Kotlin लैंग्वेज का इस्तेमाल करने की सुविधा शामिल है.

    Kotlin को अपने प्रोजेक्ट में शामिल करने के लिए, किसी Java फ़ाइल को Kotlin में बदलें (कोड > Java फ़ाइल को Kotlin फ़ाइल में बदलें पर क्लिक करें) या नया प्रोजेक्ट विज़र्ड का इस्तेमाल करके, Kotlin की सुविधा वाला नया प्रोजेक्ट बनाएं.

    शुरू करने के लिए, अपने प्रोजेक्ट में Kotlin जोड़ने का तरीका पढ़ें.

    Java 8 भाषा सुविधाएँ

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

    अपने प्रोजेक्ट को Java 8 लैंग्वेज टूलचैन का इस्तेमाल करने के लिए अपडेट करने के लिए, सोर्स के साथ काम करने की सुविधा और टारगेट के साथ काम करने की सुविधा को 1.8 पर अपडेट करें. इसके लिए, प्रोजेक्ट स्ट्रक्चर डायलॉग बॉक्स में जाएं (फ़ाइल > प्रोजेक्ट स्ट्रक्चर पर क्लिक करें). ज़्यादा जानने के लिए, Java 8 भाषा सुविधाओं का इस्तेमाल करना चाहिए.

    Android प्रोफ़ाइलर

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

    इसे खोलने के लिए, व्यू > टूल विंडो > Android प्रोफ़ाइलर पर क्लिक करें (या टूलबार में Android प्रोफ़ाइलर पर क्लिक करें).

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

    ध्यान दें: Logcat व्यू को भी अलग विंडो में खोलें (पहले यह Android Monitor के अंदर था, जिसे हटा दिया गया है).

    Android प्रोफ़ाइलर की खास जानकारी वाली टाइमलाइन में, सीपीयू, मेमोरी या नेटवर्क टाइमलाइन पर क्लिक करके, उनसे जुड़े प्रोफ़ाइलर टूल ऐक्सेस करें.

    सीपीयू प्रोफ़ाइलर

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

    ज़्यादा जानकारी के लिए, सीपीयू प्रोफ़ाइलर से जुड़ी गाइड देखें.

    मेमोरी प्रोफ़ाइलर

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

    ज़्यादा जानकारी के लिए, मेमोरी प्रोफ़ाइलर की गाइड देखें.

    नेटवर्क प्रोफ़ाइलर

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

    ज़्यादा जानकारी के लिए, नेटवर्क प्रोफ़ाइलर से जुड़ी गाइड देखें.

    APK प्रोफ़ाइलिंग और डीबग करना

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

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

    ज़्यादा जानकारी के लिए, यह देखें प्रोफ़ाइल और पहले से बने APK को डीबग करना.

    डिवाइस फ़ाइल एक्सप्लोरर

    नए Device File Explorer का इस्तेमाल करके, फ़ाइल सिस्टम है, और फ़ाइलों को डिवाइस और कंप्यूटर के बीच ट्रांसफ़र कर सकता है. यह DDMS में उपलब्ध फ़ाइलसिस्टम टूल को बदल देता है.

    खोलने के लिए, व्यू > पर क्लिक करें टूल की विंडो > Device File Explorer.

    ज़्यादा जानकारी के लिए, देखें डिवाइस फ़ाइल एक्सप्लोरर गाइड.

    इंस्टैंट ऐप्लिकेशन की सहायता

    Android Instant Apps के लिए नई सहायता, आपको अपने दो नए तरह के मॉड्यूल का इस्तेमाल करने वाला प्रोजेक्ट: इंस्टैंट ऐप्लिकेशन मॉड्यूल और फ़ीचर मॉड्यूल (इनके लिए ज़रूरी है कि आप इंस्टैंट ऐप्लिकेशन डेवलपमेंट SDK टूल इंस्टॉल करें).

    Android Studio में मॉड्युलराइज़्ड रीफ़ैक्टरिंग की नई कार्रवाई भी शामिल की गई है, ताकि किसी मौजूदा प्रोजेक्ट में झटपट ऐप्लिकेशन के लिए सहायता जोड़ें. उदाहरण के लिए, अगर आपको इंस्टैंट ऐप्लिकेशन की सुविधा वाले मॉड्यूल में कुछ क्लास को शामिल करने के लिए, अपने प्रोजेक्ट में बदलाव करें, प्रोजेक्ट विंडो में क्लास चुनें और Refactor > पर क्लिक करें मॉड्यूलराइज़ करना. इसके बाद, आपको एक डायलॉग दिखेगा. इसमें वह मॉड्यूल चुनें जहां कक्षाओं को ले जाना है और ठीक है पर क्लिक करें.

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

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

    Android Things के मॉड्यूल

    नए प्रोजेक्ट और नए मॉड्यूल के विज़र्ड में Android Things के नए टेंप्लेट, ताकि आप Android पर काम करने वाले IOT डिवाइसों के लिए डेवलपमेंट शुरू कर सकें.

    ज़्यादा जानकारी के लिए, Android Things प्रोजेक्ट बनाने का तरीका देखें.

    अडैप्टिव आइकॉन विज़र्ड

    Image Asset Studio अब वेक्टर ड्रॉएबल और आपको अपने ब्राउज़र के लिए अडैप्टिव लॉन्चर आइकॉन बनाने की अनुमति देता है Android 8.0 के साथ-साथ परंपरागत आइकॉन ("लेगसी" आइकॉन) बनाते समय पुराने डिवाइसों के लिए.

    शुरू करने के लिए, अपने डिवाइस में मौजूद res फ़ोल्डर पर राइट क्लिक करें प्रोजेक्ट पर जाएं और फिर नया > इमेज एसेट. Asset Studio विंडो में, आइकॉन के टाइप के तौर पर, लॉन्चर आइकॉन (अडैप्टिव और लेगसी) को चुनें.

    ध्यान दें: अडैप्टिव लॉन्चर का इस्तेमाल करने के लिए, आपको compileSdkVersion को 26 या उसके बाद के लेवल पर सेट करना होगा आइकॉन.

    ज़्यादा जानकारी के लिए, अडैप्टिव आइकॉन.

    फ़ॉन्ट संसाधनों के लिए सहायता

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

    डाउनलोड किए जा सकने वाले फ़ॉन्ट आज़माने के लिए, पक्का करें कि आपका डिवाइस या एम्युलेटर चल रहा हो Google Play services का v11.2.63 या इसके बाद वाला वर्शन होना चाहिए. ज़्यादा जानकारी के लिए, डाउनलोड किए जा सकने वाले फ़ॉन्ट.

    Firebase ऐप्लिकेशन सूची सहायक

    ऐप्लिकेशन की जांच करने के लिए, Firebase Assistant को नए ट्यूटोरियल के साथ अपडेट किया गया है इंडेक्स करना. Assistant खोलने के लिए, टूल > Firebase चुनें. इसके बाद, ऐप्लिकेशन सूची > ऐप्लिकेशन को इंडेक्स करने की प्रोसेस की जांच करना.

    इस ट्यूटोरियल में बटन पर क्लिक करें:

    • दूसरे चरण में, खोज के नतीजों की झलक देखें पर क्लिक करके पुष्टि करें कि आपके यूआरएल, Google Search के नतीजों में दिख रहे हैं या नहीं.
    • तीसरे चरण में, गड़बड़ियों की जांच करें पर क्लिक करके पुष्टि करें कि इंडेक्स किया जा सकता है या नहीं आपके ऐप्लिकेशन में मौजूद चीज़ों को निजी कॉन्टेंट इंडेक्स में जोड़ दिया गया है.

    ऐप्लिकेशन लिंक असिस्टेंट में ये नई सुविधाएं जोड़ी गई हैं:

    • यह पक्का करने के लिए कि आपके इंटेंट फ़िल्टर हों, हर यूआरएल मैपिंग के लिए यूआरएल टेस्ट जोड़ें वास्तविक दुनिया के URL हैंडल करने के लिए करते हैं.

      <tools:validation> का इस्तेमाल करके, यूआरएल की इन जांचों को मैन्युअल तरीके से भी तय किया जा सकता है टैग नीचे बताए गए हैं.

    • Google Smart Lock के साथ काम करने के लिए, सही ऑब्जेक्ट एंट्री के साथ डिजिटल एसेट लिंक फ़ाइल बनाएं. साथ ही, अपनी मेनिफ़ेस्ट फ़ाइल में उससे जुड़ा asset_statements <meta-data> टैग जोड़ें.

    यूआरएल के इंटेंट-फ़िल्टर की पुष्टि करने वाला प्रोग्राम

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

    किसी इंटेंट फ़िल्टर के लिए जांच के तौर पर यूआरएल तय करने के लिए, उससे जुड़े <intent-filter> एलिमेंट के साथ <tools:validation> एलिमेंट जोड़ें. उदाहरण के लिए:

          <activity ...>
              <intent-filter>
                  ...
              </intent-filter>
              <tools:validation testUrl="https://www.example.com/recipe/1138" />
          </activity>
        
        

    <manifest> टैग में xmlns:tools="http://schemas.android.com/tools" को भी शामिल करना न भूलें.

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

    लेआउट एडिटर

    लेआउट एडिटर अपडेट कर दिया गया है जिसमें ये शामिल हैं:

    • टूलबार का नया लेआउट और आइकॉन.
    • कॉम्पोनेंट ट्री में लेआउट को अपडेट किया गया.
    • खींचकर छोड़ने की सुविधा से, व्यू को बेहतर तरीके से जोड़ा जा सकता है.
    • Editor के नीचे गड़बड़ी का नया पैनल, जिसमें सभी समस्याओं के साथ उन्हें ठीक करने के सुझाव दिखते हैं (अगर उपलब्ध हों).
    • ConstraintLayout के साथ बिल्डिंग के लिए कई यूज़र इंटरफ़ेस (यूआई) को बेहतर बनाया गया, जिनमें ये शामिल हैं निम्न:
      • अड़चनें बनाने के लिए नई सहायता.
      • ग्रुप बनाने के लिए नई सुविधा: टूलबार में, दिशा-निर्देश > ग्रुप जोड़ें (इसके लिए, ConstraintLayout 1.1.0 beta 2 ज़रूरी है या उससे ज़्यादा)
      • चेन बनाने के लिए नया यूज़र इंटरफ़ेस (यूआई): एक से ज़्यादा व्यू चुनें और फिर राइट क्लिक करें और चेन चुनें.

    लेआउट इंस्पेक्टर

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

    APK ऐनालाइज़र

    अब कमांड लाइन से apkanalyzer टूल का इस्तेमाल करके, APK विश्लेषक का इस्तेमाल किया जा सकता है.

    APK ऐनालाइज़र को भी इन सुधारों के साथ अपडेट किया गया है:

    • ProGuard की मदद से बनाए गए APKs के लिए, ProGuard मैपिंग फ़ाइलें लोड की जा सकती हैं. इनसे DEX व्यूअर में ये सुविधाएं जोड़ी जा सकती हैं:
      • नोड को यह बताने के लिए बोल्ड किया गया है कि नोड को तब हटाया नहीं जाना चाहिए, जब छोटा करने वाला कोड.
      • सिकुड़ने की प्रक्रिया के दौरान हटाए गए नोड दिखाने वाला बटन.
      • ऐसा बटन जो ट्री व्यू में नोड के मूल नामों को वापस लाता है ProGuard की ओर से उलझा हुआ था.
    • DEX Viewer अब हर पैकेज, क्लास और तरीका.
    • फ़ील्ड और तरीकों को दिखाने और छिपाने के लिए, सबसे ऊपर फ़िल्टर करने के नए विकल्प.
    • ट्री व्यू में, वे नोड दिखते हैं जो DEX फ़ाइल में रेफ़रंस के तौर पर तय नहीं किए गए हैं इटैलिक फ़ॉर्मैट इस्तेमाल करें.

    ज़्यादा जानकारी के लिए, APK ऐनालाइज़र की मदद से अपने बिल्ड का विश्लेषण करना लेख पढ़ें.

    D8 DEX कंपाइलर की झलक

    Android Studio 3.0 में, D8 नाम का एक नया DEX कंपाइलर शामिल किया गया है. हालांकि, यह ज़रूरी नहीं है. यह काम करेगा आखिरकार, DX कंपाइलर को बदल दिया जाता है, लेकिन नए D8 का इस्तेमाल करने के लिए ऑप्ट-इन किया जा सकता है अभी कंपाइल करें.

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

    इसे आज़माने के लिए, अपने प्रोजेक्ट की gradle.properties फ़ाइल में इन्हें सेट करें:

    android.enableD8=true
        

    ज़्यादा जानकारी के लिए, D8 कंपाइलर के बारे में ब्लॉग पोस्ट देखें.

    Google की Maven रिपॉज़िटरी

    Android Studio अब डिफ़ॉल्ट रूप से Google की Maven रिपॉज़िटरी का इस्तेमाल करता है. इससे, Android SDK मैनेजर पर निर्भर रहने के बजाय, Android Support Library, Google Play services, Firebase, और अन्य डिपेंडेंसी के लिए अपडेट पाने में मदद मिलती है. इससे, अपनी लाइब्रेरी को अप-टू-डेट रखना आसान हो जाता है. खास तौर पर, लगातार इंटिग्रेशन (सीआई) सिस्टम का इस्तेमाल करते समय.

    सभी नए प्रोजेक्ट में अब डिफ़ॉल्ट रूप से Google Maven रिपॉज़िटरी शामिल होती है. अपने मौजूदा प्रोजेक्ट को अपडेट करने के लिए, सबसे ऊपर मौजूद build.gradle फ़ाइल के repositories ब्लॉक में google() जोड़ें:

          allprojects {
              repositories {
                  google()
              }
          }
        
        

    Google की Maven रिपॉज़िटरी के बारे में यहां ज़्यादा जानें.

    अन्य बदलाव

    • Android Studio की मदद से, नेटिव डीबग करने की सुविधा अब Windows के 32-बिट वर्शन के साथ काम नहीं करती है. हमने अन्य प्लैटफ़ॉर्म पर फ़ोकस करने का फ़ैसला लिया है, क्योंकि बहुत कम डेवलपर इस प्लैटफ़ॉर्म का इस्तेमाल कर रहे हैं. अगर 32-बिट Windows का इस्तेमाल किया जा रहा है और आपको नेटिव कोड को डीबग करना है, तो आपको Android Studio 2.3 का इस्तेमाल करना चाहिए.
    • बेस IDE को इस पर अपग्रेड किया गया InteliJ 2017.1.2, इसमें कई नई सुविधाएं जोड़ी गई हैं, 2016.3 और 1.2017, जैसे कि Java 8 लैंग्वेज रीफ़ैक्टरिंग, पैरामीटर संकेत, सिमैंटिक हाइलाइटिंग, खींचने लायक ब्रेकपॉइंट, खोज में झटपट नतीजे वगैरह.
    • कई नई लिंट जांच जोड़ी गई हैं.
    • साथ ही, Android Emulator के नए अपडेट भी देखें.

    2.3 (मार्च 2017)

    Android Studio 2.3.0 में मुख्य रूप से गड़बड़ियों को ठीक किया गया है और इसे ज़्यादा बेहतर बनाया गया है. हालांकि, इसमें कई नई सुविधाएं भी शामिल हैं.

    2.3.3 (जून 2017)

    यह एक छोटा अपडेट है. इसे Android O (एपीआई लेवल 26) के साथ काम करने की सुविधा देने के लिए डिज़ाइन किया गया है.

    2.3.2 (अप्रैल 2017)

    Android Studio 2.3 में, ये छोटे बदलाव किए गए हैं:

    • AVD Manager को अपडेट किया गया है, ताकि सिस्टम इमेज में Google Play काम कर सके.
    • एनडीके के R14+ का इस्तेमाल करने पर, एनडीके बिल्ड की गड़बड़ियां ठीक की गईं.

    साथ ही, Android Emulator 26.0.3 से जुड़े अपडेट देखें.

    2.3.1 (अप्रैल 2017)

    यह Android Studio 2.3 का एक छोटा अपडेट है. इससे, इंस्टैंट रन की सुविधा के साथ कुछ Android डिवाइसों के ठीक से काम न करने की समस्या ठीक हो गई है. समस्या #235879 देखें.

    <h3 class="hide-from-toc">
      New
    </h3>
    
    <div class="video-wrapper-left">
      <iframe class="devsite-embedded-youtube-video" data-video-id="VFyKclKBGf0"
              data-autohide="1" data-showinfo="0" frameborder="0" allowfullscreen>
      </iframe>
    </div>
    
    <ul>
      <li>Android Studio can now convert PNG, BMP, JPG, and static GIF files to
      WebP format. WebP is an image file format from Google that provides lossy
      compression (like JPEG) as well as transparency (like PNG) but can provide
      better compression than either JPEG or PNG. For more information, see
        <a href="/studio/write/convert-webp.html">Convert images to WebP in Android
        Studio</a>.
      </li>
    
      <li>The new <a href="/studio/write/app-link-indexing.html">App Links
      Assistant</a> simplifies the process of adding Android App Links to your app
      into a step-by-step wizard. Android App Links are HTTP URLs that bring users
      directly to specific content in your Android app.
      </li>
    
      <li>The Layout Editor now includes support for two new ConstraintLayout
      features:
        <ul>
          <li>Define a view size based on an aspect ratio.
          </li>
          <li>Create packed, spread, and weighted linear groups with constraint
          chains.
          </li>
        </ul>
        For more information, see <a href=
        "/training/constraint-layout/index.html">Build a Responsive UI with
        ConstraintLayout</a>.
      </li>
    
      <li>The Layout Editor also now lets you create a list of <a href=
      "/studio/write/layout-editor.html#edit-properties">favorite attributes</a> so
      you don't have to click <b>View all attributes</b> to access the attributes
      you use most.
      </li>
    
      <li>When adding a material icon using the Vector Import Dialog (<b>File &gt;
      New &gt; Vector Asset</b>), you can now filter the list of available icons by
      category or by icon name. For more information, see <a href=
      "/studio/write/vector-asset-studio.html#materialicon">Adding a material
      icon</a>.
      </li>
    
      <li>
        <a href="/studio/write/annotations.html#accessibility">New and updated
        annotations</a>. The new <code>@RestrictTo</code> annotation for methods,
        classes, and packages lets you restrict an API. The updated
        <code>@VisibleForTesting</code> annotation now has an optional
        <code>otherwise</code> argument that lets you designate what the visibility
        of a method should be if not for the need to make it visible for testing.
        Lint uses the <code>otherwise</code> option to enforce the intended
        visibility of the method.
      </li>
    
      <li>New <a href="/studio/write/lint.html#snapshot">lint baseline support</a>
      allows you to use a snapshot of your project's current set of warnings as a
      baseline for future inspection runs so only new issues are reported. The
      baseline snapshot lets you start using lint to fail the build for new issues
      without having to go back and address all existing issues first.
      </li>
    
      <li>New lint checks, including the following:
        <ul>
          <li>Obsolete <code>SDK_INT</code> Checks: Android Studio removes obsolete
          code that checks for SDK versions.
          </li>
          <li>Object Animator Validation: Lint analyzes your code to make sure that
          your <code>ObjectAnimator</code> calls reference valid methods with the
          right signatures and checks that those methods are annotated with <code>
            @Keep</code> to prevent ProGuard from renaming or removing them during
            release builds.
          </li>
          <li>Unnecessary Item Decorator Copy: Older versions of the
          <code>RecyclerView</code> library did not include a divider decorator
          class, but one was provided as a sample in the support demos. Recent
          versions of the library have a divider decorator class. Lint looks for
          the old sample and suggests replacing it with the new one.
          </li>
          <li>WifiManager Leak: Prior to Android 7.0 (API level 24), initializing
          the <code>WifiManager</code> with <code><a href="/reference/android/content/Context.html#getSystemService(java.lang.Class&lt;T&gt;)">Context.getSystemService()</a></code>
          can cause a memory leak if the context is not the application context.
          Lint looks for these initializations, and if it <em>cannot</em> determine
          that the context is the application context, it suggests you use <code><a href="/reference/android/content/Context.html#getApplicationContext()">Context.getApplicationContext()</a></code> to get the proper context for the
          initialization.
          </li>
          <li>Improved Resource Prefix: The existing <code>resourcePrefix</code>
          lint check had many limitations. You can now configure your project with
          a prefix, such as <code>android { resourcePrefix '<var>my_lib</var>'
          }</code>, and lint makes sure that all of your resources are using this
          prefix. You can use variations of the name for styles and themes. For
          example for the <var>my_lib</var> prefix, you can have themes named
          <code>MyLibTheme</code>, <code>myLibAttr</code>,
          <code>my_lib_layout</code>, and so on.
          </li>
          <li>Switch to WebP: This check identifies images in your project that can
          be converted to WebP format based on your projects
          <code>minSdkVersion</code> setting. An associated quickfix can
          automatically convert the images, or you can <a href=
          "/studio/write/convert-webp.html">convert images to WebP</a> manually.
          </li>
          <li>Unsafe WebP: If your project already includes WebP images, this check
          analyzes your project to ensure that your <code>minSdkVersion</code>
          setting is high enough to support the included images. For more
          information about WebP support in Android and Android Studio, see
          <a class="external" href=
          "https://developers.google.com/speed/webp/faq#which_web_browsers_natively_support_webp">
            Which browsers natively support WebP?</a> and <a href=
            "/studio/write/convert-webp.html">Create WebP Images Using Android
            Studio</a>.
          </li>
        </ul>
      </li>
    </ul>
    
    <h3 class="hide-from-toc">
      Changes
    </h3>
    
    <ul>
      <li>A separate button to push changes with Instant Run: After deploying your
      app, you now click <b>Apply Changes</b> <img src=
      "/studio/images/buttons/toolbar-apply-changes.svg" alt="" class=
      "inline-icon"> to quickly push incremental changes to your running app using
      Instant Run. The <b>Run</b> <img src="/studio/images/buttons/toolbar-run.png"
        alt="" class="inline-icon"> and <b>Debug</b> <img src=
        "/studio/images/buttons/toolbar-debug.png" alt="" class="inline-icon">
        buttons are always available to you when you want to reliably push your
        changes and force an app restart.
        <ul>
          <li>Instant Run is supported only when deploying your app to a target
          device running Android 5.0 (API level 21) or higher.
          </li>
          <li>Instant Run is no longer disabled for projects that <a href=
          "/studio/projects/add-native-code.html">link to external native
          projects</a> using CMake or ndk-build. However, you can only use Instant
          Run to push incremental changes to your Java code, not your native code.
          </li>
          <li>Cold swaps (which you can force for a running app by clicking
          <strong>Run</strong> <img src="/studio/images/buttons/toolbar-run.png"
          alt="" class="inline-icon">) are now more reliable. Forcing a cold swap
          also fixes the issue where changes to notification and widget UIs were
          not updated on the target device.
          </li>
          <li>Includes optimizations that make app startup much faster. These
          optimizations may affect profiling, so you should temporarily <a href=
          "/studio/run/index.html#disable-ir">disable Instant Run</a> whenever
          profiling your app.
          </li>
        </ul>
      </li>
    
      <li>
        <p>
          The <b>AVD Manager</b> <img src=
          "/studio/images/buttons/toolbar-avd-manager.png" alt="" class=
          "inline-icon"> and <b>SDK Manager</b> <img src=
          "/studio/images/buttons/toolbar-sdk-manager.png" alt="" class=
          "inline-icon"> buttons are now included in the lean Navigation Bar as
          well as the full Toolbar. To use the lean Navigation Bar, click
          <b>View</b> to open the View menu, then ensure that <b>Navigation Bar</b>
          is selected and <b>Toolbar</b> is <em>not</em> selected.
        </p>
        <img src="/studio/images/releases/navigationbar_sdkavd_2x.png" width="757">
      </li>
    
      <li>The "Hybrid" debugger has been renamed to "Dual" debugger.
      </li>
    
      <li>In the <a href="/studio/run/rundebugconfig.html">Run/Debug
      Configurations</a> dialog, under Defaults in the left pane, the following run
      configuration names have changed with no behavior changes:
        <ul>
          <li>The JUnit name has changed to Android JUnit. If you have a project
          that uses JUnit run configurations, those configurations are transformed
          to Android JUnit run configurations the first time you open the project
          with Android Studio. A dialog appears to inform you of the name change.
          </li>
          <li>The Android Tests name has changed to Android Instrumented Tests.
          </li>
        </ul>
      </li>
    
      <li>The <a href="/studio/debug/am-gpu-debugger.html">GPU Debugger</a> has
      been removed from Android Studio as of version 2.3. An open-source,
      standalone version of the tool is now available on <a href=
      "https://github.com/google/gapid" class="external-link">GitHub</a>.
      </li>
    
      <li>The Run/Debug option is no longer available when you right-click a <code>
        *.gradle build</code> script.
      </li>
    
      <li>All templates now use <code>ConstraintLayout</code> as the default
      layout.
      </li>
    
      <li>The Widgets palette in the Layout Editor has been redesigned.
      </li>
    </ul>
    
    <p>
      This release also includes a number of bug fixes. <a href=
      "https://code.google.com/p/android/issues/list?can=1&amp;q=target%3D2.3+status%3DReleased&amp;colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&amp;cells=tiles">
      See all bug fixes in 2.3.0.</a>
    </p>
    
    <p class="note">
      <b>Known issue:</b> Some device manufacturers block apps from automatically
      launching after being installed on the device. When deploying your app to a
      physical device using Android Studio 2.3, this restriction breaks the
      intended behavior of Instant Run and causes the following error output:
      <code>Error: Not found; no service started</code>. To avoid this issue,
      either <a href="/studio/run/emulator.html">use the emulator</a> or enable
      automatic launching for your app in your device's settings. The procedure
      for doing this is different for each device, so check the instructions
      provided by the manufacturer. To learn more about this issue, see
      <a href="https://code.google.com/p/android/issues/detail?id=235879">Issue
        #235879</a>.
    </p>
    

    2.2 (सितंबर 2016)

    2.2.3 (दिसंबर 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes a bug fixes
      focused around gradle, the core IDE, and lint.
    </p>
    
    <p>
      Highlighted build changes:
    </p>
    
    <ul>
      <li>ProGuard version rollback. Due to a <a href=
      "https://sourceforge.net/p/proguard/bugs/625/">correctness issue</a>
      discovered in ProGuard 5.3.1, we have rolled back to ProGuard 5.2.1. We
      have worked with the ProGuard team on getting a fix quickly, and we expect
      to roll forward to ProGuard 5.3.2 in Android Studio 2.3 Canary 3.
      </li>
      <li>Bug fix for <code>aaptOptions</code> <code>IgnoreAssetsPattern</code>
      not working properly (<a href="http://b.android.com/224167">issue
      224167</a>)
      </li>
      <li>Bug fix for Gradle autodownload for Constraint Layout library
        (<a href="https://code.google.com/p/android/issues/detail?id=212128">issue
        212128</a>)
      </li>
      <li>Bug fix for a JDK8/Kotlin compiler + dx issue (<a href=
      "http://b.android.com/227729">issue 227729</a>)
      </li>
    </ul>
    
    <p>
      <a href=
      "https://code.google.com/p/android/issues/list?can=1&amp;q=target%3D2.2.3+status%3AReleased+&amp;colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&amp;cells=tiles">
      See all bug fixes in 2.2.3</a>.
    </p>
    

    2.2.2 (अक्टूबर 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes a number of small
      changes and bug fixes, including:
    </p>
    
    <ul>
      <li>When reporting Instant Run issues through the IDE, the report now also
      includes logcat output for <code>InstantRun</code> events. To help us
      improve Instant Run, please <a href=
      "/studio/run/index.html#submit-feedback">enable extra logging and report
      any issues</a>.
      </li>
      <li>A number of small bug fixes for Gradle.
      </li>
      <li>A fix for problems with generating multiple APKs.
      </li>
    </ul>
    

    2.2.1 (अक्टूबर 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes several bug fixes
      and a new feature to enable extra logging to help us troubleshoot Instant
      Run issues—to help us improve Instant Run, please <a href=
      "/studio/run/index.html#submit-feedback">enable extra logging and report
      any issues</a>.
    </p>
    

    नया

    • सभी नए लेआउट Editor, जिसमें ConstraintLayout के साथ काम करने के लिए पसंद के मुताबिक बनाए गए टूल का इस्तेमाल किया गया है.
    • <li>New <strong><a href=
      "http://tools.android.com/tech-docs/layout-inspector">Layout
      Inspector</a></strong> lets you examine snapshots of your layout hierarchy
      while your app is running on the emulator or a device.
      </li>
      
      <li>New <strong><a href="/studio/write/firebase.html">Assistant</a></strong>
      window to help you integrate Firebase services into your app.
      </li>
      
      <li>New <strong><a href="/studio/debug/apk-analyzer.html">APK
      Analyzer</a></strong> tool so you can inspect the contents of your packaged
      app.
      </li>
      
      <li>New <strong><a href=
      "http://tools.android.com/tech-docs/test-recorder">Espresso Test
      Recorder</a></strong> tool (currently in beta) to help you create UI tests by
      recording your own interactions.
      </li>
      
      <li>New <strong><a href=
      "http://tools.android.com/tech-docs/build-cache">build cache</a></strong>
      (currently experimental) to speed up build performance.
      </li>
      
      <li>New <strong>C/C++ build integration with CMake and ndk-build</strong>.
      Compile and build new or existing native code into libraries packaged into
      your APK, and debug using lldb. For new projects, Android Studio uses CMake
      by default, but also supports ndk-build for existing projects. To learn how
      to include native code in your Android application, read <a href=
      "/studio/projects/add-native-code.html">Add C and C++ Code to Your
      Project</a>. To learn how to debug native code with lldb, see <a href=
      "/studio/debug/index.html#debug-native">Debug Native Code</a>.
      </li>
      
      <li>New <strong><a href="/studio/intro/index.html#sample-code">Samples
      Browser</a></strong> so you can easily look up Google Android sample code
      from within Android Studio to jump start app development.
      </li>
      
      <li>New <strong>Merged Manifest Viewer</strong> to help you diagnose how your
      manifest file merges with your app dependencies across project build
      variants.
      </li>
      
      <li>The <strong>Run</strong> window now contains log messages for the current
      running app. Note that you can configure the <a href=
      "/studio/debug/am-logcat.html">logcat Monitor</a> display, but not the
      <strong>Run</strong> window.
      </li>
      
      <li>New <strong><a href="/studio/run/emulator.html">Android
      Emulator</a></strong> features:
        <ul>
          <li>Added new <strong>Virtual</strong> <strong>Sensors</strong> and
          <strong>Cellular</strong> &gt; <strong>Signal Strength</strong> controls.
          </li>
          <li>Added an <strong>LTE</strong> option to the <strong>Cellular</strong>
          &gt; <strong>Network type</strong> control.
          </li>
          <li>Added simulated vertical swipes for scrolling through vertical menus
          with a mouse wheel.
          </li>
        </ul>
      </li>
      
      <li>New <strong><a href="/studio/run/rundebugconfig.html">Run/Debug
      Configuration</a></strong> features:
        <ul>
          <li>The <strong>Debugger</strong> tab of the Android App and Android
          Tests templates now contain several new options for debugging with LLDB.
          </li>
          <li>The <strong>Profiling</strong> tab of the Android App and Android
          Tests templates now contain a <strong>Capture GPU Commands</strong>
          option for enabling GPU tracing. You can display GPU traces in the GPU
          Debugger (a beta feature).
          </li>
          <li>The Android Tests template now has a <strong>Firebase Test Lab Device
          Matrix</strong> option for the <strong>Deployment Target</strong>.
          </li>
          <li>The Native Application template has been deprecated. If you use this
          template in a project, Android Studio automatically converts it to the
          Android App template.
          </li>
          <li>The Android Application template has been renamed to Android App.
          </li>
        </ul>
      </li>
      
      <li>Improved installation, configuration, performance, and UI features in the
      <strong><a href="/studio/debug/am-gpu-debugger.html">GPU
      Debugger</a></strong> (currently in beta).
      </li>
      
      <li>Android Studio now comes bundled with <strong>OpenJDK 8</strong>.
      Existing projects still use the JDK specified in <strong>File &gt; Project
      Structure &gt; SDK Location</strong>. You can switch to use the new bundled
      JDK by clicking <strong>File &gt; Project Structure &gt; SDK
      Location</strong> and checking the <strong>Use embedded JDK</strong>
      checkbox.
      </li>
      
      <li>Added new <strong>help menus and buttons</strong> in the UI so you can
      more easily find the online documentation.
      </li>
      

    बदलाव

    • IDE कोड बेस को IntelliJ 15 से InteliJ में अपडेट किया गया 1.2016
    • इंस्टैंट रन को अब टारगेट के हिसाब से प्लैटफ़ॉर्म SDK टूल की ज़रूरत होगी डिवाइस का एपीआई लेवल इंस्टॉल किया जाएगा.
    • अगर उपयोगकर्ता ऐप्लिकेशन को वर्क प्रोफ़ाइल या सेकंडरी उपयोगकर्ता के तौर पर.
    • Instant Run में बदलाव करने पर, विश्वसनीयता से जुड़ी कई समस्याएं ठीक कर दी गई हैं डिप्लॉय नहीं किए जा रहे थे या ऐप्लिकेशन क्रैश हो जाएगा:
      • कुछ ऐप्लिकेशन ऐसेट, आपके मौजूदा ऐप्लिकेशन पर डिप्लॉय नहीं की गई हैं. ( गड़बड़ी: #213454)
      • जब उपयोगकर्ता, इंस्टैंट रन और नॉन-इंस्टैंट रन सेशन के बीच ट्रांज़िशन करता है, तो ऐप्लिकेशन क्रैश हो जाता है. ऐसा तब होता है, जब Serializable क्लास में serialVersionUID की जानकारी नहीं दी गई हो. (गड़बड़ी: #209006)
      • 'इंस्टैंट रन' में स्टाइल के बदलाव नहीं दिखते. (बग: #210851)
      • इंस्टैंट रन सेशन भरोसेमंद नहीं है और इसकी वजह से FileNotFoundException होता है. (गड़बड़ी: #213083)
      • ड्रॉबल में किए गए बदलाव तब तक नहीं दिखेंगे, जब तक फिर से बनाने की प्रोसेस पूरी नहीं हो जाती के लिए उपलब्ध. (गड़बड़ी: #21530)
      • पसंद के मुताबिक बनाए जाने पर 'इंस्टैंट रन' में संसाधन के बदलाव नहीं दिखते सोर्ससेट में नेस्ट किए गए पाथ होते हैं. (गड़बड़ी: #219145)
      • अगर बदली गई क्लास में, सूची में शामिल वैल्यू वाला एनोटेशन है, तो हॉट और वॉर्म स्वैप काम नहीं करते. (बग: #209047)
      • एनोटेशन डेटा में किए गए बदलाव, 'इंस्टैंट रन' में नहीं दिखते. (गड़बड़ी: #210089)
      • घर के बाहर बदलाव करने पर, इंस्टैंट रन, कोड में किए गए बदलावों को स्वीकार नहीं करता आईडीई. (गड़बड़ी: #213205)
      • सुरक्षा टोकन मेल न खाने की वजह से, झटपट रन सेशन पर भरोसा नहीं किया जा सकता. (गड़बड़ी: #211989
      • कोल्ड स्वैप उन डिवाइसों को नहीं बदला जा सकता जो 'रन-असर' के साथ काम नहीं करते हैं. (गड़बड़ी: #210875)
      • झटपट रन रीस्टार्ट के बाद ऐप्लिकेशन क्रैश हो जाता है. (गड़बड़ी: #219744)
      • इंस्टैंट रन से इंस्टैंट डीबग पर स्विच करने पर, ClassNotFoundException का पता चला. (गड़बड़ी: #215805)
    • <li>Improved performance for <strong>Gradle sync</strong> within the IDE,
      especially for large projects.
      </li>
      
      <li>Improved build times for both full and incremental builds with new app
      packaging code.
      </li>
      
      <li>Improved <strong>Jack compiler performance and features</strong>,
      including support for annotation processors and dexing in process. To learn
      more, read the <a href=
      "/studio/releases/gradle-plugin.html#revisions">Android plugin for Gradle
      2.2.0 release notes</a>.
      </li>
      
      <li>Removed the <strong>Scale</strong> AVD property from the AVD Manager.
      </li>
      
      <li>The Android Emulator <strong>-port</strong> and <strong>-ports</strong>
      command-line options now report which ports and serial number the emulator
      instance is using, and warn if there are any issues with the values you
      provided.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/create-java-class.html">Create New Class dialog</a></strong>
      and the corresponding file templates. <strong>Note:</strong> If you've
      previously customized the <strong>AnnotationType</strong>,
      <strong>Class</strong>, <strong>Enum</strong>, <strong>Interface</strong>, or
      <strong>Singleton</strong> file templates, you need to modify your templates
      to comply with the new templates or you wont be able to use the new fields
      in the <strong>Create New Class</strong> dialog.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/vector-asset-studio.html">Vector Asset Studio</a></strong>
      user interface and added support for Adobe Photoshop Document (PSD) files.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/image-asset-studio.html">Image Asset Studio</a></strong> user
      interface.
      </li>
      
      <li>Improved the <strong>Theme Editor</strong>'s Resource Picker.
      </li>
      
      <li>Fixed memory leaks and reduced overall memory usage in Android Studio.
      </li>
      
      <li>Added a <strong>Background</strong> button in the <strong><a href=
      "/studio/intro/update.html#sdk-manager">SDK Manager</a></strong> so you can
      get back to work and install your packages in the background.
      </li>
      
      <li>Improved <strong><a href="/studio/intro/accessibility.html">Accessibility
      features</a></strong>, including support for screen readers and keyboard
      navigation.
      </li>
      
      <li>Enhanced <strong>Code Analysis</strong> includes code quality checks for
      Java 8 language usage and more cross-file analysis.
      </li>
      
      <li>Several toolbar icons have changed.
      </li>
      

    2.1 (अप्रैल 2016)

    इस अपडेट में किए गए मुख्य बदलावों से, हमें Android N की झलक.

    2.1.3 (अगस्त 2016)

    यह अपडेट, Gradle 2.14.1 के साथ काम करता है, जिसमें परफ़ॉर्मेंस भी शामिल है और सुरक्षा से जुड़ा एक अहम समाधान दिया गया है. ज़्यादा जानकारी के लिए, Gredle प्रॉडक्ट की जानकारी.

    Android Studio 2.1.3 में नए प्रोजेक्ट, डिफ़ॉल्ट रूप से Gradle 2.14.1 का इस्तेमाल करते हैं. इसके लिए मौजूदा प्रोजेक्ट के लिए, आईडीई आपको Gradle 2.14.1 में अपग्रेड करने और Android प्लगिन Gradle 2.1.3 के लिए, इसकी ज़रूरत होती है. यह Gradle 2.14.1 और उच्च.

    2.1.2 (जून 2016)

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

    • Instant Run अपडेट और बग समाधान.
    • LLDB की परफ़ॉर्मेंस और क्रैश की सूचनाओं में सुधार किए गए हैं.
    • Android Studio 2.1.1 सुरक्षा से जुड़े अपडेट में रिग्रेशन को ठीक किया गया, जो git rebase की वजह से गड़बड़ी हुई.

    2.1.1 (मई 2016)

    सुरक्षा रिलीज़ से जुड़ा अपडेट.

    Android N प्लैटफ़ॉर्म पर, Java 8 में भाषा की सुविधाओं का इस्तेमाल किया जा सकता है, जैक नाम के एक नए एक्सपेरिमेंटल कंपाइलर की ज़रूरत होती है. फ़िलहाल, Jack के नए वर्शन का इस्तेमाल सिर्फ़ Android Studio 2.1 में किया जा सकता है. इसलिए, अगर आपको Java 8 भाषा की सुविधाओं के लिए, आपको अपना ऐप्लिकेशन बनाने के लिए Android Studio 2.1 का उपयोग करना होगा.

    ध्यान दें: तुरंत चलाएं बंद हो जाता है जब आप जैक कंपाइलर को सक्षम करते हैं क्योंकि वे वर्तमान में साथ काम करता है.

    हालांकि, Android Studio 2.1 अब बेहतर तरीके से काम कर रहा है, लेकिन जैक कंपाइलर अब भी काम कर रहा है एक्सपेरिमेंट के तौर पर उपलब्ध है और आपको इसे jackOptions के साथ चालू करना होगा प्रॉपर्टी की आपकी build.gradle फ़ाइल में मौजूद है.

    N Preview की सुविधा के साथ काम करने वाले बदलावों के अलावा, Android Studio 2.1 इसमें मामूली गड़बड़ियां ठीक की गई हैं और इन्हें बेहतर बनाया गया है:

    • जब आप N डिवाइस या एम्युलेटर का इस्तेमाल करके और नेटिव डीबगर मोड को चुनें (आपके रन/डीबग कॉन्फ़िगरेशन के लिए डीबगर टैब में).

    बिल्ड से जुड़ी अन्य सुविधाओं के लिए, Gradle के लिए Android प्लग इन को 2.1.0 वर्शन पर अपडेट करें. इन सुविधाओं में, इंक्रीमेंटल Java कंपाइलेशन और प्रोसेस के दौरान डेक्सिंग शामिल है.

    2.0 (अप्रैल 2016)

    ध्यान दें: अगर आपको N Developer Preview के लिए डेवलप किया जा रहा है, तो को Android Studio 2.1 झलक का इस्तेमाल करना चाहिए. Android Studio 2.0, इस डिवाइस पर काम नहीं करता सभी ज़रूरी सुविधाओं को N Preview को टारगेट करने के लिए इस्तेमाल किया जा सकता है.

    तुरंत चलाएं:

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

      ध्यान दें: इंस्टैंट रन सिर्फ़ तब काम करता है, जब डीबग बिल्ड वैरिएंट, नीचे दी गई चीज़ों के लिए Android प्लगिन का इस्तेमाल करें Gradle 2.0.0 या इसके बाद का वर्शन. साथ ही, अपने ऐप्लिकेशन के मॉड्यूल-लेवल को कॉन्फ़िगर करना minSdkVersion 15 या इसके बाद के वर्शन के लिए build.gradle फ़ाइल. सबसे अच्छी परफ़ॉर्मेंस के लिए, अपने ऐप्लिकेशन को minSdkVersion 21 या इसके बाद वाले वर्शन में कॉन्फ़िगर करें.

    लिंट में नई सुविधाएं जोड़ी गई हैं:

    • एनोटेट किए गए पूर्णांक @IntDef का इस्तेमाल करके, switch स्टेटमेंट की जांच करना, ताकि यह पक्का किया जा सके कि सभी कॉन्स्टेंट मैनेज किए गए हैं. छूटे हुए स्टेटमेंट तुरंत जोड़ने के लिए, इंटेंट ऐक्शन ड्रॉप-डाउन मेन्यू चुनें और Add Learn @IntDef कॉन्स्टेंट.
    • डालने के लिए स्ट्रिंग इंटरपोलेशन का इस्तेमाल करने की गलत कोशिशों के लिए फ़्लैग वर्शन नंबर build.gradle फ़ाइल में होना चाहिए.
    • उन अनाम क्लास के लिए फ़्लैग जो Fragment क्लास को बढ़ाते हैं.
    • असुरक्षित जगहों पर नेटिव कोड के लिए फ़्लैग, जैसे कि res/ और asset/ फ़ोल्डर हैं. यह फ़्लैग नेटिव कोड को libs/ में सेव करने का बढ़ावा देता है फ़ोल्डर, जिसे इसके बाद ऐप्लिकेशन के इंस्टॉल के समय, data/app-lib/ फ़ोल्डर. AOSP: #169950
    • Runtime.load() और System.load() पर किए गए असुरक्षित कॉल के लिए फ़्लैग. एओएसपी: #179980
    • इस्तेमाल नहीं किए गए रिसॉर्स को ढूंढने और हटाने के लिए, रिफ़ैक्टर > कॉन्टेंट हटाना इस्तेमाल नहीं हो रहे संसाधन पर क्लिक करें. अब, इस्तेमाल न किए गए संसाधन का पता लगाने की सुविधा, सिर्फ़ उन संसाधनों के साथ काम करती है जिनका रेफ़रंस, इस्तेमाल न किए गए संसाधनों ने दिया है. साथ ही, यह सुविधा रॉ फ़ाइलों में मौजूद रेफ़रंस के साथ भी काम करती है. जैसे, .html इमेज रेफ़रंस और Gradle के संसाधन को छोटा करने वाले टूल के ज़रिए इस्तेमाल किए गए tools:keep और tools:discard एट्रिब्यूट. हालांकि, यह सुविधा इनऐक्टिव सोर्स सेट (जैसे, दूसरे बिल्ड फ़्लेवर में इस्तेमाल किए गए संसाधन) को ध्यान में रखती है और स्टैटिक फ़ील्ड इंपोर्ट को सही तरीके से मैनेज करती है.
    • यह जांच करती है कि इंप्लिसिट एपीआई रेफ़रंस सभी प्लैटफ़ॉर्म पर काम करते हैं या नहीं minSdkVersion ने टारगेट किया है.
    • RecyclerView और Parcelable के गलत इस्तेमाल की शिकायत करता है.
    • अब @IntDef, @IntRange, और @Size जांच भी की जा रही है int सरणियां और वैरर्ग.

    अतिरिक्त सुधार:

    • Android Emulator 2.0 के लिए ऑप्टिमाइज़ किया गया है, जो पहले से ज़्यादा तेज़ है. साथ ही, यह वर्शन कई तरह के वर्चुअल डिवाइसों के साथ काम करता है. इसमें यूज़र इंटरफ़ेस (यूआई) को काफ़ी बेहतर बनाया गया है. नए एम्युलेटर के बारे में ज़्यादा जानने के लिए, SDK टूल के टूल की जानकारी पढ़ें.
    • Android वर्चुअल डिवाइस मैनेजर में ये सुधार किए गए हैं:
      • सिस्टम इमेज को अब इन टैब में रखा जाता है: इसका सुझाव दिया जाता है, x86, और अन्य.
      • बेहतर सेटिंग में जाकर, मल्टी-कोर की सुविधा चालू की जा सकती है. साथ ही, यह भी तय किया जा सकता है कि एमुलेटर कितने कोर का इस्तेमाल कर सकता है.
      • बेहतर सेटिंग में जाकर, यह तय किया जा सकता है कि ग्राफ़िक कैसे रेंडर किए जाएं इनमें से कोई एक विकल्प चुनकर एम्युलेटर पर जाएं:
        • हार्डवेयर: तेज़ी से रेंडरिंग करने के लिए, अपने कंप्यूटर के ग्राफ़िक्स कार्ड का इस्तेमाल करें.
        • सॉफ़्टवेयर: सॉफ़्टवेयर पर आधारित रेंडरिंग का इस्तेमाल करें.
        • अपने-आप: एमुलेटर को सबसे सही विकल्प चुनने दें. यह डिफ़ॉल्ट सेटिंग है.
    • ऐप्लिकेशन बनने से पहले, डिप्लॉय टारगेट तय करके, AAPT पैकेजिंग के समय को बेहतर बनाया गया है. इससे Android Studio, डिवाइस के लिए ज़रूरी संसाधन.
    • मांग पर ऐप्लिकेशन की टेस्टिंग उपलब्ध कराने के लिए, Cloud Test Lab का इंटिग्रेशन जोड़ा गया क्लाउड सेवा की सुविधा और बढ़ाए जा सकने की योग्यता. Android Studio के साथ Cloud Test Lab का इस्तेमाल करने के तरीके के बारे में ज़्यादा जानें.
    • नए जीपीयू डीबगर की झलक जोड़ी गई. ज़्यादा ग्राफ़िक वाले ऐप्लिकेशन के लिए, अब अपने ऐप्लिकेशन या गेम को ऑप्टिमाइज़ करने के लिए, अपने OpenGL ES कोड को विज़ुअल तौर पर देखा जा सकता है.
    • Google ऐप्लिकेशन सूची टेस्ट जोड़ा गया. यूआरएल और ऐप्लिकेशन के लिए सहायता जोड़ें आपके ऐप्लिकेशन को इंडेक्स करने और खोजने की सुविधा से, आपके ऐप्लिकेशन को बेहतर बनाने में मदद मिलती है ट्रैफ़िक आ सकता है, ऐप्लिकेशन के किस कॉन्टेंट का सबसे ज़्यादा इस्तेमाल किया गया है, और नए उपयोगकर्ता. Android पर अपने ऐप्लिकेशन के यूआरएल की जांच और पुष्टि करें स्टूडियो. साथ में काम करने वाले यूआरएल और ऐप्लिकेशन देखें Android Studio में इंडेक्स करना.
    • नए IntelliJ 15 वर्शन से अपग्रेड किए गए हैं, जिसमें बेहतर कोड भी शामिल है विश्लेषण और प्रदर्शन. IntelliJ में नया क्या है नई सुविधाओं और सुधारों का पूरा विवरण.
    • एक्सएमएल एडिटर अपने-आप पूरा होने की सुविधा को पूरा करने पर, अब कोटेशन मार्क जुड़ जाता है एट्रिब्यूट की वैल्यू सबमिट करें. यह देखने के लिए कि यह विकल्प चालू है या नहीं, सेटिंग खोलें या प्राथमिकताएं डायलॉग बॉक्स, एडिटर > पर जाएं सामान्य > स्मार्ट कैंपेन कुंजियां और के बगल में बने बॉक्स को चुनें. इसके बाद, एट्रिब्यूट की वैल्यू को कोट करें एट्रिब्यूट पूरा होना चाहिए. समस्या: 195113
    • एक्सएमएल एडिटर अब डेटा बाइंडिंग के लिए कोड पूरा करने की सुविधा देता है एक्सप्रेशन के बारे में भी बताया गया है.

    Android Studio v1.5.1 (दिसंबर 2015)

    सुधार और अपडेट:

    • लेआउट एडिटर में, रेंडरिंग न हो पाने की समस्या को ठीक किया गया. समस्या: 194612
    • कॉन्फ़िगरेशन के हिसाब से, description मेनिफ़ेस्ट एट्रिब्यूट को अलग-अलग करने की सुविधा जोड़ी गई. समस्या: 194705
    • वेक्टर ऐसेट स्टूडियो में Android Studio Darcula थीम के कंट्रास्ट को बेहतर किया गया है. समस्या: 191819
    • वेक्टर ऐसेट स्टूडियो में सहायता बटन की सुविधा जोड़ी गई.
    • डेटा बाइंडिंग के लिए, % ऑपरेटर के साथ काम करने की सुविधा जोड़ी गई. समस्या: 194045
    • ऐसे मामले को ठीक किया गया जहां डीबग करने के लिए ऐप्लिकेशन लॉन्च करने की वजह से डीबगर डिवाइस ग़लत है. समस्या: 195167
    • शून्य पॉइंटर के एक अपवाद को ठीक किया गया, जो किसी ऐप्लिकेशन को चलाने की कोशिश करते समय हो सकता है कुछ मामलों में.

    Android Studio v1.5.0 (नवंबर 2015)

    सुधार और सुधार:

    • Android Monitor में, Memory Monitor के विश्लेषण की नई सुविधाएं जोड़ी गई हैं. HPROF फ़ाइल देखने पर इस मॉनिटर से कैप्चर किया गया डिसप्ले, अब ज़्यादा मददगार हो गया है. इससे, आपके फ़ोन की जगह की जैसे कि मेमोरी लीक. इस मॉनिटर का इस्तेमाल करने के लिए, Android Monitor पर क्लिक करें सबसे नीचे क्लिक करें. Android मॉनिटर में, मेमोरी टैब पर क्लिक करें. मॉनिटर चालू होने के दौरान, Java Heap डंप करें आइकॉन पर क्लिक करें. इसके बाद, मुख्य विंडो में कैप्चर पर क्लिक करें और फ़ाइल को देखने के लिए उस पर दो बार क्लिक करें. दाईं ओर, कैप्चर का विश्लेषण करें पर क्लिक करें. ( Android डिवाइस मॉनिटर और Android मॉनिटर, दोनों एक साथ नहीं चल सकते.)
    • नया डीप लिंक और ऐप्लिकेशन लिंक की सुविधा जोड़ी गई. कोड एडिटर, AndroidManifest.xml फ़ाइल में डीप लिंकिंग के लिए, अपने-आप एक इंटेंट फ़िल्टर बना सकता है. यह कोड भी जनरेट कर सकता है, ताकि आपको किसी Java फ़ाइल की गतिविधि में, ऐप्लिकेशन को इंडेक्स करने वाले एपीआई के साथ इंटिग्रेट करने में मदद मिल सके. डीप लिंक की टेस्टिंग की सुविधा इससे आपको यह पुष्टि करने में मदद मिलती है कि कोई खास डीप लिंक, ऐप्लिकेशन को लॉन्च कर सकता है. सामान्य रन/डीबग कॉन्फ़िगरेशन डायलॉग के टैब में जाकर, डीप लिंक के लॉन्च की जानकारी दी जा सकती है के विकल्प. Android मॉनिटर के logcat डिसप्ले का इस्तेमाल करके, किसी गतिविधि में ऐप्लिकेशन को इंडेक्स करने वाले एपीआई कॉल की जांच भी की जा सकती है. Android lint टूल में अब डीप लिंक और ऐप्लिकेशन को इंडेक्स करने वाले एपीआई से जुड़ी कुछ समस्याओं के लिए चेतावनियां दी गई हैं.
    • कोड एडिटर में, कस्टम व्यू के कोड को पूरा करते समय, छोटे नामों का इस्तेमाल करने की सुविधा जोड़ी गई.
    • इसमें ज़्यादा VectorDrawable एलिमेंट के लिए सहायता जोड़ी गई वेक्टर ऐसेट स्टूडियो इस्तेमाल किया जा सकता है. वेक्टर एसेट स्टूडियो, इन एलिमेंट का इस्तेमाल करके वेक्टर ड्रॉअरबल को PNG रेस्टर इमेज में बदल सकता है. इन इमेज का इस्तेमाल, Android 4.4 (एपीआई लेवल 20) और उससे पहले के वर्शन के साथ किया जा सकता है.
    • आपको देने के लिए, Android TV और Android Auto के लिए नए lint चेक जोड़े गए साथ ही, Android Studio में तुरंत दिखने वाले फ़ीडबैक और तुरंत कार्रवाई करने के कई तरीके हैं. उदाहरण के लिए, Android TV के लिए, यह रिपोर्ट कर सकता है और अनुमतियों, काम न करने वाले हार्डवेयर, uses-feature एलिमेंट और बैनर से जुड़ी गड़बड़ियां मौजूद नहीं हैं. Android Auto के लिए, यह आपकी AndroidManifest.xml फ़ाइल से रेफ़र की गई डिस्क्रिप्टर फ़ाइल में, सही इस्तेमाल की पुष्टि कर सकता है. साथ ही, अगर MediaBrowserService क्लास के लिए कोई इंटेंट फ़िल्टर नहीं है, तो इसकी शिकायत कर सकता है. इसके अलावा, यह कुछ वॉइस ऐक्शन से जुड़ी समस्याओं की पहचान भी कर सकता है.
    • असुरक्षित ब्रॉडकास्ट रिसीवर, SSLCertificateSocketFactory और HostnameVerifier क्लास के इस्तेमाल, और File.setReadable() और File.setWritable() कॉल के लिए, नई lint जांच जोड़ी गई हैं. यह अमान्य मेनिफ़ेस्ट संसाधन लुकअप का भी पता लगाता है. खास तौर पर, उन संसाधनों के लिए जो कॉन्फ़िगरेशन के हिसाब से अलग-अलग होते हैं.
    • स्थिरता से जुड़ी कई समस्याओं को ठीक किया गया.

    Android Studio v1.4.1 (अक्टूबर 2015)

    सुधार और सुधार:

    • Gradle मॉडल को कैश मेमोरी में सेव करने की समस्या ठीक की गई, जिसकी वजह से IDE के दौरान, Gradle के बहुत ज़्यादा सिंक होने की समस्या आ सकती है रीस्टार्ट किया गया.
    • नेटिव डीबगिंग डेडलॉक की समस्या ठीक की गई.
    • Subversion 1.9 वर्शन कंट्रोल सिस्टम के उपयोगकर्ताओं को ब्लॉक करने वाली समस्या ठीक कर दी गई है.
    • डिवाइस सिलेक्टर डायलॉग समस्या ठीक की गई, जहां डिवाइस को कनेक्ट करने के बाद आपके पास एम्युलेटर को चुनने का विकल्प नहीं है. समस्या: 189658
    • उन स्थानीय भाषाओं के लिए, अनुवाद से जुड़ी गड़बड़ी की गलत रिपोर्टिंग ठीक की गई है जिनमें क्षेत्र के हिसाब से क्वालीफ़ायर और क्षेत्र में अनुवाद मौजूद है (लेकिन बेस लोकल भाषा में नहीं). समस्या: 188577
    • लेआउट के साथ इंटरैक्शन की वजह से थीम एडिटर में एक डेडलॉक समस्या को ठीक किया गया एडिटर. समस्या: 188070
    • थीम एडिटर को रीलोड करने और बदलाव करने से जुड़ी समस्या को ठीक किया गया. इस समस्या की वजह से एट्रिब्यूट सही से अपडेट नहीं हो पाते थे. समस्या: 187726
    • थीम एडिटर की परफ़ॉर्मेंस बेहतर हुई.
    • मेनिफ़ेस्ट में android:required एट्रिब्यूट को अनदेखा करने से जुड़ी समस्या को ठीक किया गया. समस्या: 187665

    Android Studio v1.4.0 (सितंबर 2015)

    सुधार और अपडेट:

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

    Android Studio v1.3.2 (अगस्त 2015)

    सुधार और सुधार:

    • Android 6.0 (एपीआई लेवल 23) के लिए अतिरिक्त सहायता. इसमें नए आइकॉन और एवीडी मैनेजर शामिल हैं नई स्क्रीन डेंसिटी वाले डिवाइसों को बनाया जा सकता है.
    • अपडेट की जांच के दौरान होने वाली एक गड़बड़ी को ठीक किया गया. समस्या: 183068
    • उस समस्या का समाधान किया गया है जहां समाधान न किए गए दृश्य निर्देशांकों के कारण लेआउट संपादक क्रैश हो सकता है. समस्या: 178690
    • अमान्य संसाधन टाइप से जुड़ी चेतावनियों की समस्या ठीक कर दी गई है. समस्या: 182433
    • लिंट की जांच करने की सुविधा को ठीक किया गया है, जो संसाधनों को गलती से निजी के तौर पर फ़्लैग कर रही थी. समस्या: 183120

    Android Studio v1.3.1 (अगस्त 2015)

    सुधार और सुधार:

    • Windows पर Android Wear Android वर्चुअल डिवाइस (AVD) बनाने के लिए सुविधा.
    • प्रोजेक्ट के डाले गए नाम का इस्तेमाल करने के लिए, Project विज़ार्ड को अपडेट किया गया.
    • Android SDK टूल को रीड-ओनली डायरेक्ट्री में सेव करने की सुविधा जोड़ी गई.
    • Gradle के लिए Android प्लग इन को 1.3.0 पर अपडेट किया गया.
    • Android Debug Bridge (adb) Unix से डीबग सेशन लॉन्च करने से जुड़ी समस्याओं को ठीक किया गया शेल.
    • पैकेज का सही नाम दिखाने के लिए, Java पैकेज का नाम बदलने के मैसेज को ठीक किया गया.

    Android Studio v1.3.0 (जुलाई 2015)

    सुधार और अपडेट:

    • Android Studio में, अपने ऐप्लिकेशन में Google AdMob और Analytics जैसी डेवलपर सेवाएं चालू करने के विकल्प जोड़े गए हैं.
    • अतिरिक्त एनोटेशन जोड़े गए, जैसे, @RequiresPermission, @CheckResults, और @MainThread.
    • Java हीप डंप को जनरेट करने और मेमोरी मॉनिटर. आप यह भी कर सकते हैं Android-विशिष्ट HPROF बाइनरी फ़ॉर्मैट फ़ाइलों को मानक HPROF फ़ॉर्मैट में Android Studio.
    • SDK Manager को इंटिग्रेट किया गया Android Studio में पैकेज और टूल को आसानी से ऐक्सेस करने के साथ-साथ अपडेट की सूचनाएं भी उपलब्ध कराई जा सकती हैं.

      ध्यान दें: स्टैंडअलोन SDK Manager, अब भी इन प्लैटफ़ॉर्म पर उपलब्ध है: कमांड लाइन, लेकिन इसका सुझाव सिर्फ़ स्टैंडअलोन SDK के साथ इस्तेमाल करने के लिए दिया जाता है इंस्टॉल किए गए हैं.

    • सिम्युलेट करने के लिए, एम्युलेटर कंसोल में finger कमांड जोड़ा गया फ़िंगरप्रिंट पुष्टि करने के लिए.
    • लाइब्रेरी के संसाधनों को सार्वजनिक और निजी संसाधनों के तौर पर तय करने के लिए, <public> संसाधन एलान जोड़ा गया.

      ध्यान दें: इसके लिए, Gradle के लिए Android प्लग इन के 1.3 या इसके बाद के वर्शन की ज़रूरत होती है.

    • डेटा बाइंडिंग की सुविधा जोड़ी गई है, ताकि आप ऐसे एलान वाले लेआउट बना सकें जो आपके ऐप्लिकेशन लॉजिक को लेआउट एलिमेंट से जोड़ते हैं.
    • अलग से जोड़ी गई टेस्ट APK मॉड्यूल Android Studio में टेस्ट APK बनाने के लिए.
    • HAXM की मदद से, एवीडी मैनेजर को अपडेट किया गया ऑप्टिमाइज़ेशन और बेहतर सूचनाएं.
    • इसके लिए, 64-बिट ARM और MIPS एम्युलेटर की सुविधा जोड़ी गई QEMU 2.1.
    • लिंट से जुड़ी चेतावनियों के समाधान को आसान बनाया गया अपने-आप जनरेट होने की सुविधा का इस्तेमाल करके, पार्स किया जा सकने वाला लागू करना.
    • कोड स्निपेट को तुरंत डालने के लिए, लाइव टेंप्लेट का इस्तेमाल करने की सुविधा जोड़ी गई है.

    Android Studio v1.2.2(जून 2015)

    सुधार और सुधार:

    • बिल्ड से जुड़ी उन समस्याओं को ठीक किया गया है जो बिल्ड को पूरा होने से रोक रही थीं.

    Android Studio v1.2.1 (मई 2015)

    सुधार और अपडेट:

    • परफ़ॉर्मेंस और सुविधा से जुड़ी छोटी-मोटी समस्याओं को ठीक किया गया.

    Android Studio v1.2.0 (अप्रैल 2015)

    सुधार और अपडेट:

    • मेमोरी मॉनिटर टूल को शामिल करने के लिए, Android रनटाइम विंडो को अपडेट किया गया और एक टैब जोड़ा गया का इस्तेमाल करें.
    • आइटम दिखाने के लिए बाएं मार्जिन में कैप्चर टैब जोड़ा गया कैप्चर की गई मेमोरी और सीपीयू परफ़ॉर्मेंस डेटा फ़ाइलें, जैसे कि सीपीयू मेथड ट्रैकिंग और मेमोरी हीप स्नैपशॉट शामिल किए जाते हैं.
    • ज़्यादा मेटाडेटा एनोटेशन और अनुमानित वैल्यू के साथ, एनोटेशन के लिए बेहतर सहायता.
    • सर्वश्रेष्ठ के लिए अतिरिक्त सहायता के साथ अनुवाद संपादक को बेहतर बनाया मौजूदा प्रैक्टिस (बीसीपी) 47, जिसमें तीन अक्षरों वाली भाषा और क्षेत्र के कोड इस्तेमाल किए जाते हैं.
    • कोड के विश्लेषण और परफ़ॉर्मेंस को बेहतर बनाने के लिए, IntelliJ 14 और 14.1 की सुविधाओं को इंटिग्रेट किया गया:
      • वैरिएबल के लिए इनलाइन वैल्यू दिखाने के लिए डीबग करने की बेहतर सुविधा और साथ ही, lambda और Lambda फ़ंक्शन का इनलाइन इवैलुएशन ऑपरेटर एक्सप्रेशन का इस्तेमाल करता है.
      • टैब और इंडेंट साइज़ के लिए, कोड स्टाइल की पहचान करने की सुविधा जोड़ी गई.
      • कोड एक्सपेरिमेंट और प्रोटोटाइप के लिए स्क्रैच फ़ाइलें जोड़ी गईं प्रोजेक्ट फ़ाइलें हैं.
      • इसमें ओपनिंग और क्लोज़िंग टैग की साथ-साथ प्रविष्टि जोड़ी गई एचटीएमएल और एक्सएमएल फ़ाइलें.
      • इसमें पहले से मौजूद Java क्लास डिकंपाइलर जोड़ा गया है, ताकि आप उस लाइब्रेरी के अंदर मौजूद कॉन्टेंट को देख सकें जिसके लिए सोर्स कोड उपलब्ध नहीं है.

      देखें कि IntelliJ में नया क्या है देखें.

    • इनके लिए अतिरिक्त प्रोजेक्ट व्यू जोड़े गए स्क्रैच, प्रोजेक्ट फ़ाइलें, समस्याएं, प्रोडक्शन और टेस्ट करना, ताकि प्रोजेक्ट मैनेजमेंट को बेहतर बनाया जा सके और ऐक्सेस दें.
    • फ़ाइल > सेटिंग मेन्यू और डायलॉग बॉक्स बेहतर सेटिंग ऐक्सेस और मैनेजमेंट.
    • Windows और Linux के लिए, हाई डेंसिटी डिसप्ले के लिए अतिरिक्त सुविधा.
    • res/drawable-280dpi/ फ़ोल्डर में, 280 डीपीआई वाले रिसॉर्स के लिए सहायता जोड़ी गई.

    Android Studio v1.1.0 (फ़रवरी 2015)

    कई सुधार और गड़बड़ियां ठीक की गईं:

    • Android Wear स्मार्टवॉच के लिए अतिरिक्त सुविधा टेम्प्लेट.
    • नए प्रोजेक्ट और मॉड्यूल बनाने की सेटिंग में बदलाव किया गया, ताकि इसे शामिल किया जा सके इसके लिए res/mipmap फ़ोल्डर सघनता के हिसाब से लॉन्चर आइकॉन. ये res/mipmap फ़ोल्डर, res/drawable लॉन्चर आइकॉन के लिए फ़ोल्डर.
    • लॉन्चर आइकॉन को अपडेट किया गया मटीरियल डिज़ाइन रूप से दिखता है और एक जोड़ा जाता है xxxhdpi लॉन्चर आइकॉन.
    • क्षेत्र और भाषा के कॉम्बिनेशन, लॉन्चर आइकॉन, संसाधन के नाम, और कोड से जुड़ी अन्य सामान्य समस्याओं के लिए, लिंट की जांच करने की सुविधा जोड़ी गई है और उसे बेहतर बनाया गया है.
    • सबसे सही मौजूदा तरीके (बीसीपी) के भाषा टैग 47 के लिए सहायता जोड़ी गई है.

    Android Studio v1.0.1 (दिसंबर 2014)

    कई सुधार और गड़बड़ियां ठीक की गईं:

    • AVD मैनेजर और device.xml फ़ाइल लॉक की समस्या को ठीक कर दिया गया है.
    • Windows सिस्टम पर एम्युलेटर लॉग को ठीक किया गया.
    • Android Studio और अलग-अलग वर्शन पर इंस्टॉल किए गए Android SDK का इस्तेमाल करके, एवीडी बनाने से जुड़ी समस्या ठीक की गई है Windows सिस्टम पर चलता है.
    • यह नीति, वीडियो डाउनलोड करने के लिए डिफ़ॉल्ट चैनल को स्टेबल पर सेट करती है. अगर आपको Android Studio का 1.0.0 वर्शन इंस्टॉल किया है और चाहते हैं कि कोई स्टेबल और प्रोडक्शन के लिए तैयार हो अपडेट के लिए, फ़ाइल > सेटिंग > Stable में बदलने के लिए अपडेट होता है चैनल अपडेट करें.

    Android Studio v1.0 (दिसंबर 2014)

    Android Studio की शुरुआती रिलीज़.

    Android Studio v0.8.14 (अक्टूबर 2014)

    यहां जाएं: tools.android.com देखें.

    Android Studio v0.8.6 (अगस्त 2014)

    बदलावों की पूरी सूची के लिए, tools.android.com पर जाएं.

    Android Studio v0.8.0 (जून 2014)

    Android Wear प्रोजेक्ट के लिए सहायता जोड़ी गई.

    बदलावों की पूरी सूची के लिए, tools.android.com पर जाएं.

    Android Studio v0.5.2 (मई 2014)

    • बदलावों की पूरी सूची देखने के लिए, tools.android.com पर जाएं.

    Android Studio v0.4.6 (मार्च 2014)

    • बदलावों की पूरी सूची देखने के लिए, tools.android.com पर जाएं.

    Android Studio v0.4.2 (जनवरी 2014)

    • बदलावों की पूरी सूची देखने के लिए, tools.android.com पर जाएं.

    Android Studio v0.3.2 (अक्टूबर 2013)

    • बदलावों की पूरी सूची के लिए, tools.android.com पर जाएं.

    Android Studio v0.2.x (जुलाई 2013)

    • IntelliJ के कोडबेस में हुए नए बदलावों में मर्ज किया गया. इसमें Studio के उपयोगकर्ताओं की ओर से बताई गई समस्याओं को ठीक करने के लिए बदलाव किए गए हैं. जैसे, Linux फ़ॉन्ट के साइज़ और फ़ॉन्ट रेंडरिंग में बदलाव.
    • 'Android Gradle प्लग-इन' को 0.5.0 में अपडेट किया गया.

      चेतावनी: यह नया वर्शन, पुराने वर्शन के साथ काम नहीं करता. प्लग-इन के पुराने वर्शन का इस्तेमाल करने वाले प्रोजेक्ट को खोलते समय, Studio एक गड़बड़ी दिखाएगा Gredle <project_name> को कहते हुए प्रोजेक्ट रीफ़्रेश नहीं हो सका.

      अपडेट किए गए Gradle प्लग-इन में ये बदलाव शामिल हैं:

      • आउटपुट फ़ाइल को शामिल करने के लिए, IDE मॉडल को ठीक किया गया. भले ही, उसे DSL के ज़रिए कस्टमाइज़ किया गया हो. साथ ही, वैरिएंट ऑब्जेक्ट पर आउटपुट फ़ाइल पाने/सेट करने के लिए डीएसएल को ठीक किया गया, ताकि variant.packageApplication or variant.zipAlign का इस्तेमाल करना ज़रूरी न हो
      • डिपेंडेंसी रिज़ॉल्यूशन को ठीक किया गया, ताकि हमने (डिफ़ॉल्ट कॉन्फ़िगरेशन, बनाने के बजाय अलग-अलग तरह का बनाएं.
      • लाइब्रेरी प्रोजेक्ट की जांच के लिए, इस डिपेंडेंसी को तय किया गया है, ताकि सभी डिपेंडेंसी को सही तरीके से शामिल किया जा सके शामिल किया जा सकता है.
      • तय किया गया केस, जहां दो डिपेंडेंसी के लिए लीफ़ का नाम एक जैसा होता है.
      • उस समस्या को ठीक किया गया है जिसकी वजह से Proguard के नियमों वाली फ़ाइल, फ़्लेवर पर लागू नहीं हो पा रही थी.

      Gradle प्लग इन के सभी रिलीज़ नोट यहां उपलब्ध हैं: http://tools.android.com/tech-docs/new-build-system.

    • aapt से मिली Gradle गड़बड़ियां, अब build/ फ़ोल्डर में मर्ज की गई आउटपुट फ़ाइलों पर नहीं दिखती हैं. ये गड़बड़ियां, असल सोर्स की जगहों पर दिखती हैं.
    • पैरलल बिल्ड. अब Gradle के पैरलल बिल्ड का इस्तेमाल किया जा सकता है. कृपया ध्यान रखें कि पैरलल बिल्ड "इनक्यूबेशन" में होते हैं (Gradle की दस्तावेज़.) यह सुविधा डिफ़ॉल्ट रूप से बंद है. इसे चालू करने के लिए, यहां जाएं प्राथमिकताएं > कंपाइलर पर क्लिक करें और कंपाइल करें' बॉक्स पर सही का निशान लगाएं साथ-साथ (साथ-साथ अलग-अलग मॉड्यूल).
    • लेआउट रेंडरिंग, एडिटर में संसाधन को फ़ोल्ड करने वगैरह के लिए इस्तेमाल किए जाने वाले नए संसाधन रिपॉज़िटरी पर और काम:
      • .aar लाइब्रेरी डिपेंडेंसी के लिए बुनियादी काम करता है (उदाहरण के लिए, ऐसी लाइब्रेरी का इस्तेमाल करना जिसमें स्रोत). यह सुविधा, सोर्स एडिटर में संसाधन एक्सएमएल की पुष्टि करने और नेविगेट करने के लिए अब भी काम नहीं कर रही है.
      • रिसॉर्स रेफ़रंस में साइकल का पता लगाना.
      • क्विक दस्तावेज़ (F1) की सुविधा, कैरेट के नीचे मौजूद स्ट्रिंग के सभी अनुवाद दिखा सकती है. अब यह सुविधा, Gradle के अलग-अलग फ़्लेवर और बिल्ड टाइप के साथ-साथ लाइब्रेरी के सभी रिसॉर्स ओवरले भी दिखाएगी. इन्हें रिवर्स रिसॉर्स ओवरले ऑर्डर में दिखाया जाता है. इनमें स्ट्राइकथ्रू (टेक्स्ट पर लाइन खींचना) होता है मास्क किए गए स्ट्रिंग के वर्शन.
      • मॉड्यूल की डिपेंडेंसी के सेट में बदलाव होने पर, मर्ज किए गए संसाधनों को अपडेट करने से जुड़ी समस्याएं ठीक की गई हैं.
      • वर्ण इकाई की सूचनाओं के साथ-साथ एक्सएमएल और यूनिकोड को सही तरीके से हैंडल करने के लिए, एक्सएमएल रेंडरिंग से जुड़े सुधार एस्केप.
    • लेआउट की झलक और लेआउट एडिटर विंडो के लिए, स्क्रीनशॉट की सुविधा सेव करें.
    • टेंप्लेट से जुड़ी गड़बड़ियां ठीक की गईं.
    • Lint की गड़बड़ियां ठीक की गईं.
    • क्रैश रिपोर्ट से जुड़ी कई गड़बड़ियां ठीक की गईं. धन्यवाद. क्रैश की रिपोर्ट भेजते रहें!

    Android Studio v0.1.x (मई 2013)

    • कई गड़बड़ियां ठीक की गईं, जिनमें Windows इंस्टॉल करने से जुड़ी सामान्य समस्या को ठीक करना शामिल है.

    Android Gradle प्लग इन के पुराने वर्शन

    3.6.0 (फ़रवरी 2020)

    Android प्लग इन के इस वर्शन के लिए इनकी ज़रूरत होती है:

    नई सुविधाएं

    'Android Gradle प्लग इन' के इस वर्शन में ये नए (नए) वर्शन शामिल हैं सुविधाएँ.

    व्यू बाइंडिंग

    व्यू बाइंडिंग की मदद से, कोड में व्यू का रेफ़रंस देते समय, कंपाइल टाइम (कंपाइल का समय) में सुरक्षा मिलती है. अब आप findViewById() को इससे बदल सकते हैं: अपने-आप जनरेट हुआ बाइंडिंग क्लास रेफ़रंस. व्यू बाइंडिंग का इस्तेमाल शुरू करने के लिए, हर मॉड्यूल की build.gradle फ़ाइल में ये शामिल करें:

          android {
              viewBinding.enabled = true
          }
          
          android {
              viewBinding.enabled = true
          }
          

    ज़्यादा जानने के लिए, View ऐसा दस्तावेज़ जिसे मानना ज़रूरी है.

    Maven published प्लगिन के लिए सहायता

    Android Gradle प्लग इन में, Maven Publish Gradle प्लग इन के लिए सहायता शामिल होती है. इसकी मदद से, Apache Maven रिपॉज़िटरी में बिल्ड आर्टफ़ैक्ट पब्लिश किए जा सकते हैं. 'Android Gradle प्लग इन' कॉम्पोनेंट हर एक बिल्ड वैरिएंट आर्टफ़ैक्ट के लिए, इस्तेमाल किया जा सकता है. ईमेल पते को पसंद के मुताबिक बनाने के लिए, पब्लिकेशन को Maven रिपॉज़िटरी में भेजना होगा.

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

    नया डिफ़ॉल्ट पैकेजिंग टूल

    आपके ऐप्लिकेशन का डीबग वर्शन बनाते समय, यह प्लगिन नई अपना APK बनाने के लिए पैकेजिंग टूल, जिसे zipflinger कहा जाता है. इस नए टूल से, बिल्ड की स्पीड में सुधार होगा. अगर नया पैकेजिंग टूल यह आपकी उम्मीद के मुताबिक़ काम नहीं करता है, कृपया गड़बड़ी की शिकायत करें. इसे वापस लाया जा सकता है पुराने पैकेजिंग टूल का इस्तेमाल करके, अपने gradle.properties फ़ाइल:

            android.useNewApkCreator=false
          
    नेटिव बिल्ड एट्रिब्यूशन

    अब यह तय किया जा सकता है कि Clang को बनाने में कितना समय लगता है और हर C/C++ फ़ाइल को अपने प्रोजेक्ट में लिंक कर सकता है. Gradle, एक Chrome ट्रेस का आउटपुट दे सकता है जिसमें इन कंपाइलर इवेंट के लिए टाइमस्टैंप शामिल हैं, ताकि आप इससे यह समझने में मदद मिलती है कि आपका प्रोजेक्ट बनाने में कितना समय लगता है. इस एट्रिब्यूशन फ़ाइल को आउटपुट करने के लिए, ये करें:

    1. Gradle बिल्ड को चलाते समय, -Pandroid.enableProfileJson=true फ़्लैग जोड़ें. उदाहरण के लिए:

      gradlew assembleDebug -Pandroid.enableProfileJson=true

    2. Chrome ब्राउज़र खोलें और इसमें chrome://tracing टाइप करें खोजें.

    3. लोड करें बटन पर क्लिक करें और <var>project-root</var>/build/android-profile फ़ाइल ढूंढने के लिए. फ़ाइल का नाम profile-<var>timestamp</var>.json.gz है.

    आपको पेज के सबसे ऊपर वाले हिस्से के पास नेटिव बिल्ड एट्रिब्यूशन डेटा दिखेगा दर्शक:

    Chrome में नेटिव बिल्ड एट्रिब्यूशन ट्रेस

    उपयोगकर्ता के व्यवहार में बदलाव

    प्लग इन के इस वर्शन का इस्तेमाल करने पर, आपको इसके व्यवहार में ये बदलाव दिख सकते हैं.

    नेटिव लाइब्रेरी जिनका पैकेज बिना कंप्रेस किया हुआ है डिफ़ॉल्ट

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

    • ऐप्लिकेशन इंस्टॉल करने के बाद उसका साइज़ कम हो जाता है. ऐसा इसलिए होता है, क्योंकि प्लैटफ़ॉर्म, लाइब्रेरी की कॉपी बनाए बिना, सीधे तौर पर इंस्टॉल किए गए APK से नेटिव लाइब्रेरी को ऐक्सेस कर सकता है.
    • डाउनलोड करने के लिए कम जगह चाहिए, क्योंकि APK या Android ऐप्लिकेशन बंडल में बिना कंप्रेस की गई नेटिव लाइब्रेरी शामिल करने पर, आम तौर पर Play Store का कंप्रेस करने का तरीका बेहतर होता है.

    अगर आपको Android Gradle प्लग इन से, कंप्रेस की गई नेटिव लाइब्रेरी को पैकेज करने के लिए कहना है, तो अपने ऐप्लिकेशन के मेनिफ़ेस्ट में यह जानकारी शामिल करें:

            <application
              android:extractNativeLibs="true"
              ... >
            </application>
            
          

    ध्यान दें: extractNativeLibs मेनिफ़ेस्ट एट्रिब्यूट को useLegacyPackaging DSL से बदल दिया गया है का विकल्प शामिल है. ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें कंप्रेस की गई नेटिव लाइब्रेरी को पैकेज करने के लिए, डीएसएल का इस्तेमाल करना.

    डिफ़ॉल्ट एनडीके वर्शन

    अगर NDK टूल के कई वर्शन डाउनलोड किए जाते हैं, तो Android Gradle प्लग इन अब आपके सोर्स कोड फ़ाइलों को कंपाइल करने के लिए, डिफ़ॉल्ट वर्शन चुनता है. इससे पहले, प्लगिन ने एनडीके का डाउनलोड किया गया नया वर्शन चुना था. मॉड्यूल में android.ndkVersion प्रॉपर्टी का इस्तेमाल करें build.gradle फ़ाइल का इस्तेमाल करके, प्लग इन के चुने गए डिफ़ॉल्ट ब्राउज़र को बदला जा सकता है.

    आसान R क्लास जनरेशन

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

    • कंपाइलर, अपस्ट्रीम मॉड्यूल डिपेंडेंसी के साथ R क्लास शेयर करता है. इसलिए, यह ज़रूरी है कि आपके प्रोजेक्ट में हर मॉड्यूल, एक अलग पैकेज नाम का इस्तेमाल करे.
    • किसी लाइब्रेरी की R क्लास का अन्य प्रोजेक्ट डिपेंडेंसी के लिए उपलब्धता उस कॉन्फ़िगरेशन का इस्तेमाल करके तय किया जाता है जिसका इस्तेमाल करके, लाइब्रेरी को निर्भरता. उदाहरण के लिए, अगर लाइब्रेरी A में लाइब्रेरी B को 'एपीआई' के तौर पर शामिल किया गया है डिपेंडेंसी, लाइब्रेरी A और लाइब्रेरी A पर निर्भर दूसरी लाइब्रेरी में लाइब्रेरी B की R क्लास का ऐक्सेस. हालांकि, हो सकता है कि अन्य लाइब्रेरी के पास, लाइब्रेरी B की R क्लास का ऐक्सेस न हो. अगर लाइब्रेरी A implementation डिपेंडेंसी कॉन्फ़िगरेशन. ज़्यादा जानने के लिए, डिपेंडेंसी कॉन्फ़िगरेशन के बारे में पढ़ें.
    उन संसाधनों को हटाएं जो डिफ़ॉल्ट रूप से उपलब्ध नहीं हैं कॉन्फ़िगरेशन

    लाइब्रेरी मॉड्यूल के लिए, अगर आपने किसी ऐसी भाषा के लिए संसाधन शामिल किया है जिसे आपने संसाधनों के डिफ़ॉल्ट सेट में शामिल नहीं किया है—उदाहरण के लिए, अगर आपने /values-es/strings.xml में hello_world को स्ट्रिंग संसाधन के तौर पर शामिल किया है, लेकिन आपने उस संसाधन को /values/strings.xml में तय नहीं किया है—तो Android Gradle प्लग इन अब आपके प्रोजेक्ट को संकलित करते समय उस संसाधन को शामिल नहीं करता. इस बदलाव की वजह से, Resource Not Found रनटाइम एक्ससेप्शन कम होंगे और बिल्ड की स्पीड बेहतर होगी.

    D8 अब एनोटेशन के लिए, क्लास के डेटा के रखरखाव की नीति का पालन करता है

    आपके ऐप्लिकेशन को कंपाइल करते समय D8 अब ध्यान में रखता है कि एनोटेशन किस समय CLASS पर लागू होते हैं निजी डेटा के रखरखाव की नीति शामिल नहीं करती और वे एनोटेशन अब रनटाइम. ऐप्लिकेशन के टारगेट SDK टूल को इस पर सेट करने पर भी ऐसा ही होता है एपीआई लेवल 23, जिसने पहले इस दौरान इन एनोटेशन को ऐक्सेस करने की अनुमति दी थी 'Android Gradle के पुराने वर्शन' का इस्तेमाल करके, अपने ऐप्लिकेशन को कंपाइल करते समय रनटाइम प्लगिन और D8.

    व्यवहार में अन्य बदलाव
    • aaptOptions.noCompress अब केस-सेंसिटिव (बड़े और छोटे अक्षरों में अंतर) नहीं है प्लैटफ़ॉर्म (APK और बंडल दोनों के लिए) और उन पाथ का पालन करता है जिनका इस्तेमाल किया जाता है अंग्रेज़ी के बड़े अक्षरों का इस्तेमाल करें.
    • डेटा बाइंडिंग अब डिफ़ॉल्ट रूप से इंक्रीमेंटल (बढ़ने वाले) है. इस बारे में ज़्यादा जानने के लिए, यह देखें समस्या #110061530 है.

    • अब सभी यूनिट टेस्ट पूरी तरह से हो गए हैं. इनमें, रोबोइलेक्ट्रिक यूनिट टेस्ट भी शामिल हैं कैश करने लायक. ज़्यादा जानने के लिए, समस्या #115873047 देखें.

    बग समाधान

    Android Gradle प्लग इन के इस वर्शन में, गड़बड़ी ठीक करने के ये उपाय शामिल हैं:

    • Robolectric यूनिट टेस्ट अब उन लाइब्रेरी मॉड्यूल में काम करते हैं जिनका इस्तेमाल डेटा बाइंडिंग. इस बारे में ज़्यादा जानने के लिए, यह देखें समस्या #126775542 है.
    • अब आपके पास connectedAndroidTest टास्क चलाने का विकल्प है एक से ज़्यादा मॉड्यूल हो सकते हैं, जबकि Gradle समानांतर एक्ज़ीक्यूशन मोड चालू है.

    पहले से मालूम समस्याएं

    इस सेक्शन में, Android Gradle प्लग इन के 3.6.0 वर्शन में मौजूद समस्याओं के बारे में बताया गया है.

    Android लिंट टास्क की धीमी परफ़ॉर्मेंस

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

    इस समस्या को IDEA में मौजूद गड़बड़ी के तौर पर रिपोर्ट किया गया है. इसे Android Gradle प्लग इन 4.0 में ठीक कर दिया जाएगा.

    मेनिफ़ेस्ट क्लास {:#agp-missing-manifest} मौजूद नहीं है

    अगर आपका ऐप्लिकेशन अपने मेनिफ़ेस्ट में कस्टम अनुमतियां तय करता है, तो Android Gradle प्लग इन आम तौर पर Manifest.java क्लास जनरेट करता है, जो इसमें स्ट्रिंग कॉन्सटेंट के रूप में आपकी कस्टम अनुमतियां शामिल होती हैं. प्लग इन इस क्लास को आपके ऐप्लिकेशन के साथ पैकेज करता है, ताकि रनटाइम के दौरान उन अनुमतियों का रेफ़रंस आसानी से दिया जा सके.

    'Android Gradle प्लग इन 3.6.0' में मेनिफ़ेस्ट क्लास जनरेट करने में गड़बड़ी हुई है. अगर आपने प्लग इन के इस वर्शन का इस्तेमाल करके अपना ऐप्लिकेशन बनाया है और इसमें मेनिफ़ेस्ट क्लास का रेफ़रंस दिया गया है, तो आपको ClassNotFoundException अपवाद दिख सकता है. इस समस्या को हल करने के लिए, इनमें से कोई एक तरीका अपनाएं:

    • अपनी कस्टम अनुमतियों का रेफ़रंस देने के लिए, उनके नाम का इस्तेमाल करें जो सभी शर्तें पूरी करते हों. उदाहरण के लिए, "com.example.myapp.permission.DEADLY_ACTIVITY".

    • अपने स्थिरांक (कॉन्सटेंट) तय करें, जैसा कि यहां दिखाया गया है:

                  public final class CustomPermissions {
                    public static final class permission {
                      public static final String DEADLY_ACTIVITY="com.example.myapp.permission.DEADLY_ACTIVITY";
                    }
                  }
                  
                

    3.5.0 (अगस्त 2019)

    'Android Gradle प्लग इन 3.5.0' और 'Android Gradle प्लग इन' 3.5.0 Android Studio 3.5, एक बड़ी रिलीज़ है और प्रोजेक्ट मार्बल का नतीजा है. इस प्रोजेक्ट का मकसद तीन मुख्य चीज़ों को बेहतर बनाने पर Android डेवलपर टूल के क्षेत्रों में: सिस्टम हेल्थ, फ़ीचर पॉलिश, और गड़बड़ियां ठीक करना. खास तौर पर, प्रोजेक्ट को बेहतर बनाना बिल्ड स्पीड पर फ़ोकस किया गया था.

    इनके और अन्य Project Marble अपडेट के बारे में जानकारी के लिए, Android डेवलपर की ब्लॉग पोस्ट या नीचे दिए गए सेक्शन.

    Android प्लग इन के इस वर्शन के लिए इनकी ज़रूरत होती है:

    3.5.4 (जुलाई 2020)

    यह छोटा अपडेट, नई डिफ़ॉल्ट सेटिंग और सुविधाएँ पैकेज की विज़िबिलिटी Android 11 में उपलब्ध है.

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

    3.5.3 (दिसंबर 2019)

    यह मामूली अपडेट, Android Studio 3.5.3 के साथ काम करता है. इसमें कई गड़बड़ियां ठीक की गई हैं और परफ़ॉर्मेंस में सुधार किए गए हैं.

    3.5.2 (नवंबर 2019)

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

    3.5.1 (अक्टूबर 2019)

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

    इंक्रीमेंटल एनोटेशन प्रोसेसिंग

    डेटा बाइंडिंग एनोटेशन प्रोसेसर, इंक्रीमेंटल एनोटेशन प्रोसेसिंग अगर आप android.databinding.incremental=true को अपने gradle.properties फ़ाइल. इस ऑप्टिमाइज़ेशन से बेहतर नतीजे मिलते हैं बिल्ड परफ़ॉर्मेंस को बेहतर बनाएं. ऑप्टिमाइज़ की गई जानकारी की पूरी सूची के लिए प्रोसेसर, इंक्रीमेंटल एनोटेशन की टेबल देखें प्रोसेसर.

    इसके अलावा, KAPT 1.3.30 और उसके बाद के वर्शन में, इंक्रीमेंटल एनोटेशन भी काम करते हैं प्रोसेसर का इस्तेमाल करता है, जिसे आप kapt.incremental.apt=true को इनमें शामिल करके चालू कर सकते हैं आपकी gradle.properties फ़ाइल.

    कैश मेमोरी में सेव की जा सकने वाली यूनिट की जांच

    जब आप Android के संसाधनों, एसेट, और सेटिंग से मेनिफ़ेस्ट includeAndroidResources तो true में, 'Android Gradle प्लग इन' एक टेस्ट कॉन्फ़िगरेशन फ़ाइल जनरेट करता है इसमें ऐब्सलूट पाथ शामिल होते हैं, जिससे कैश मेमोरी में डेटा सेव होने की गड़बड़ी का पता चलता है. आपके पास, प्लग इन को रेलेटिव पाथ का इस्तेमाल करके टेस्ट कॉन्फ़िगरेशन जनरेट करने का निर्देश देने का विकल्प है. इससे AndroidUnitTest टास्क को पूरी तरह से कैश मेमोरी में सेव किया जा सकता है. इसके लिए, अपनी gradle.properties फ़ाइल में ये शामिल करें:

          android.testConfig.useRelativePath = true
        

    पहले से मालूम समस्याएं

    • Kotlin Gradle प्लग इन 1.3.31 या इससे पहले के वर्शन का इस्तेमाल करते समय, आपको नीचे दिया गया तरीका अपनाएं:

                WARNING: API 'variant.getPackageLibrary()' is obsolete and has been replaced
                        with 'variant.getPackageLibraryProvider()'.
                
              

      इस समस्या को ठीक करने के लिए, प्लग इन को 1.3.40 या इसके बाद के वर्शन पर अपग्रेड करें.

    3.4.0 (अप्रैल 2019)

    Android प्लग इन के इस वर्शन के लिए इनकी ज़रूरत होती है:

    3.4.3 (जुलाई 2020)

    यह छोटा अपडेट, नई डिफ़ॉल्ट सेटिंग और सुविधाएँ पैकेज की विज़िबिलिटी Android 11 में उपलब्ध है.

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

    3.4.2 (जुलाई 2019)

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

    3.4.1 (मई 2019)

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

    नई सुविधाएं

    • लिंट की जांच वाले नए डिपेंडेंसी कॉन्फ़िगरेशन: lintChecks के काम करने के तरीके में बदलाव हुआ है और एक नई डिपेंडेंसी है कॉन्फ़िगरेशन, lintPublish को पेश किया गया है. आपके पास इस बात का ज़्यादा कंट्रोल होता है कि आपके Android डिवाइस में कौन से लिंट चेक पैकेज किए जाएं लाइब्रेरी.

      • lintChecks: यह एक मौजूदा कॉन्फ़िगरेशन है आपको लिंट जांच के लिए इस्तेमाल करना चाहिए, जिसे आप स्थानीय रूप से प्रबंधित करें. अगर आप पहले लिंट को शामिल करने के लिए, lintChecks डिपेंडेंसी कॉन्फ़िगरेशन पब्लिश की गई AAR में जांच करता है, तो आपको उन डिपेंडेंसी को माइग्रेट करना होगा इसके बजाय, lintPublish के नए कॉन्फ़िगरेशन का इस्तेमाल करें जिनकी जानकारी नीचे दी गई है.
      • lintPublish: लाइब्रेरी में इस नए कॉन्फ़िगरेशन का इस्तेमाल करें के प्रोजेक्ट हैं, जिन्हें आप प्रकाशित AAR में शामिल करना चाहते हैं, जैसा कि नीचे दिखाया गया है. इसका मतलब है कि जो प्रोजेक्ट आपकी लाइब्रेरी का इस्तेमाल करते हैं उन लिंट जांचों को भी लागू करें.

      नीचे दिया गया कोड सैंपल, लोकल Android लाइब्रेरी प्रोजेक्ट से कनेक्ट किया जा सकता है.

      dependencies {
        // Executes lint checks from the ':lint' project at build time.
        lintChecks project(':lint')
        // Packages lint checks from the ':lintpublish' in the published AAR.
        lintPublish project(':lintpublish')
      }
              
      dependencies {
        // Executes lint checks from the ':lint' project at build time.
        lintChecks(project(":lint"))
        // Packages lint checks from the ':lintpublish' in the published AAR.
        lintPublish(project(":lintpublish"))
          }
              
      • आम तौर पर, पैकेजिंग और साइनिंग टास्क में पूरी परफ़ॉर्मेंस होनी चाहिए गति में सुधार हुआ. अगर आपको परफ़ॉर्मेंस रिग्रेशन की जानकारी मिलती है, तो इन कामों के लिए, कृपया गड़बड़ी की शिकायत करें.

    उपयोगकर्ता के व्यवहार में बदलाव

    • Android Instant Apps की सुविधाओं वाले प्लगिन को बंद किया जाना चेतावनी: अगर अब भी आपका झटपट ऐप्लिकेशन बनाने के लिए com.android.feature प्लगिन, 'Android Gradle प्लग इन 3.4.0' का इस्तेमाल करने पर, आपको बंद होने की चेतावनी मिलेगी. यह पक्का करने के लिए कि आप इसके आने वाले वर्शन पर अब भी अपना इंस्टैंट ऐप्लिकेशन बना सकें तो अपने इंस्टैंट ऐप्लिकेशन को डाइनैमिक सुविधा वाला प्लगिन, इससे इंस्टॉल किए गए और इंस्टैंट ऐप्लिकेशन, दोनों को पब्लिश किया जा सकता है जिसमें एक Android ऐप्लिकेशन बंडल है.

    • डिफ़ॉल्ट रूप से, R8 की सुविधा चालू रहती है: R8 में डिज़गरिंग, दोनों को इंटिग्रेट किया गया है. इन सुझावों का असर इंच बेहतरीन बिल्ड परफ़ॉर्मेंस सुधार किए गए हैं. R8 को 'Android Gradle प्लग इन 3.3.0' में पेश किया गया था और अब यह ऐप्लिकेशन और Android लाइब्रेरी प्रोजेक्ट, दोनों के लिए डिफ़ॉल्ट रूप से चालू हो जाता है प्लगिन 3.4.0 और इसके बाद के वर्शन का इस्तेमाल करके.

    नीचे दी गई इमेज में, R8 के आने से पहले, कॉम्पाइल करने की प्रोसेस के बारे में खास जानकारी दी गई है.

    R8 से पहले, ProGuard को डेक्सिंग से अलग तरीके से कंपाइल किया गया था और
              डिसुगरिंग.

    अब, R8, डिसुगरिंग, श्रिंकिंग, अस्पष्ट, ऑप्टिमाइज़ करने, और डेक्सिंग (D8) की सुविधा के साथ यह सब एक ही चरण में पूरा किया जाता है, जैसा कि नीचे दिखाया गया है.

    R8 की मदद से, डेकोड करने, छोटा करने, गुप्त करने, ऑप्टिमाइज़ करने, और
      डिकोड करने की प्रोसेस, एक ही कंपाइल चरण में पूरी की जाती है.

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

    अगर आपको R8 का इस्तेमाल करने में समस्या आ रही है, तो R8 के साथ काम करने के बारे में अक्सर पूछे जाने वाले सवाल यह देखने के लिए कि क्या आपकी समस्या का कोई समाधान है. अगर समाधान के बारे में जानकारी नहीं है, कृपया गड़बड़ी की शिकायत करें. अपने प्रोजेक्ट की gradle.properties फ़ाइल में इनमें से कोई एक लाइन जोड़कर, R8 को बंद किया जा सकता है:

          # Disables R8 for Android Library modules only.
          android.enableR8.libraries = false
          # Disables R8 for all modules.
          android.enableR8 = false
          
        

    ध्यान दें: अगर आपने किसी बिल्ड टाइप को सेट किया है, तो आपके ऐप्लिकेशन में useProguard से false मॉड्यूल की build.gradle फ़ाइल है, तो Android Gradle प्लग इन R8 का इस्तेमाल करता है उस बिल्ड टाइप के लिए आपके ऐप्लिकेशन के कोड को छोटा करेगा, भले ही आपको अपने प्रोजेक्ट की gradle.properties फ़ाइल में R8 को बंद करें.

    • ndkCompile का इस्तेमाल नहीं किया जा सकता: अब नेटिव लाइब्रेरी को कॉम्पाइल करने के लिए, ndkBuild का इस्तेमाल करने पर आपको बिल्ड करने से जुड़ी गड़बड़ी का मैसेज दिखेगा. इसके बजाय, अपने प्रोजेक्ट में C और C++ कोड जोड़ने के लिए, आपको CMake या ndk-build का इस्तेमाल करना चाहिए.

    पहले से मालूम समस्याएं

    • फ़िलहाल, यूनीक पैकेज के नामों का सही इस्तेमाल करना ज़रूरी नहीं है. हालांकि, प्लग इन के नए वर्शन में इसकी ज़रूरत होगी. Android पर Gradle प्लग इन वर्शन 3.4.0 तो, आप ऑप्ट-इन करके यह देख सकते हैं कि प्रोजेक्ट आपकी gradle.properties फ़ाइल.

                android.uniquePackageNames = true
                
              

      'Android Gradle' की मदद से पैकेज का नाम सेट करने के बारे में ज़्यादा जानने के लिए प्लगिन, देखें ऐप्लिकेशन आईडी सेट करें.

    3.3.0 (जनवरी 2019)

    Android प्लग इन के इस वर्शन के लिए, ये ज़रूरी हैं:

    3.3.3 (जुलाई 2020)

    यह छोटा अपडेट, नई डिफ़ॉल्ट सेटिंग और सुविधाएँ पैकेज की विज़िबिलिटी Android 11 में उपलब्ध है.

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

    3.3.2 (मार्च 2019)

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

    3.3.1 (फ़रवरी 2019)

    यह मामूली अपडेट, Android Studio 3.3.1 के साथ काम करता है. इसमें कई गड़बड़ियां ठीक की गई हैं और परफ़ॉर्मेंस को बेहतर बनाया गया है.

    नई सुविधाएं

    • क्लासपाथ के सिंक होने की बेहतर सुविधा: समस्या को हल करते समय यह आपके रनटाइम और टाइम क्लासपाथ पर निर्भर करता है, Gradle प्लग इन, डाउनस्ट्रीम वर्शन के कुछ विवादों को ठीक करने की कोशिश करता है डिपेंडेंसी जो कई क्लास पाथ पर दिखती हैं.

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

      हालांकि, अगर रनटाइम क्लासपाथ में लाइब्रेरी A का वर्शन 1.0 और कंपाइल में लाइब्रेरी A वर्शन 2.0 शामिल है, प्लगिन क्लासपाथ को लाइब्रेरी A के वर्शन 1.0 में कंपाइल करें और आपको कोई गड़बड़ी हुई है. इस बारे में ज़्यादा जानने के लिए, यह देखें समस्याओं को हल करना क्लास पाथ के बीच तय सीमा से ज़्यादा नहीं होना चाहिए.

    • व्याख्या का इस्तेमाल करते समय बेहतर इंक्रीमेंटल Java कंपाइलेशन प्रोसेसर: यह अपडेट इंंक्रीमेंटल Java के लिए सपोर्ट को बेहतर बनाकर बिल्ड समय को कम करता है तो जानकारी इकट्ठा करने की सुविधा मिलती है.

      ध्यान दें: यह सुविधा Gradle 4.10.1 और इसके बाद के वर्शन के साथ काम करती है. हालांकि, Gradle के 8194 से जुड़ी समस्या की वजह से, यह सुविधा Gradle 5.1 के साथ काम नहीं करती.

      • Kapt का इस्तेमाल करने वाले प्रोजेक्ट के लिए (सिर्फ़ Kotlin वाले ज़्यादातर प्रोजेक्ट और Kotlin-Java हाइब्रिड प्रोजेक्ट): डेटा बाइंडिंग या रेट्रो-लैम्ब्डा प्लग इन का इस्तेमाल करने पर भी, Java का इंक्रीमेंटल कंपाइलेशन चालू होता है. Kapt टास्क के ज़रिए जानकारी देने की प्रक्रिया में अभी तक बढ़ोतरी नहीं हुई है.

      • kapt (सिर्फ़ Java प्रोजेक्ट) का इस्तेमाल न करने वाले प्रोजेक्ट के लिए: अगर आपके इस्तेमाल किए जाने वाले एनोटेशन प्रोसेसर इंक्रीमेंटल एनोटेशन प्रोसेसिंग, इंंक्रीमेंटल Java कम्पाइलेशन डिफ़ॉल्ट रूप से चालू रहता है. एनोटेशन प्रोसेसर के इस्तेमाल में बढ़ोतरी पर नज़र रखने के लिए, Gradle की समस्या 5277 देखें.

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

        android.enableSeparateAnnotationProcessing=true
                    

        जब आप इस फ़्लैग को शामिल करते हैं, तो 'Android Gradle प्लग इन' एनोटेशन प्रोसेसर को किसी अलग टास्क में शामिल करते हैं और Java को कंपाइलेशन करने की अनुमति देते हैं बढ़ाने के लिए किया जा सकता है.

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

                android.debug.obsoleteApi=true
              

      आप पास करके भी फ़्लैग सक्षम कर सकते हैं -Pandroid.debug.obsoleteApi=true अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है कमांड लाइन से.

    • कमांड लेवल से, फ़ीचर मॉड्यूल पर इंस्ट्रुमेंटेशन टेस्ट चलाए जा सकते हैं लाइन.

    उपयोगकर्ता के व्यवहार में बदलाव

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

      वैरिएंट एपीआई में कुछ पुराने तरीकों को कॉल करने पर, अब भी टास्क कॉन्फ़िगरेशन को फ़ोर्स किया जा सकता है. जैसे, variant.getJavaCompile(). यह पक्का करने के लिए कि आपका बिल्ड, टास्क के लेज़ी कॉन्फ़िगरेशन के लिए ऑप्टिमाइज़ किया गया है, ऐसे नए तरीके लागू करें जो variant.getJavaCompileProvider() जैसे TaskProvider ऑब्जेक्ट दिखाते हैं.

      अगर आपने कस्टम बिल्ड टास्क बनाए हैं, तो Gredle के नए टास्क-क्रिएशन एपीआई के मुताबिक काम करता है.

    • किसी बिल्ड टाइप के लिए, useProguard false को सेट करने पर, अभी प्लगिन आपके ऐप्लिकेशन के कोड को छोटा और अस्पष्ट बनाने के लिए, ProGuard के बजाय R8 का इस्तेमाल करता है और संसाधन. R8 के बारे में ज़्यादा जानने के लिए, पढ़ें यह ब्लॉग पोस्ट देखें.

    • लाइब्रेरी प्रोजेक्ट के लिए तेज़ी से R क्लास जनरेट करना: पहले, Android Gradle प्लग इन आपके हर प्रोजेक्ट के लिए R.java फ़ाइल जनरेट करेगा डिपेंडेंसी और फिर उन R क्लास को अपने ऐप्लिकेशन की अन्य क्लास के साथ कंपाइल करें क्लास. प्लगिन अब एक JAR जनरेट करता है, जिसमें आपके ऐप्लिकेशन की कंपाइल की गई R क्लास शामिल होती है सीधे तौर पर, इंटरमीडिएट R.java क्लास नहीं बनाने पर. इस ऑप्टिमाइज़ेशन से, उन प्रोजेक्ट के लिए बिल्ड की परफ़ॉर्मेंस काफ़ी बेहतर हो सकती है जिनमें कई लाइब्रेरी सब-प्रोजेक्ट और डिपेंडेंसी शामिल हैं. साथ ही, Android Studio में इंडेक्स करने की स्पीड भी बेहतर हो सकती है.

    • Android ऐप्लिकेशन बंडल बनाते समय, Android 6.0 (एपीआई लेवल 23) या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन बंडल से जनरेट किए गए APK में, अब डिफ़ॉल्ट रूप से आपकी नेटिव लाइब्रेरी के बिना कंप्रेस किए गए वर्शन शामिल होते हैं. यह ऑप्टिमाइज़ेशन इससे डिवाइस को लाइब्रेरी की कॉपी बनाने की ज़रूरत नहीं पड़ती. इससे यह कॉन्टेंट कम हो जाता है आपके ऐप्लिकेशन की डिस्क का साइज़. अगर आप इस ऑप्टिमाइज़ेशन को बंद करना चाहते हैं, तो जोड़ें आपकी gradle.properties फ़ाइल को दिया गया को:

      android.bundle.enableUncompressedNativeLibs = false
              
    • यह प्लग इन, तीसरे पक्ष के कुछ प्लग इन के कम से कम वर्शन लागू करता है.

    • सिंगल-वैरिएंट प्रोजेक्ट सिंक करना: अपने प्रोजेक्ट को अपने बिल्ड कॉन्फ़िगरेशन के साथ सिंक करना, Android Studio को यह समझने में मदद करने के लिए एक अहम चरण है कि आपके प्रोजेक्ट का स्ट्रक्चर कैसा है. हालांकि, बड़े प्रोजेक्ट के लिए, इस प्रोसेस में काफ़ी समय लग सकता है. अगर आपके प्रोजेक्ट में एक से ज़्यादा बिल्ड का इस्तेमाल होता है वैरिएंट हैं, तो अब प्रोजेक्ट सिंक करने की प्रोसेस को ऑप्टिमाइज़ करने के लिए, उन्हें सिर्फ़ वैरिएंट को चुनें जिसे आपने फ़िलहाल चुना है.

      आपको Android Gradle प्लग इन 3.3.0 के साथ Android Studio 3.3 या इसके बाद वाले वर्शन का इस्तेमाल करना होगा या इससे ज़्यादा का इस्तेमाल करें. ये ज़रूरी शर्तें पूरी करने पर, अपने प्रोजेक्ट को सिंक करने पर, IDE आपको इस ऑप्टिमाइज़ेशन को चालू करने का निर्देश देता है. कॉन्टेंट बनाने नए प्रोजेक्ट के लिए ऑप्टिमाइज़ेशन डिफ़ॉल्ट रूप से चालू होता है.

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

      ध्यान दें: यह ऑप्टिमाइज़ेशन, उन प्रोजेक्ट के साथ पूरी तरह काम करता है जिनमें Java और C++ भाषाएं शामिल होती हैं. साथ ही, यह Kotlin के साथ भी कुछ हद तक काम करता है. चालू करते समय Kotlin कॉन्टेंट वाले प्रोजेक्ट को ऑप्टिमाइज़ करने के साथ ही, Gradle सिंक अपने-आप लागू हो जाता है में पूरी वैरिएंट इस्तेमाल नहीं कर पाएंगे.

    • जो SDK टूल मौजूद नहीं हैं उनके पैकेज अपने-आप डाउनलोड होने की सुविधा: इस सुविधा में एनडीके के साथ काम करने के लिए विस्तार किया गया. इस बारे में ज़्यादा जानने के लिए, पढ़ें अपने-आप डाउनलोड होने की सुविधा मौजूद नहीं है Gradle के साथ कई पैकेज उपलब्ध कराता है.

    गड़बड़ियां ठीक की गईं

    • Android Gradle प्लग इन 3.3.0 में ये समस्याएं ठीक की गई हैं:

      • android.support.v8.renderscript.RenderScript को कॉल करने की बिल्ड प्रोसेस AndroidX वर्शन के बजाय, Jetifier चालू होने के बावजूद
      • androidx-rs.jar की वजह से हुई मुकाबला. इनमें, स्टैटिक तरीके से बंडल किए गए आइटम भी शामिल हैं annotation.AnyRes
      • RenderScript का इस्तेमाल करते समय, आपको अब बिल्ड टूल को मैन्युअल रूप से सेट करने की ज़रूरत नहीं है आपकी build.gradle फ़ाइलों का वर्शन

    3.2.0 (सितंबर 2018)

    Android प्लग इन के इस वर्शन के लिए इनकी ज़रूरत होती है:

    3.2.1 (अक्टूबर 2018)

    इस अपडेट के बाद, आपको SDK टूल के लिए कोई वर्शन बताने की ज़रूरत नहीं है. 'Android Gradle प्लग इन' अब डिफ़ॉल्ट रूप से 28.0.3 वर्शन का इस्तेमाल करता है.

    नई सुविधाएं

    • Android ऐप्लिकेशन बंडल बनाने के लिए सहायता: ऐप्लिकेशन बंडल, अपलोड किया गया नया ऐप्लिकेशन है फ़ॉर्मैट जिसमें आपके ऐप्लिकेशन के इकट्ठा किए गए सभी कोड और संसाधन शामिल होते हैं APK जनरेट करना और Google Play Store में साइन इन करना टालना. अब आप नहीं हमें एक से ज़्यादा APKs बनाने, साइन करने, और मैनेज करने की ज़रूरत पड़ती है. इससे, लोगों को कम फ़ाइलें डाउनलोड करनी पड़ती हैं जो उनके डिवाइस के लिए ऑप्टिमाइज़ किए गए हैं. ज़्यादा जानने के लिए, Android ऐप्लिकेशन बंडल के बारे में जानकारी लेख पढ़ें.

    • एनोटेशन प्रोसेसर का इस्तेमाल करते समय, बिल्ड की रफ़्तार को बेहतर बनाने में मदद मिलती है: AnnotationProcessorOptions DSL अब CommandLineArgumentProvider को बढ़ा दिया गया है, इसकी मदद से, आपको या एनोटेशन प्रोसेसर लेखक को तर्क का इस्तेमाल करें, इंक्रीमेंटल बिल्ड प्रॉपर्टी टाइप एनोटेशन. इन एनोटेशन का इस्तेमाल करने से, सटीक नतीजे हासिल होते हैं और परफ़ॉर्मेंस बेहतर होती है इंक्रीमेंटल और कैश मेमोरी में सेव किए गए क्लीन बिल्ड. इस बारे में ज़्यादा जानने के लिए, पढ़ें एनोटेशन प्रोसेसर पर आर्ग्युमेंट पास करें.

    • AndroidX के लिए माइग्रेशन टूल: जब 'Android Gradle प्लग इन 3.2.0' का इस्तेमाल किया जा रहा हो Android 3.2 और इसके बाद के वर्शन की मदद से, अपने प्रोजेक्ट के लोकल और Maven को माइग्रेट किया जा सकता है नई AndroidX लाइब्रेरी का इस्तेमाल करने के लिए, Refactor > मेन्यू बार से AndroidX पर माइग्रेट करें. माइग्रेशन टूल का इस्तेमाल करने पर, आपकी gradle.properties फ़ाइल में ये फ़्लैग भी true पर सेट हो जाते हैं:

      • android.useAndroidX: true पर सेट होने पर, Android प्लगिन का इस्तेमाल करने के लिए किया जा सकता है. जब यह फ़्लैग मौजूद नहीं है, तो प्लग इन इसे डिफ़ॉल्ट रूप से false पर सेट करता है.

      • android.enableJetifier: true पर सेट होने पर, Android प्लगिन इससे AndroidX का इस्तेमाल करने के लिए मौजूदा तीसरे पक्ष की लाइब्रेरी को अपने-आप माइग्रेट कर दिया जाता है अपनी बाइनरी को लिखो. अगर इस फ़्लैग की वैल्यू नहीं दी जाती है, तो प्लग इन इसे डिफ़ॉल्ट रूप से false पर सेट कर देता है. आप इस फ़्लैग को true पर सिर्फ़ तब सेट कर सकते हैं, जब android.useAndroidX को भी true पर सेट किया जाता है. ऐसा न करने पर, आपको बिल्ड से जुड़ी गड़बड़ी मिलेगी.

        ज़्यादा जानने के लिए, AndroidX की खास जानकारी पढ़ें.

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

              android.enableR8 = true
              
              android.enableR8 = true
              

    व्यवहार में बदलाव

    • D8 की मदद से, शर्करा हटाने की सुविधा अब डिफ़ॉल्ट रूप से चालू है.

    • AAPT2 अब 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()
                  }
                
    • नेटिव मल्टीडेक्स अब डिफ़ॉल्ट रूप से चालू है. Android Studio के पिछले वर्शन में, किसी ऐप्लिकेशन के डीबग वर्शन को Android API लेवल 21 या उसके बाद के वर्शन पर चलने वाले डिवाइस पर डिप्लॉय करते समय, नेटिव मल्टीडेक्स की सुविधा चालू होती थी. अब, डिवाइस पर डिप्लॉय करने या रिलीज़ के लिए APK बनाने के दौरान, Android Gradle प्लग इन उन सभी मॉड्यूल के लिए नेटिव मल्टीडेक्स को चालू कर देता है जिनमें minSdkVersion=21 या इसके बाद का वर्शन सेट किया गया है.

    • प्लगिन अब प्रोटोबफ़ प्लग इन का कम से कम वर्शन (0.8.6) लागू करता है, Kotlin प्लगिन (1.2.50) और Crashlytics प्लगिन (1.25.4).

    • फ़ीचर मॉड्यूल प्लगिन,com.android.feature, अब यह नीति तय करते समय सिर्फ़ अक्षरों, अंकों, और अंडरस्कोर का इस्तेमाल करती है मॉड्यूल का नाम. उदाहरण के लिए, अगर आपके फ़ीचर मॉड्यूल के नाम में डैश शामिल हैं, तो आपको बिल्ड से जुड़ी गड़बड़ी का मैसेज मिलेगा. यह व्यवहार, डाइनैमिक फ़ीचर प्लग इन के व्यवहार से मेल खाता है.

    बग समाधान

    • डेटा बाइंडिंग वाले प्रोजेक्ट में, JavaCompile को अब कैश मेमोरी में सेव किया जा सकता है. (समस्या #69243050)
    • डेटा बाइंडिंग वाले लाइब्रेरी मॉड्यूल के लिए, बेहतर तरीके से कंपाइल करने से बचना. (समस्या #77539932)
    • अब आप इसे फिर से चालू कर सकते हैं मांग पर कॉन्फ़िगर करें जिसे पहले के वर्शन में बंद कर दिया गया था, क्योंकि बिल्ड से जुड़ी गड़बड़ियां शामिल हैं. (समस्या #77910727)

    3.1.0 (मार्च 2018)

    Android प्लग इन के इस वर्शन के लिए, ये ज़रूरी हैं:

    • Gradle 4.4 या इसके बाद का वर्शन.

      इस बारे में ज़्यादा जानने के लिए, Gredle को अपडेट किया जा रहा है.

    • टूल बनाने वाले 27.0.3 या इसके बाद के वर्शन होना चाहिए.

      ध्यान रखें कि अब आपको बिल्ड के लिए कोई वर्शन तय करने की ज़रूरत नहीं है android.buildToolsVersion प्रॉपर्टी का इस्तेमाल करने वाले टूल— प्लगिन डिफ़ॉल्ट रूप से आवश्यक कम से कम वर्शन का उपयोग करता है.

    नया DEX कंपाइलर, D8

    Android Studio अब डिफ़ॉल्ट रूप से, D8 नाम के नए DEX कंपाइलर का इस्तेमाल करता है. डेक्स कंपाइलेशन, .class बाइटकोड को Android रनटाइम के लिए .dex बाइट कोड (या पुराने वर्शन के लिए Delvik) Android के अलग-अलग वर्शन पर भी काम करता है. DX नाम के पिछले कंपाइलर की तुलना में, D8 यह तेज़ी से कंपाइल करता है और छोटी DEX फ़ाइलों को आउटपुट के तौर पर उपलब्ध कराता है, जबकि सभी ऐप्लिकेशन रनटाइम की बेहतर परफ़ॉर्मेंस मिलेगी.

    D8 को ऐप्लिकेशन डेवलप करने के हर दिन के वर्कफ़्लो में बदलाव नहीं करना चाहिए. हालांकि, अगर अगर आपको नए कंपाइलर से जुड़ी कोई समस्या आ रही है, तो कृपया गड़बड़ी की शिकायत करें. आप कुछ समय के लिए D8 बंद करें और अपने प्रोजेक्ट के gradle.properties फ़ाइल:

          android.enableD8=false
        

    ऐसे प्रोजेक्ट के लिए Java 8 भाषा की सुविधाओं का इस्तेमाल करते हैं, इंक्रीमेंटल कस्टमाइज़िंग डिफ़ॉल्ट रूप से चालू होती है. इसे बंद करने के लिए यह तरीका अपनाएं: आपके प्रोजेक्ट की gradle.properties फ़ाइल में यह जानकारी शामिल करती है:

          android.enableIncrementalDesugaring=false.
        

    झलक देखने वाले उपयोगकर्ता: अगर आपने पहले से ही D8 के झलक वाले वर्शन का इस्तेमाल किया जा रहा है, तो ध्यान दें कि अब यह JDK के बजाय, SDK टूल के साथ काम करने वाली लाइब्रेरी के हिसाब से कॉम्पाइल होता है. इसलिए, अगर ऐसे एपीआई ऐक्सेस किए जा रहे हैं जो JDK में मौजूद हैं, लेकिन SDK बिल्ड में नहीं हैं टूल लाइब्रेरी का इस्तेमाल करने पर, आपको कंपाइल गड़बड़ी मिलती है.

    व्यवहार में बदलाव

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

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

                splits {
                    abi {
                        include 'armeabi', 'mips', 'mips64'
                        ...
                    }
                }
              
                splits {
                    abi {
                        include("armeabi", "mips", "mips64")
                        ...
                    }
                }
              
    • Android प्लग इन का बिल्ड कैश मेमोरी, अब 30 दिन से ज़्यादा पुरानी कैश मेमोरी एंट्री को हटा देता है.

    • "auto" को यहां भेजा जा रहा है resConfig अब आपके APK में पैकेज करने के लिए स्ट्रिंग संसाधनों को अपने आप नहीं चुनता. अगर आप "auto" का इस्तेमाल जारी रखते हैं, तो प्लगिन सभी स्ट्रिंग को पैकेज करेगा आपके ऐप्लिकेशन और उसकी डिपेंडेंसी के हिसाब से उपलब्ध संसाधन. इसलिए, आपको इसके बजाय, हर उस स्थानीय भाषा के लिए जानकारी देनी चाहिए जिसे आपको प्लग इन के साथ अपने APK में पैकेज करना है.

    • स्थानीय मॉड्यूल आपके ऐप्लिकेशन के परीक्षण APK पर निर्भर नहीं हो सकते हैं, इसलिए स्थानीय मॉड्यूल जोड़ने पर आपके इंस्ट्रुमेंट वाले टेस्ट पर डिपेंडेंसी इसके बजाय, androidTestApi कॉन्फ़िगरेशन का इस्तेमाल करें androidTestImplementation की वजह से Gradle, निम्न चेतावनी:

              WARNING: Configuration 'androidTestApi' is obsolete
              and has been replaced with 'androidTestImplementation'
              
              WARNING: Configuration 'androidTestApi' is obsolete
              and has been replaced with 'androidTestImplementation'
              

    समाधान

    • उस समस्या को ठीक करता है जिसकी वजह से Android Studio, कंपोज़िट बिल्ड में डिपेंडेंसी.
    • उस समस्या को ठीक करता है जिसकी वजह से, एक ही बिल्ड में कई बार Android प्लगिन. उदाहरण के लिए, कई बार Android प्लगिन सब-प्रोजेक्ट के हर प्रोजेक्ट की बिल्डस्क्रिप्ट में Android प्लगिन शामिल होता है क्लासपाथ का इस्तेमाल करें.

    3.0.0 (अक्टूबर 2017)

    'Android Gradle प्लग इन 3.0.0' में कई तरह के बदलाव शामिल हैं जिनका मकसद बड़े प्रोजेक्ट की परफ़ॉर्मेंस से जुड़ी समस्याओं को हल करने के लिए किया जाता है.

    उदाहरण के लिए, स्केलेटन का सैंपल प्रोजेक्ट, जिसमें ~130 मॉड्यूल और कई बाहरी डिपेंडेंसी शामिल हैं (इसमें कोई कोड या रिसॉर्स नहीं है), लेकिन परफ़ॉर्मेंस बेहतर हो सकती है इनसे मिलता-जुलता:

    Android प्लगिन वर्शन + Gradle वर्शन Android प्लग इन 2.2.0 + Gradle 2.14.1 Android प्लग इन 2.3.0 + Gradle 3.3 Android प्लग इन 3.0.0 + Gradle 4.1
    कॉन्फ़िगरेशन (उदाहरण के लिए, ./gradlew --help को चलाना) ~2 मिनट ~9 सेकंड ~2.5 सेकंड
    एक लाइन का Java बदलाव (लागू करने के तरीके में बदलाव) ~2 मिनट 15 सेकंड ~29 सेकंड ~6.4 सेकंड

    इनमें से कुछ बदलाव मौजूदा बिल्ड में गड़बड़ी करते हैं. इसलिए, आपको\ तो माइग्रेशन की प्रोसेस पूरी हो जाएगी.

    अगर आपको परफ़ॉर्मेंस में ऊपर बताए गए सुधार नहीं दिख रहे हैं, तो कृपया गड़बड़ी की शिकायत करें और उसका इस्तेमाल करके अपने बिल्ड का ट्रेस शामिल करें Gradle प्रोफ़ाइलर.

    Android प्लग इन के इस वर्शन के लिए, ये ज़रूरी हैं:

    • Gredle 4.1 या उससे ज़्यादा. ज़्यादा जानने के लिए, Gradle को अपडेट करने के बारे में सेक्शन पढ़ें.
    • टूल 26.0.2 या उससे ज़्यादा. इस अपडेट के बाद, आपको अब बिल्ड टूल के लिए कोई वर्शन बताने की ज़रूरत नहीं है. प्लग इन, डिफ़ॉल्ट रूप से ज़रूरी वर्शन का इस्तेमाल करता है. इसलिए, अब android.buildToolsVersion प्रॉपर्टी को हटाया जा सकता है.

    3.0.1 (नवंबर 2017)

    यह Android Studio 3.0.1 पर काम करने के लिए एक मामूली अपडेट है. इसमें सामान्य अपडेट शामिल है गड़बड़ियां ठीक की गईं और परफ़ॉर्मेंस को बेहतर बनाया गया.

    ऑप्टिमाइज़ेशन

    • बेहतर तरीके से कई मॉड्यूल वाले प्रोजेक्ट के लिए, टास्क ग्राफ़ के ज़रिए एक साथ कई काम करने की सुविधा.
    • डिपेंडेंसी में बदलाव करते समय, Gradle, तेज़ी से बिल्ड करता है ऐसे मॉड्यूल को फिर से कंपाइल करना जिन्हें उस डिपेंडेंसी के एपीआई का ऐक्सेस नहीं है. आपको यह तय करना चाहिए कि कौनसी डिपेंडेंसी, दूसरे मॉड्यूल को अपने एपीआई को लीक करें. इसके लिए, Gradle के नए डिपेंडेंसी कॉन्फ़िगरेशन का इस्तेमाल करें: implementation, api, compileOnly, और runtimeOnly.
    • हर क्लास के हिसाब से डेक्सिंग की वजह से, बिल्ड की स्पीड तेज़ी से बढ़ती है. अब हर क्लास को अलग-अलग DEX फ़ाइलों में संकलित किया जाता है. साथ ही, सिर्फ़ उन क्लास को फिर से डीईएक्स किया जाता है जिनमें बदलाव किया गया है. आपको उन ऐप्लिकेशन के लिए भी बेहतर बिल्ड स्पीड दिख सकती है जो minSdkVersion को 20 या उससे कम पर सेट करते हैं और लेगसी मल्टी-डेक्स का इस्तेमाल करते हैं.
    • बिल्ड की स्पीड को बेहतर बनाया गया है. इसके लिए, कुछ टास्क को ऑप्टिमाइज़ करके चाच वाले आउटपुट का इस्तेमाल किया जाता है. इस ऑप्टिमाइज़ेशन का फ़ायदा पाने के लिए, Gredle बिल्ड कैश चालू करें.
    • AAPT2 का इस्तेमाल करके, संसाधनों को बेहतर तरीके से इंक्रीमेंटल प्रोसेस किया जा सकता है. यह सुविधा अब डिफ़ॉल्ट रूप से चालू है. अगर आपको AAPT2 इस्तेमाल करते समय कोई समस्या आ रही है, कृपया गड़बड़ी की शिकायत करें. आपके पास अपनी gradle.properties फ़ाइल में android.enableAapt2=false सेट करके, AAPT2 को बंद करने का विकल्प भी है. इसके अलावा, कमांड लाइन से ./gradlew --stop चलाकर, Gradle डेमन को फिर से शुरू किया जा सकता है.

    नई सुविधाएं

    • वैरिएंट अवेयर डिपेंडेंसी मैनेजमेंट. मॉड्यूल का कोई खास वैरिएंट बनाते समय, अब प्लगिन लोकल लाइब्रेरी मॉड्यूल डिपेंडेंसी के वैरिएंट से अपने-आप .
    • इसमें एक नया सुविधा मॉड्यूल प्लग इन शामिल है, ताकि Android इंस्टैंट ऐप्लिकेशन और Android इंस्टैंट ऐप्लिकेशन SDK टूल के साथ काम किया जा सके. SDK टूल को SDK मैनेजर का इस्तेमाल करके डाउनलोड किया जा सकता है. नए प्लग इन की मदद से फ़ीचर मॉड्यूल बनाने के बारे में ज़्यादा जानने के लिए, पढ़ें किसी स्ट्रक्चर का स्ट्रक्चर कई सुविधाओं वाला इंस्टैंट ऐप्लिकेशन.
    • कुछ Java 8 भाषा सुविधाओं और Java 8 के उपयोग के लिए अंतर्निहित समर्थन लाइब्रेरी. Jack अब काम नहीं करता और इसकी ज़रूरत भी नहीं है. साथ ही, डिफ़ॉल्ट टूलचेन में पहले से मौजूद बेहतर Java 8 सपोर्ट का इस्तेमाल करने के लिए, आपको पहले Jack को बंद करना चाहिए. ज़्यादा जानकारी के लिए, पढ़ें Java 8 भाषा की सुविधाओं का इस्तेमाल करें.
    • इसके साथ टेस्ट चलाने के लिए सहायता जोड़ी गई Android टेस्ट ऑर्केस्ट्रेटर की मदद से, ऐप्लिकेशन के हर टेस्ट को इंस्ट्रुमेंटेशन को खुद शुरू करने की कोशिश कर रहा है. ऐसा इसलिए, क्योंकि हर टेस्ट अपने-आप होता है इंस्ट्रुमेंटेशन इंस्टेंस, टेस्ट के बीच शेयर की गई कोई भी स्थिति इकट्ठा नहीं होती आपके डिवाइस के सीपीयू या मेमोरी पर काम करता है. साथ ही, अगर कोई टेस्ट क्रैश हो जाता है, तब भी उसे इंस्ट्रुमेंटेशन का सिर्फ़ अपना इंस्टेंस होता है, ताकि आपके दूसरे टेस्ट अब भी चलते रहें.

      • इस्तेमाल करने या न करने के बारे में तय करने के लिए, testOptions.execution को जोड़ा गया डिवाइस पर टेस्ट ऑर्केस्ट्रेशन. अगर आपको इस्तेमाल करें Android Test ऑर्केस्ट्रार के साथ काम करता है, तो आपको ANDROID_TEST_ORCHESTRATOR, जैसा कि नीचे दिखाया गया है. डिफ़ॉल्ट रूप से, यह प्रॉपर्टी HOST पर सेट होती है. इससे डिवाइस पर ऑर्केस्ट्रेशन बंद हो जाता है. यह टेस्ट चलाने का स्टैंडर्ड तरीका है.

      Groovy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • androidTestUtil डिपेंडेंसी कॉन्फ़िगरेशन के नए वर्शन की मदद से, जांच करने वाले टूल के टेस्ट चलाने से पहले, Android Test Orchestrator जैसे किसी अन्य टेस्ट हेल्पर APK को इंस्टॉल किया जा सकता है:

      Groovy

              dependencies {
                androidTestUtil 'com.android.support.test:orchestrator:1.0.0'
                ...
              }
              

      Kotlin

              dependencies {
                androidTestUtil("com.android.support.test:orchestrator:1.0.0")
                ...
              }
              
    • testOptions.unitTests.includeAndroidResources को इसमें जोड़ा गया में ऐसी सहायता यूनिट की जांच की सुविधा चालू होती है जिसके लिए Android संसाधनों की ज़रूरत होती है, जैसे कि रोबोइलेक्ट्रिक. इसे कब सेट किया जाता है प्रॉपर्टी को true प्रॉपर्टी के साथ जोड़ा जाता है, तो प्लग इन संसाधन, एसेट, और मेनिफ़ेस्ट मर्ज करना हो. इसके बाद, आपकी जांच से com/android/tools/test_config.properties की जांच करें नीचे दी गई कुंजियों के लिए क्लासपाथ इस्तेमाल करें:

      • android_merged_assets: इसका ऐब्सलूट पाथ मर्ज की गई ऐसेट डायरेक्ट्री.

        ध्यान दें: लाइब्रेरी मॉड्यूल के लिए, मर्ज की गई ऐसेट इसमें डिपेंडेंसी की एसेट शामिल नहीं हैं (देखें समस्या #65550419) है.

      • android_merged_manifest: इसका ऐब्सलूट पाथ मर्ज की गई मेनिफ़ेस्ट फ़ाइल.

      • android_merged_resources: मर्ज की गई रिसॉर्स डायरेक्ट्री का पूरा पाथ, जिसमें मॉड्यूल के सभी रिसॉर्स और उसकी सभी डिपेंडेंसी शामिल होती हैं.

      • android_custom_package: फ़ाइनल आर क्लास का नाम. यदि आप डायनामिक रूप से ऐप्लिकेशन आईडी संशोधित करते हैं तो यह पैकेज का नाम, शायद यहां दी गई package एट्रिब्यूट से मेल न खाए के तौर पर डिलीवर हो जाएगा.

    • फ़ॉन्ट के लिए सहायता संसाधनों के तौर पर (यह एक नई सुविधा है, जिसे Android 8.0 (एपीआई लेवल 26)).
    • अलग-अलग भाषा के हिसाब से बनाए गए APKs के लिए, Android Instant Apps SDK 1.1 और इसके बाद के वर्शन.
    • अब अपने एक्सटर्नल नेटिव बिल्ड के लिए आउटपुट डायरेक्ट्री बदली जा सकती है प्रोजेक्ट, जैसा कि नीचे दिखाया गया है:

      ग्रूवी

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory "./outputs/cmake"
                      }
                  }
              }
              

      Kotlin

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory = "./outputs/cmake"
                      }
                  }
              }
              
    • अब ये काम किए जा सकते हैं CMake 3.7 या Android Studio से नेटिव प्रोजेक्ट बनाते समय.
    • lintChecks डिपेंडेंसी कॉन्फ़िगरेशन के नए वर्शन की मदद से, ऐसा JAR बनाया जा सकता है जिसमें कस्टम लिंट नियम तय किए जाते हैं. साथ ही, इसे अपने AAR और APK प्रोजेक्ट में पैकेज किया जा सकता है.

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

      ग्रूवी

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks project(':lint-checks')
              }
              

      Kotlin

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks(project(":lint-checks"))
              }
              

    व्यवहार में बदलाव

    • Android प्लग इन 3.0.0 में कुछ एपीआई हटा दिए गए हैं. अगर इनका इस्तेमाल किया जाता है, तो आपका बिल्ड काम नहीं करेगा. उदाहरण के लिए, अब वैरिएंट एपीआई का इस्तेमाल इन कामों के लिए नहीं किया जा सकता outputFile() ऑब्जेक्ट ऐक्सेस करें या इसका इस्तेमाल करें मेनिफ़ेस्ट फ़ाइल पाने के लिए processManifest.manifestOutputFile() . ज़्यादा जानने के लिए, पढ़ें एपीआई में हुए बदलाव.
    • अब आपको बिल्ड टूल के लिए कोई वर्शन तय करने की ज़रूरत नहीं है. इसलिए, अब आपके पास android.buildToolsVersion प्रॉपर्टी को हटाने का विकल्प है. इन्होंने बदलाव किया है डिफ़ॉल्ट, प्लगिन अपने-आप ही उन ज़रूरी बिल्ड टूल का इस्तेमाल करता है इस्तेमाल कर रहे हैं.
    • अब buildTypes ब्लॉक में, PNG क्रंचिंग की सुविधा को चालू/बंद किया जा सकता है. इसके लिए, नीचे दिया गया तरीका अपनाएं. डीबग बिल्ड को छोड़कर, सभी बिल्ड के लिए PNG क्रंचिंग डिफ़ॉल्ट रूप से चालू होती है. ऐसा इसलिए होता है, क्योंकि जिन प्रोजेक्ट में कई PNG फ़ाइलें शामिल होती हैं उनके लिए बिल्ड करने में ज़्यादा समय लगता है. इसलिए, दूसरे टाइप के बिल्ड के लिए बिल्ड होने में लगने वाले समय को कम करने के लिए, आपको PNG क्रंचिंग की सुविधा बंद करनी चाहिए या अपनी इमेज को WebP में बदलना चाहिए.

      ग्रूवी

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  crunchPngs false
                }
              }
            }
            

      Kotlin

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  isCrunchPngs = false
                }
              }
            }
            
    • Android प्लग इन अब उन टारगेट को अपने-आप बनाता है जिन्हें आपने अपने बाहरी CMake प्रोजेक्ट में कॉन्फ़िगर किया है.
    • अब आपको प्रोसेसर क्लासपाथ में, annotationProcessor डिपेंडेंसी कॉन्फ़िगरेशन का इस्तेमाल करके, एनोटेशन प्रोसेसर जोड़ने होंगे.
    • अब काम नहीं करने वाले ndkCompile के इस्तेमाल पर ज़्यादा पाबंदी लगा दी गई है. इसके बजाय, आपको CMake या ndk-build का इस्तेमाल करके, उस नेटिव कोड को कॉम्पाइल करना चाहिए जिसे आपको अपने APK में पैकेज करना है. इस बारे में ज़्यादा जानने के लिए, पढ़ें इस तारीख से माइग्रेट करें ndkcompile पर सेट किया गया है.

    3.0.0 (अक्टूबर 2017)

    'Android Gradle प्लग इन 3.0.0' में कई तरह के बदलाव शामिल हैं जिनका मकसद बड़े प्रोजेक्ट की परफ़ॉर्मेंस की समस्याओं को हल करने के लिए किया जाता है.

    उदाहरण के लिए, स्केलेटन का सैंपल प्रोजेक्ट, जिसमें ~130 मॉड्यूल और कई बाहरी डिपेंडेंसी शामिल हैं (इसमें कोई कोड या रिसॉर्स नहीं है), लेकिन परफ़ॉर्मेंस बेहतर हो सकती है इनसे मिलता-जुलता:

    Android प्लग इन का वर्शन + Gradle का वर्शन Android प्लग इन 2.2.0 + Gradle 2.14.1 Android प्लग इन 2.3.0 + Gradle 3.3 Android प्लग इन 3.0.0 + Gradle 4.1
    कॉन्फ़िगरेशन (उदाहरण के लिए, ./gradlew --help को चलाना) ~2 मिनट ~9 सेकंड ~2.5 सेकंड
    एक लाइन का Java बदलाव (लागू करने के तरीके में बदलाव) ~2 मिनट 15 सेकंड ~29 सेकंड ~6.4 सेकंड

    इनमें से कुछ बदलाव मौजूदा बिल्ड में गड़बड़ी करते हैं. इसलिए, आपको\ तो माइग्रेशन की प्रोसेस पूरी हो जाएगी.

    अगर आपको परफ़ॉर्मेंस में ऊपर बताए गए सुधार नहीं दिख रहे हैं, तो कृपया गड़बड़ी की शिकायत करें और उसका इस्तेमाल करके अपने बिल्ड का ट्रेस शामिल करें Gredle प्रोफ़ाइलर.

    Android प्लग इन के इस वर्शन के लिए, ये ज़रूरी हैं:

    • Gradle 4.1 या इसके बाद का वर्शन. ज़्यादा जानने के लिए, Gradle को अपडेट करने के बारे में सेक्शन पढ़ें.
    • टूल 26.0.2 या उससे ज़्यादा. इस अपडेट के बाद, आपको अब बिल्ड टूल के लिए कोई वर्शन बताने की ज़रूरत नहीं है. प्लग इन, डिफ़ॉल्ट रूप से ज़रूरी वर्शन का इस्तेमाल करता है. इसलिए, अब android.buildToolsVersion प्रॉपर्टी को हटाया जा सकता है.

    3.0.1 (नवंबर 2017)

    यह Android Studio 3.0.1 पर काम करने के लिए एक मामूली अपडेट है. इसमें सामान्य अपडेट शामिल है गड़बड़ियां ठीक की गईं और परफ़ॉर्मेंस को बेहतर बनाया गया.

    ऑप्टिमाइज़ेशन

    • बेहतर तरीके से कई मॉड्यूल वाले प्रोजेक्ट के लिए, टास्क ग्राफ़ के ज़रिए एक साथ कई काम करने की सुविधा.
    • डिपेंडेंसी में बदलाव करते समय, Gradle, तेज़ी से बिल्ड करता है ऐसे मॉड्यूल को फिर से कंपाइल करना जिन्हें उस डिपेंडेंसी के एपीआई का ऐक्सेस नहीं है. आपको यह तय करना चाहिए कि कौनसी डिपेंडेंसी अपने एपीआई को अन्य मॉड्यूल में लीक करती हैं इस्तेमाल किया जा रहा है Gradle के नए डिपेंडेंसी कॉन्फ़िगरेशन: implementation, api, compileOnly, और runtimeOnly.
    • हर क्लास के हिसाब से डेक्सिंग की वजह से, बिल्ड की स्पीड तेज़ी से बढ़ती है. हर क्लास अब अलग-अलग DEX फ़ाइलों में कंपाइल किया जाता है और सिर्फ़ उन क्लास को किए गए बदलाव फिर से दिखाए जाते हैं. आपको इसके लिए बिल्ड की स्पीड में सुधार करना होगा ऐसे ऐप्लिकेशन जो minSdkVersion को 20 या उससे कम पर सेट करते हैं और लेगसी मल्टी-डेक्स.
    • बिल्ड की स्पीड को बेहतर बनाया गया है. इसके लिए, कुछ टास्क को ऑप्टिमाइज़ करके चाच वाले आउटपुट का इस्तेमाल किया जाता है. इस ऑप्टिमाइज़ेशन का फ़ायदा पाने के लिए, Gredle बिल्ड कैश चालू करें.
    • AAPT2 का इस्तेमाल करके, संसाधनों को बेहतर तरीके से इंक्रीमेंटल प्रोसेस किया जा सकता है. यह सुविधा अब डिफ़ॉल्ट रूप से चालू है. अगर आपको AAPT2 इस्तेमाल करते समय कोई समस्या आ रही है, कृपया गड़बड़ी की शिकायत करें. आप यह भी कर सकते हैं अपनेandroid.enableAapt2=false gradle.properties फ़ाइल और इसके हिसाब से Gradle डीमन को रीस्टार्ट करना ./gradlew --stop को कमांड लाइन से चला रही है.

    नई सुविधाएं

    • वैरिएंट अवेयर डिपेंडेंसी मैनेजमेंट. मॉड्यूल का कोई खास वैरिएंट बनाते समय, अब प्लगिन लोकल लाइब्रेरी मॉड्यूल डिपेंडेंसी के वैरिएंट से अपने-आप .
    • इसमें काम करने के लिए एक नया फ़ीचर मॉड्यूल प्लगिन शामिल किया गया है Android Instant Apps और Android Instant Apps का SDK टूल (जिसे डाउनलोड किया जा सकता है) एसडीके मैनेजर का इस्तेमाल करके). नए प्लग इन की मदद से फ़ीचर मॉड्यूल बनाने के बारे में ज़्यादा जानने के लिए, पढ़ें किसी स्ट्रक्चर का स्ट्रक्चर कई सुविधाओं वाला इंस्टैंट ऐप्लिकेशन.
    • कुछ Java 8 भाषा सुविधाओं और Java 8 के उपयोग के लिए अंतर्निहित समर्थन लाइब्रेरी. Jack को अब बंद कर दिया गया है और अब इसकी ज़रूरत नहीं है, और आप को पहले जैक को अक्षम करना चाहिए, ताकि डिफ़ॉल्ट टूलचेन. ज़्यादा जानकारी के लिए, पढ़ें Java 8 भाषा की सुविधाओं का इस्तेमाल करें.
    • Android टेस्ट ऑर्केस्ट्रेटर की मदद से टेस्ट चलाने की सुविधा जोड़ी गई है. इससे, अपने ऐप्लिकेशन के हर टेस्ट को, इंस्ट्रूमेंटेशन के अपने आह्वान में चलाया जा सकता है. ऐसा इसलिए, क्योंकि हर टेस्ट अपने-आप होता है इंस्ट्रुमेंटेशन इंस्टेंस, टेस्ट के बीच शेयर की गई कोई भी स्थिति इकट्ठा नहीं होती आपके डिवाइस के सीपीयू या मेमोरी पर काम करता है. साथ ही, अगर कोई टेस्ट क्रैश हो जाता है, तब भी उसे इंस्ट्रुमेंटेशन का सिर्फ़ अपना इंस्टेंस होता है, ताकि आपके दूसरे टेस्ट अब भी चलते रहें.

      • इस्तेमाल करने या न करने के बारे में तय करने के लिए, testOptions.execution को जोड़ा गया डिवाइस पर टेस्ट ऑर्केस्ट्रेशन. अगर आपको Android Test Orchestrator का इस्तेमाल करना है, तो आपको नीचे दिखाए गए तरीके से ANDROID_TEST_ORCHESTRATOR की जानकारी देनी होगी. डिफ़ॉल्ट रूप से, यह प्रॉपर्टी को HOST पर सेट किया गया है. इससे डिवाइस पर ऐक्सेस बंद हो जाएगा और यह टेस्ट चलाने का स्टैंडर्ड तरीका है.

      Groovy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • androidTestUtil डिपेंडेंसी कॉन्फ़िगरेशन के नए वर्शन की मदद से, जांच करने वाले टूल के टेस्ट चलाने से पहले, Android Test Orchestrator जैसे किसी अन्य टेस्ट हेल्पर APK को इंस्टॉल किया जा सकता है:

      Groovy

              dependencies {
                androidTestUtil 'com.android.support.test:orchestrator:1.0.0'
                ...
              }
              

      Kotlin

              dependencies {
                androidTestUtil("com.android.support.test:orchestrator:1.0.0")
                ...
              }
              
    • testOptions.unitTests.includeAndroidResources जोड़ा गया है, ताकि उन यूनिट टेस्ट के साथ काम किया जा सके जिनके लिए Android रिसॉर्स की ज़रूरत होती है. जैसे, Roboelectric. इसे कब सेट किया जाता है प्रॉपर्टी को true प्रॉपर्टी के साथ जोड़ा जाता है, तो प्लग इन संसाधन, एसेट, और मेनिफ़ेस्ट मर्ज करना हो. इसके बाद, आपकी जांच से com/android/tools/test_config.properties की जांच करें नीचे दी गई कुंजियों के लिए क्लासपाथ इस्तेमाल करें:

      • android_merged_assets: मर्ज की गई ऐसेट डायरेक्ट्री का एब्सोल्यूट पाथ.

        ध्यान दें: लाइब्रेरी मॉड्यूल के लिए, मर्ज की गई ऐसेट इसमें डिपेंडेंसी की एसेट शामिल नहीं हैं (देखें समस्या #65550419) है.

      • android_merged_manifest: आपस में मिले हुए मेनिफ़ेस्ट की फ़ाइल का ऐब्सलूट पाथ.

      • android_merged_resources: मर्ज की गई रिसॉर्स डायरेक्ट्री का पूरा पाथ, जिसमें मॉड्यूल के सभी रिसॉर्स और उसकी सभी डिपेंडेंसी शामिल होती हैं.

      • android_custom_package: फ़ाइनल आर क्लास का नाम. यदि आप डायनामिक रूप से ऐप्लिकेशन आईडी संशोधित करते हैं तो यह पैकेज का नाम, शायद यहां दी गई package एट्रिब्यूट से मेल न खाए के तौर पर डिलीवर हो जाएगा.

    • फ़ॉन्ट के लिए सहायता संसाधनों के तौर पर (यह एक नई सुविधा है, जिसे Android 8.0 (एपीआई लेवल 26)).
    • अलग-अलग भाषा के हिसाब से बनाए गए APKs के लिए, Android Instant Apps SDK 1.1 और इसके बाद के वर्शन.
    • अब अपने एक्सटर्नल नेटिव बिल्ड के लिए आउटपुट डायरेक्ट्री बदली जा सकती है प्रोजेक्ट, जैसा कि नीचे दिखाया गया है:

      ग्रूवी

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory "./outputs/cmake"
                      }
                  }
              }
              

      Kotlin

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory = "./outputs/cmake"
                      }
                  }
              }
              
    • अब ये काम किए जा सकते हैं CMake 3.7 या Android Studio से नेटिव प्रोजेक्ट बनाते समय.
    • lintChecks के नए डिपेंडेंसी कॉन्फ़िगरेशन की मदद से, ये काम किए जा सकते हैं एक JAR बनाएं, जो कस्टम लिंट के नियमों को तय करता हो और उसे अपने AAR में पैकेज करें और APK प्रोजेक्ट शामिल करते हैं.

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

      ग्रूवी

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks project(':lint-checks')
              }
              

      Kotlin

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks(project(":lint-checks"))
              }
              

    व्यवहार में बदलाव

    • Android प्लग इन 3.0.0 कुछ एपीआई हटा देता है और आपका बिल्ड टूट जाता है नहीं किया जा सकता. उदाहरण के लिए, अब outputFile() ऑब्जेक्ट को ऐक्सेस करने के लिए, वैरिएंट एपीआई का इस्तेमाल नहीं किया जा सकता. इसके अलावा, हर वैरिएंट के लिए मेनिफ़ेस्ट फ़ाइल पाने के लिए, processManifest.manifestOutputFile() का इस्तेमाल भी नहीं किया जा सकता. इस बारे में ज़्यादा जानने के लिए, पढ़ें एपीआई में बदलाव.
    • अब आपको बिल्ड टूल के लिए कोई वर्शन तय करने की ज़रूरत नहीं है. इसलिए, अब आपके पास android.buildToolsVersion प्रॉपर्टी को हटाने का विकल्प है. इन्होंने बदलाव किया है डिफ़ॉल्ट, प्लगिन अपने-आप ही उन ज़रूरी बिल्ड टूल का इस्तेमाल करता है इस्तेमाल कर रहे हैं.
    • अब buildTypes ब्लॉक में, PNG क्रंचिंग की सुविधा को चालू/बंद किया जा सकता है. इसके लिए, नीचे दिया गया तरीका अपनाएं. डीबग बिल्ड को छोड़कर, सभी बिल्ड के लिए PNG क्रंचिंग डिफ़ॉल्ट रूप से चालू होती है. ऐसा इसलिए होता है, क्योंकि जिन प्रोजेक्ट में कई PNG फ़ाइलें शामिल होती हैं उनके लिए बिल्ड करने में ज़्यादा समय लगता है. इसलिए, दूसरे टाइप के बिल्ड के लिए बिल्ड होने में लगने वाले समय को कम करने के लिए, आपको PNG क्रंचिंग की सुविधा बंद करनी चाहिए या अपनी इमेज को WebP में बदलना चाहिए.

      ग्रूवी

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  crunchPngs false
                }
              }
            }
            

      Kotlin

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  isCrunchPngs = false
                }
              }
            }
            
    • Android प्लगिन अब ऐसे एक्ज़ीक्यूटेबल टारगेट अपने-आप बनाता है जो जिसे आप अपने बाहरी CMake प्रोजेक्ट में कॉन्फ़िगर कर सकते हैं.
    • अब आपको ऐसा करना चाहिए व्याख्या जोड़ें प्रोसेसर को annotationProcessor डिपेंडेंसी कॉन्फ़िगरेशन.
    • अब काम नहीं करने वाले ndkCompile के इस्तेमाल पर ज़्यादा पाबंदी लगा दी गई है. इसके बजाय, कंपाइल करने के लिए CMake या ndk-build का इस्तेमाल करके माइग्रेट करें नेटिव कोड जिसे आप अपने APK में पैकेज करना चाहते हैं. ज़्यादा जानने के लिए, ndkcompile से माइग्रेट करना लेख पढ़ें.

    2.3.0 (फ़रवरी 2017)

    2.3.3 (जून 2017)

    यह एक छोटा अपडेट है, जिसमें Android Studio 2.3.3 के साथ काम करने की सुविधा जोड़ी गई है.

    2.3.2 (मई 2017)

    यह एक मामूली अपडेट है, जो Android स्टूडियो 2.3.2.

    2.3.1 (अप्रैल 2017)

    यह Android प्लग इन 2.3.0 का एक मामूली अपडेट है, जिससे एक समस्या ठीक हो जाती है जिसमें कुछ फ़िज़िकल Android डिवाइस, इंस्टैंट रन (देखें समस्या #235879).

    डिपेंडेंसी:
    नया:
    • Gradle 3.3 का इस्तेमाल करता है. इसमें परफ़ॉर्मेंस में सुधार और नई सुविधाएं शामिल हैं. ज़्यादा जानकारी के लिए, यह देखें Gredle की रिलीज़ नोट.
    • कैश मेमोरी बनाएं: यह कुछ आउटपुट सेव करता है, जिन्हें Android आपका प्रोजेक्ट बनाते समय प्लगिन जनरेट करता है (जैसे, पैकेज के बिना एएआर और पहले से डेक की गई रिमोट डिपेंडेंसी). आपके क्लीन बिल्ड बहुत तेज़ी से कैश का उपयोग करता है, क्योंकि बिल्ड सिस्टम इसके बजाय, कैश मेमोरी में सेव की गई फ़ाइलों को बाद के बिल्ड के दौरान फिर से इस्तेमाल करें. उन्हें फिर से बनाने में मदद कर सकता है. Android प्लग इन 2.3.0 और उसके बाद के वर्शन का इस्तेमाल करने वाले प्रोजेक्ट, डिफ़ॉल्ट रूप से बिल्ड कैश का इस्तेमाल करते हैं. इस बारे में ज़्यादा जानने के लिए, पढ़ें अपने कॉन्टेंट की परफ़ॉर्मेंस को बेहतर बनाने के लिए, कैश मेमोरी बनाएं.
    बदलाव:

    2.2.0 (सितंबर 2016)

    डिपेंडेंसी:
    • Gradle 2.14.1 या इसके बाद का वर्शन.
    • टूल 23.0.2 या उससे ज़्यादा.
    नया:
    • Gradle 2.14.1 का इस्तेमाल करता है, जिसमें परफ़ॉर्मेंस में सुधार शामिल हैं और नई सुविधाओं के साथ-साथ सुरक्षा से जुड़े जोखिम की आशंका को दूर करता है. ग्रेडल डीमन का इस्तेमाल करते समय, लोकल प्रिविलेज एस्कलेशन. ज़्यादा जानकारी के लिए, Gradle के रिलीज़ नोट देखें.
    • externalNativeBuild {} DSL का इस्तेमाल करके, Gradle अब आपको अपने नेटिव सोर्स से लिंक करने और CMake या ndk-build का इस्तेमाल करके नेटिव लाइब्रेरी को कंपाइल करने की सुविधा देता है. नेटिव लाइब्रेरी बनाने के बाद, Gradle उन्हें आपके APK में पैकेज करता है. CMake की सुविधा इस्तेमाल करने और Gradle के साथ ndk-build, अपने डिवाइस में C और C++ कोड जोड़ें प्रोजेक्ट.
    • कमांड लाइन से कोई प्रोजेक्ट बिल्ड करने पर, Gradle अब उन सभी SDK कॉम्पोनेंट या अपडेट को अपने-आप डाउनलोड करने की कोशिश करता है जिन पर आपका प्रोजेक्ट निर्भर करता है. ज़्यादा जानने के लिए, अपने-आप डाउनलोड होने की सुविधा के बारे में पढ़ें Gradle के साथ अनुपलब्ध पैकेज.
    • नई एक्सपेरिमेंट के तौर पर कैश मेमोरी में सेव करने की सुविधा से, Gradle बनाने की प्रोसेस तेज़ हो जाती है के प्री-डेक्सिंग, स्टोर, और प्री-डेक्स किए गए वर्शन में से आपकी लाइब्रेरी पर टैप करें. एक्सपेरिमेंट के तौर पर उपलब्ध इस सुविधा का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, कैश मेमोरी बनाएं गाइड पढ़ें.
    • पैकेजिंग के लिए नई डिफ़ॉल्ट पाइपलाइन का इस्तेमाल करके, बिल्ड की परफ़ॉर्मेंस को बेहतर बनाता है. यह पाइपलाइन, एक ही टास्क में ज़िप करने, हस्ताक्षर करने, और zipalign करने की सुविधा देती है. आपने लोगों तक पहुंचाया मुफ़्त में पुराने पैकेजिंग टूल का इस्तेमाल फिर से शुरू करने के लिए किया जा सकता है. android.useOldPackaging=true को आपके gradle.properties फ़ाइल. पैकेजिंग के नए टूल का इस्तेमाल करते समय, zipalignDebug टास्क उपलब्ध नहीं होता. हालांकि, createZipAlignTask(String taskName, File inputFile, File outputFile) तरीके को कॉल करके, खुद ही एक क्वेरी बनाई जा सकती है.
    • APK साइनिंग की सुविधा अब, पारंपरिक JAR साइनिंग के साथ-साथ APK सिग्नेचर स्कीम v2 का इस्तेमाल करती है. सभी Android प्लैटफ़ॉर्म, नतीजे देने वाले APK. हस्ताक्षर करने के बाद, इन APKs में कोई भी बदलाव करने पर, v2 हस्ताक्षर का इस्तेमाल करता है और डिवाइस पर इंस्टॉल होने से रोकता है. इस सुविधा को बंद करने के लिए, अपने मॉड्यूल-लेवल की build.gradle फ़ाइल में यह जोड़ें:

      ग्रूवी

      android {
        ...
        signingConfigs {
          config {
            ...
            v2SigningEnabled false
          }
        }
      }
            

      Kotlin

      android {
        ...
        signingConfigs {
          create("config") {
            ...
            v2SigningEnabled = false
          }
        }
      }
            
    • मल्टीडेक्स बिल्ड के लिए, अब ProGuard के नियमों का इस्तेमाल करके यह तय किया जा सकता है कि Gradle को आपके ऐप्लिकेशन की मुख्य DEX फ़ाइल में कौनसी क्लास को कंपाइल करना चाहिए. ऐप्लिकेशन शुरू करने पर, Android सिस्टम सबसे पहले मुख्य DEX फ़ाइल को लोड करता है. इसलिए, मुख्य DEX फ़ाइल में कुछ क्लास को कंपाइल करके, स्टार्टअप के समय उन्हें प्राथमिकता दी जा सकती है. खास तौर पर अपनी मुख्य DEX फ़ाइल के लिए ProGuard कॉन्फ़िगरेशन फ़ाइल बनाने के बाद, buildTypes.multiDexKeepProguard का इस्तेमाल करके कॉन्फ़िगरेशन फ़ाइल का पाथ, Gradle को पास करें. इस डीएसएल का इस्तेमाल करना, buildTypes.proguardFiles का इस्तेमाल करने से अलग है. buildTypes.proguardFiles, आपके ऐप्लिकेशन के लिए ProGuard के सामान्य नियमों को लागू करता है. साथ ही, यह मुख्य DEX फ़ाइल के लिए क्लास की जानकारी नहीं देता.
    • android:extractNativeLibs फ़्लैग के लिए सहायता जोड़ी जाती है, इस तरह, आपके ऐप्लिकेशन को किसी डिवाइस पर इंस्टॉल करने पर उसका साइज़ कम हो सकता है डिवाइस. जब आप इसमें इस फ़्लैग को false पर सेट करते हैं, <application> आपके ऐप्लिकेशन मेनिफ़ेस्ट के एलिमेंट के साथ-साथ, Gradle पैकेज को कंप्रेस नहीं किया गया है और आपकी मूल लाइब्रेरी के APK के साथ अलाइन किए गए वर्शन. यह PackageManager को रोकता है आपकी मूल लाइब्रेरी को APK से डिवाइस में कॉपी करने से लेकर फ़ाइल सिस्टम इंस्टॉल करते हैं और इसे आपके ऐप्लिकेशन के डेल्टा अपडेट कम हो जाएंगे.
    • अब आप निर्दिष्ट कर सकते हैं versionNameSuffix और प्रॉडक्ट के फ़्लेवर के लिए applicationIdSuffix. (समस्या 59614)
    बदलाव:
    • getDefaultProguardFile अब डिफ़ॉल्ट ProGuard फ़ाइलें दिखाता है, जो Gradle के लिए Android प्लग इन उपलब्ध कराता है. साथ ही, अब Android SDK में मौजूद फ़ाइलों का इस्तेमाल नहीं करता.
    • जैक कंपाइलर की बेहतर परफ़ॉर्मेंस और सुविधाएं:
      • Jack अब testCoverageEnabled को true पर सेट करते समय, Jacoco टेस्ट कवरेज के साथ काम करता है.
      • एनोटेशन प्रोसेसर के लिए बेहतर सहायता. आपके क्लासपथ पर मौजूद एनोटेशन प्रोसेसर, आपके बिल्ड पर अपने-आप लागू हो जाते हैं. जैसे, compile डिपेंडेंसी. आप आपके बिल्ड और पास में एनोटेशन प्रोसेसर भी तय करें का इस्तेमाल करके आर्ग्युमेंट बनाएं javaCompileOptions.annotationProcessorOptions {} DSL मॉड्यूल-लेवल की build.gradle फ़ाइल:

        ग्रूवी

        android {
          ...
          defaultConfig {
            ...
            javaCompileOptions {
              annotationProcessorOptions {
                className 'com.example.MyProcessor'
                // Arguments are optional.
                arguments = [ foo : 'bar' ]
              }
            }
          }
        }
            

        Kotlin

        android {
          ...
          defaultConfig {
            ...
            javaCompileOptions {
              annotationProcessorOptions {
                className = "com.example.MyProcessor"
                // Arguments are optional.
                arguments(mapOf(foo to "bar"))
              }
            }
          }
        }
            

        अगर आपको संकलन के समय एनोटेशन प्रोसेसर को लागू करना है, लेकिन उसे अपने APK में शामिल नहीं करना है, तो annotationProcessor डिपेंडेंसी स्कोप का इस्तेमाल करें:

        Groovy

        dependencies {
            compile 'com.google.dagger:dagger:2.0'
            annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
           // or use buildVariantAnnotationProcessor to target a specific build variant
        }
            

        Kotlin

        dependencies {
            implementation("com.google.dagger:dagger:2.0")
            annotationProcessor("com.google.dagger:dagger-compiler:2.0")
           // or use buildVariantAnnotationProcessor to target a specific build variant
        }
            
      • सेट किए जा सकने वाले पैरामीटर की सूची के लिए, कमांड लाइन से यह कमांड चलाएं:

        java -jar /build-tools/jack.jar --help-properties
        
      • डिफ़ॉल्ट रूप से, अगर ग्रेडल डीमन का हीप साइज़ कम से कम 1.5 है जीबी, जैक अब Gradle की तरह ही काम करता है. इसे एडजस्ट करने के लिए डीमन हीप साइज़ की वैल्यू के तौर पर, इन्हें अपने gradle.properties फ़ाइल:
        # This sets the daemon heap size to 1.5GB.
        org.gradle.jvmargs=-Xmx1536M
        

    2.1.0 (अप्रैल 2016)

    2.1.3 (अगस्त 2016)

    इस अपडेट के लिए, Gradle 2.14.1 और इसके बाद का वर्शन होना ज़रूरी है. Gradle 2.14.1 में यह शामिल है और सुरक्षा से जुड़े एक अहम सुधार की सूचना दी गई है. ज़्यादा जानकारी के लिए, यह देखें Gredle की रिलीज़ नोट.

    डिपेंडेंसी:
    • Gradle 2.10 या इसके बाद का वर्शन.
    • Build Tools 23.0.2 या इसके बाद का वर्शन.
    नया:
    • जैक का इस्तेमाल करके N Developer Preview, JDK 8, और Java 8 भाषा सुविधाओं के लिए अतिरिक्त सहायता जोड़ी गई टूलचेन. ज़्यादा जानने के लिए, N Preview की गाइड पढ़ें.

      ध्यान दें: फ़िलहाल, झटपट चलाने की सुविधा Jack के साथ काम नहीं करती. साथ ही, नए टूलचेन का इस्तेमाल करने पर, यह सुविधा बंद हो जाएगी. आपको Jack का इस्तेमाल सिर्फ़ तब करना होगा, जब N Preview के लिए ऐप्लिकेशन डेवलप किया जा रहा हो और आपको Java 8 भाषा की सुविधाओं का इस्तेमाल करना हो.

    • डेवलपमेंट के दौरान, कंपाइल करने में लगने वाले समय को कम करने के लिए, Java के इंक्रीमेंटल कंपाइलेशन के लिए डिफ़ॉल्ट तौर पर सहायता जोड़ी गई है. ऐसा सिर्फ़ रीकंपाइलेशन करके किया जाता है सोर्स के ऐसे हिस्से जो बदल गए हैं या जिन्हें फिर से कंपाइल करने की ज़रूरत है. बंद करने के लिए इस सुविधा के लिए, अपने मॉड्यूल-लेवल पर नीचे दिया गया कोड जोड़ें build.gradle फ़ाइल:

      Groovy

      android {
        ...
        compileOptions {
          incremental false
        }
      }

      Kotlin

      android {
        ...
        compileOptions {
          incremental = false
        }
      }
    • डेक्सिंग-इन-प्रोसेस के लिए सहायता जोड़ी गई, जो बिल्ड के अंदर ही डेक्सिंग करती है करने के लिए कहा जाता है. इससे न सिर्फ़ तेज़ी से बिल्ड करता है. साथ ही, यह पूरे बिल्ड को भी तेज़ करता है. सुविधा है यह ऐसे प्रोजेक्ट के लिए डिफ़ॉल्ट रूप से चालू रहता है जिनमें Gradle डीमन का ज़्यादा से ज़्यादा हीप सेट हो साइज़ कम से कम 2048 एमबी होना चाहिए. आप निम्न को अपने प्रोजेक्ट की gradle.properties फ़ाइल:

      ```कोई नहीं org.gradle.jvmargs = -Xmx2048m ```

      अगर आपने मॉड्यूल-लेवल की build.gradle फ़ाइल में javaMaxHeapSize के लिए कोई वैल्यू तय की है, तो आपको org.gradle.jvmargs को javaMaxHeapSize + 1024 एमबी की वैल्यू पर सेट करना होगा. उदाहरण के लिए, अगर आपने javaMaxHeapSize को "2048m" के लिए, आपको अपने प्रोजेक्ट की gradle.properties फ़ाइल:

      ```none org.gradle.jvmargs = -Xmx3072m ```

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

      Groovy

      android {
        ...
        dexOptions {
            dexInProcess false
        }
      }

      Kotlin

      android {
        ...
        dexOptions {
            dexInProcess = false
        }
      }

    2.0.0 (अप्रैल 2016)

    डिपेंडेंसी:
    • Gradle 2.10 या इसके बाद का वर्शन.
    • Build Tools 21.1.1 या इसके बाद का वर्शन.
    नया:
    • इसके ज़रिए झटपट चलाएं को चालू करता है बाइटकोड इंजेक्शन का समर्थन करता है और कोड और संसाधन अपडेट को एम्युलेटर या किसी डिवाइस पर चलने वाला ऐप्लिकेशन हो.
    • ऐप्लिकेशन के न चलने पर भी, इंक्रीमेंटल बिल्ड के लिए अतिरिक्त सहायता जोड़ी गई. लगातार होने वाले बदलावों को लागू करने से, पूरा बिल्ड टाइम बढ़ जाता है. Android डीबग ब्रिज कनेक्ट किया गया डिवाइस.
    • जोड़ा गया maxProcessCount का इस्तेमाल करके यह कंट्रोल किया जा सकता है कि वर्कर डेक्स की कितनी प्रोसेस हो सकती हैं एक साथ पैदा हुए. मॉड्यूल-लेवल में नीचे दिया गया कोड build.gradle फ़ाइल, एक साथ हो सकने वाली प्रोसेस की ज़्यादा से ज़्यादा संख्या सेट करती है से 4:

      ग्रूवी

      android {
        ...
        dexOptions {
          maxProcessCount = 4 // this is the default value
        }
      }

      Kotlin

      android {
        ...
        dexOptions {
          maxProcessCount = 4 // this is the default value
        }
      }
        </li>
      
        <li>Added an experimental code shrinker to support pre-dexing and reduce re-dexing
        of dependencies, which are not supported with Proguard. This improves the build
        speed of your debug build variant. Because the experimental shrinker does not
        support optimization and obfuscation, you should enable Proguard for your
        release builds. To enable the experimental shrinker for your debug builds, add
        the following to your module-level <code>build.gradle</code> file:
      

      ग्रूवी

      android {
        ...
        buildTypes {
          debug {
            minifyEnabled true
            useProguard false
          }
          release {
            minifyEnabled true
            useProguard true // this is a default setting
          }
        }
      }

      Kotlin

      android {
        ...
        buildTypes {
          getByName("debug") {
            minifyEnabled = true
            useProguard = false
          }
          getByName("release") {
            minifyEnabled = true
            useProguard = true // this is a default setting
          }
        }
      }
        </li>
      
        <li>Added logging support and improved performance for the resource shrinker.
        The resource shrinker now logs all of its operations into a <code>resources.txt</code>
        file located in the same folder as the Proguard log files.
        </li>
      </ul>
      

    बदला गया व्यवहार:
    • जब minSdkVersion को 18 या उसके बाद के वर्शन पर सेट किया जाता है, तो APK साइनिंग के लिए SHA256 का इस्तेमाल किया जाता है.
    •   <li>DSA and ECDSA keys can now sign APK packages.
      
          <p class="note">
            <strong>Note:</strong> The <a href=
            "/training/articles/keystore.html">Android keystore</a> provider no
            longer supports <a href=
            "/about/versions/marshmallow/android-6.0-changes.html#behavior-keystore">
            DSA keys on Android 6.0</a> (API level 23) and higher.
          </p>
      
        </li>
      </ul>
      

    ठीक की गई समस्याएं:
    • दोनों में डुप्लीकेट AAR डिपेंडेंसी होने की समस्या को ठीक कर दिया गया है और मुख्य बिल्ड कॉन्फ़िगरेशन की जानकारी दें.

    Gradle के लिए Android प्लग इन, संशोधन 1.5.0 (नवंबर 2015)

    डिपेंडेंसी:
    • Gradle 2.2.1 या इसके बाद का वर्शन.
    • बिल्ड टूल 21.1.1 या इसके बाद का वर्शन.
    सामान्य जानकारी:
    • डेटा बाइंडिंग प्लगिन को Gradle के लिए Android प्लगिन के साथ इंटिग्रेट किया गया. इसे चालू करने के लिए, प्लग इन का इस्तेमाल करने वाली हर प्रोजेक्ट build.gradle फ़ाइल में यह कोड जोड़ें:
    • android {
          dataBinding {
              enabled = true
          }
      }
              
      android {
          dataBinding {
              enabled = true
          }
      }
              
    • तीसरे पक्ष के प्लग इन को .dex फ़ाइलों में बदलने से पहले, इकट्ठा की गई .class फ़ाइलों में बदलाव करने की अनुमति देने के लिए, नया ट्रांसफ़ॉर्म एपीआई जोड़ा गया है. Transform API, कस्टम क्लास में बदलाव करने की सुविधा को आसान बनाता है. साथ ही, यह आपको बदलाव करने के लिए ज़्यादा विकल्प भी देता है. किसी बिल्ड में ट्रांसफ़ॉर्मेशन डालने के लिए, Transform इंटरफ़ेस में से किसी एक को लागू करने वाली नई क्लास बनाएं और उसे android.registerTransform(theTransform) या android.registerTransform(theTransform, dependencies) के साथ रजिस्टर करें. टास्क को एक-दूसरे से लिंक करने की ज़रूरत नहीं है. Transform API के बारे में इन बातों का ध्यान रखें:
      • ट्रांसफ़ॉर्म, इनमें से एक या उससे ज़्यादा पर लागू हो सकता है: मौजूदा प्रोजेक्ट, सब-प्रोजेक्ट, और बाहरी लाइब्रेरी.
      • ट्रांसफ़ॉर्म को दुनिया भर में रजिस्टर किया जाना चाहिए. जो उसे सभी वैरिएंट पर लागू करता है.
      • Java Code Screenage Library (JaCoCo), ProGuard, और MultiDex में, अब Transform API का इस्तेमाल किया जाता है. हालांकि, Java Android Compiler Kit (Jack) इस एपीआई का इस्तेमाल नहीं करता: सिर्फ़ javac/dx कोड पाथ इसका इस्तेमाल करता है.
      • Gradle, ट्रांसफ़ॉर्म को इस क्रम में लागू करता है: JaCoCo, तीसरे पक्ष के प्लगिन, ProGuard. तीसरे पक्ष के प्लग इन के लिए ट्रांसफ़ॉर्मेशन लागू करने का क्रम, उसी क्रम से मेल खाता है जिसमें तीसरे पक्ष के प्लग इन ने ट्रांसफ़ॉर्मेशन जोड़े हैं. तीसरे पक्ष के प्लग इन डेवलपर, एपीआई की मदद से ट्रांसफ़ॉर्मेशन लागू करने के क्रम को कंट्रोल नहीं कर सकते.
    • dex गेटर को ApplicationVariant क्लास से हटा दिया गया. अब वैरिएंट एपीआई की मदद से, Dex टास्क ऐक्सेस नहीं किया जा सकता, क्योंकि यह अब उपलब्ध है एक बदलाव के ज़रिए पूरा किया. यहां कई फ़िलहाल, dex प्रोसेस को कंट्रोल करने की ज़रूरत नहीं है.
    • एसेट के लिए इंक्रीमेंटल डेटा अपलोड करने की सुविधा को ठीक किया गया.
    • इसे टेस्ट प्रोजेक्ट के लिए उपलब्ध कराकर, MultiDex सहायता को बेहतर बनाया गया है. जांच में अब com.android.support:multidex-instrumentation अपने-आप जुड़ जाता है निर्भरता.
    • Gradle बिल्ड को ठीक से फ़ेल करने और गड़बड़ी की असल वजह की रिपोर्ट करने की सुविधा जोड़ी गई जब Gradle बिल्ड एसिंक्रोनस टास्क शुरू करता है और वर्कर में कोई गड़बड़ी होती है प्रोसेस.
    • वैरिएंट में खास ऐप्लिकेशन बाइनरी इंटरफ़ेस (एबीआई) को कॉन्फ़िगर करने की सुविधा जोड़ी गई जिनमें कई एबीआई होते हैं.
    • कॉमा लगाकर अलग की गई डिवाइस के सीरियल नंबर की सूची के लिए जोड़ा गया टेस्ट इंस्टॉल करते या चलाते समय ANDROID_SERIAL एनवायरमेंट वैरिएबल.
    • Android 5.0 (एपीआई लेवल 20) और इसके बाद के वर्शन वाले डिवाइसों पर इंस्टॉल न होने की समस्या ठीक की गई जब APK के नाम में स्पेस हो.
    • Android ऐसेट पैकेजिंग टूल (AAPT) के गड़बड़ी वाले आउटपुट से जुड़ी कई समस्याएं ठीक की गईं.
    • तेज़ इंक्रीमेंटल बिल्ड के लिए, JaCoCo इंक्रीमेंटल इंस्ट्रुमेंटेशन सपोर्ट जोड़ा गया. कॉन्टेंट बनाने Gradle के लिए Android प्लग इन, अब सीधे JaCoCo इंस्ट्रुमेंटर को शुरू करता है. नई ऑडियंस बनाने के लिए तो आपको इसे बिल्ड स्क्रिप्ट डिपेंडेंसी के तौर पर जोड़ना होगा.
    • JaCoCo के साथ काम करने की सुविधा को ठीक किया गया है, ताकि यह उन फ़ाइलों को अनदेखा कर सके जो क्लास नहीं हैं.
    • पुराने सिस्टम के साथ काम करने के लिए, बिल्ड टाइम पर PNG जनरेट करने के लिए वेक्टर ड्रॉ करने की सुविधा जोड़ी गई. Gradle के लिए Android प्लग इन, किसी संसाधन में पाए जाने वाले हर वेक्टर के लिए PNG जनरेट करता है डायरेक्ट्री, जो एपीआई वर्शन के बारे में नहीं बताती या android:minSdkVersion एट्रिब्यूट की वैल्यू के तौर पर 20 या उससे कम ऐप्लिकेशन मेनिफ़ेस्ट में <uses-sdk> एलिमेंट. PNG डेंसिटी को इनके हिसाब से सेट किया जा सकता है defaultConfig में generatedDensities प्रॉपर्टी का इस्तेमाल करके या build.gradle फ़ाइल के productFlavor सेक्शन.
    • नकली android.jar को शेयर करने की सुविधा जोड़ी गई, जिसे प्लगिन सिर्फ़ जनरेट करता है एक बार और यूनिट टेस्टिंग के लिए इसका इस्तेमाल करता है. एक से ज़्यादा मॉड्यूल, जैसे कि app और lib, अब इसे शेयर करें. इसे फिर से जनरेट करने के लिए, $rootDir/build को मिटाएं.
    • Java के संसाधनों की प्रोसेसिंग को, अस्पष्ट बनाने वाले टास्क से पहले होने के बजाय बदला गया APK की पैकेजिंग के दौरान. इस बदलाव की वजह से, पैकेज को गुप्त करने के बाद, Java रिसॉर्स को अडैप्ट करने के लिए, गुप्त करने के टास्क को एक मौका मिलता है.
    • एक्सपेरिमेंट के तौर पर उपलब्ध लाइब्रेरी प्लग इन में, Java नेटिव इंटरफ़ेस (JNI) कोड इस्तेमाल करने से जुड़ी समस्या ठीक की गई.
    • प्लैटफ़ॉर्म वर्शन को अलग-अलग सेट करने की सुविधा जोड़ी गई एक्सपेरिमेंट के तौर पर शुरू की गई लाइब्रेरी में android:compileSdkVersion एट्रिब्यूट प्लग इन.

    Gradle के लिए Android प्लग इन, संशोधन 1.3.1 (अगस्त 2015)

    डिपेंडेंसी:
    • Gradle 2.2.1 या इसके बाद का वर्शन.
    • बिल्ड टूल 21.1.1 या इसके बाद का वर्शन.
    सामान्य जानकारी:
    • Zipalign टास्क को ठीक से ठीक किया गया है कस्टमाइज़ किए गए फ़ाइल नाम का इस्तेमाल करते समय, पिछले टास्क के आउटपुट का इस्तेमाल करें.
    • रेंडरस्क्रिप्ट को ठीक किया गया NDK की पैकेजिंग करें.
    • createDebugCoverageReport बिल्ड टास्क के लिए सहायता बनाए रखी गई.
    • archiveBaseName के कस्टमाइज़ किए गए इस्तेमाल के लिए सहायता को ठीक किया गया है प्रॉपर्टी build.gradle बिल्ड फ़ाइल में शामिल की जानी चाहिए.
    • Invalid ResourceType को ठीक किया गया पैरामीटर के तरीके की वजह से होने वाली lint चेतावनी चलाते समय एनोटेशन लुकअप Android Studio के बाहर लिंट चुनें.

    Gradle के लिए Android प्लग इन, रिविज़न 1.3.0 (जुलाई 2015)

    डिपेंडेंसी:
    • Gradle 2.2.1 या इसके बाद का वर्शन.
    • बिल्ड टूल 21.1.1 या इसके बाद का वर्शन.
    सामान्य जानकारी:
    • com.android.build.threadPoolSize के लिए सहायता जोड़ी गई इस प्रॉपर्टी से, Android टास्क थ्रेड पूल के साइज़ को कंट्रोल किया जा सकता है gradle.properties फ़ाइल या कमांड लाइन. कॉन्टेंट बनाने नीचे दिया गया उदाहरण इस प्रॉपर्टी को 4 पर सेट करता है.

              
              -Pcom.android.build.threadPoolSize=4
              
            
    • APKs से LICENSE और LICENSE.txt फ़ाइलों को बाहर रखने के लिए, डिफ़ॉल्ट तौर पर बने बंडल का तरीका सेट करें. इन फ़ाइलों को किसी APK में शामिल करने के लिए, build.gradle फ़ाइल में packagingOptions.excludes प्रॉपर्टी. उदाहरण के लिए:
      android {
            packagingOptions.excludes = []
          }
            
      android {
            packagingOptions.excludes.clear()
          }
          
    • सभी उपलब्ध सोर्स सेट की जांच करने के लिए, sourceSets टास्क जोड़ा गया.
    • कई तरह के फ़्लेवर और उनकी पहचान करने के लिए, यूनिट की जांच करने की बेहतर सुविधा बिल्ड वैरिएंट के सोर्स फ़ोल्डर का इस्तेमाल कर सकते हैं. उदाहरण के लिए, कई फ़्लेवर वाले ऐप्लिकेशन की जांच करने के लिए flavor1 और flavorA, जिनका Debug बिल्ड टाइप है, ये टेस्ट सोर्स सेट हैं:
      • जांच
      • टेस्टफ़्लेवर1
      • टेस्टफ़्लेवरए
      • टेस्टFlavor1FlavorA
      • testFlavor1FlavorADebug

      Android की जांच में पहले से ही मल्टी-फ़्लेवर सोर्स फ़ोल्डर की पहचान की जा चुकी है.

    • यूनिट टेस्ट के लिए बेहतर सहायता, ताकि:
      • मुख्य और टेस्ट सोर्स पर javac चलाएं. भले ही, आपकी बिल्ड फ़ाइल में useJack प्रॉपर्टी को true पर सेट किया गया हो.
      • हर बिल्ड टाइप के लिए डिपेंडेंसी की सही तरीके से पहचान करें.
    • कमांड लाइन से, इंस्ट्रुमेंटेशन टेस्ट-रनर आर्ग्युमेंट की जानकारी देने के लिए सहायता जोड़ी गई. उदाहरण के लिए:
      ./gradlew connectedCheck \
         -Pandroid.testInstrumentationRunnerArguments.size=medium \
         -Pandroid.testInstrumentationRunnerArguments.class=TestA,TestB
              
    • आर्बिट्रेरी अतिरिक्त Android ऐसेट पैकेजिंग टूल (AAPT) पैरामीटर के लिए सहायता जोड़ी गई build.gradle फ़ाइल में. उदाहरण के लिए:

      android {
          aaptOptions {
            additionalParameters "--custom_option", "value"
          }
      }
            
      android {
          aaptOptions {
            additionalParameters += listOf("--custom_option", "value")
          }
      }
            
    • के लिए समर्थन जोड़ा गया इसका इस्तेमाल करके, APK मॉड्यूल को एक अलग टेस्ट मॉड्यूल के तौर पर टेस्ट करें APK सेट करने के लिए targetProjectPath और targetVariant प्रॉपर्टी पाथ और टारगेट वैरिएंट.

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

    • संसाधनों को मर्ज करने से पहले, संसाधन के नाम की पुष्टि की प्रोसेस जोड़ी गई.
    • लाइब्रेरी मॉड्यूल के लिए एएआर (Android ARchive) पैकेज बनाते समय, अपने-आप जनरेट होने वाला @{applicationId} प्लेसहोल्डर मेनिफ़ेस्ट मर्जर की सेटिंग. इसके बजाय, किसी दूसरे प्लेसहोल्डर का इस्तेमाल करें. जैसे, @{libApplicationId} और अगर आप संग्रह लाइब्रेरी में ऐप्लिकेशन आईडी शामिल करना चाहते हैं, तो इसके लिए एक मान दें.

    Gradle के लिए Android प्लग इन, संशोधन 1.2.0 (अप्रैल 2015)

    डिपेंडेंसी:
    • Gradle 2.2.1 या इसके बाद का वर्शन.
    • बिल्ड टूल 21.1.1 या इसके बाद का वर्शन.
    सामान्य जानकारी:
    • Gradle की मदद से यूनिट टेस्ट चलाने के लिए बेहतर सहायता.
      • क्लासपाथ में Java स्टाइल के संसाधनों को शामिल करने के लिए सहायता जोड़ी गई जब सीधे Gradle से यूनिट टेस्ट किए जा रहे हों.
      • Android Archive (AAR) के आर्टफ़ैक्ट के लिए, यूनिट टेस्ट डिपेंडेंसी की सुविधा जोड़ी गई.
      • unitTestVariants प्रॉपर्टी के लिए सहायता जोड़ी गई इसलिए, इकाई की जांच करने वाले वैरिएंट में बदलाव करने के लिए, build.gradle फ़ाइल.
      • इसके तहत unitTest.all कोड ब्लॉक जोड़ा गया यूनिट के लिए, पसंद के मुताबिक बनाए गए टास्क कॉन्फ़िगर करने के लिए testOptions परीक्षण. नीचे दिया गया सैंपल कोड, यूनिट टेस्ट जोड़ने का तरीका बताता है कॉन्फ़िगरेशन सेटिंग:
        android {
          testOptions {
            unitTest.all {
              jvmArgs '-XX:MaxPermSize=256m' // Or any other gradle option.
            }
          }
        }
        android {
          testOptions {
            unitTest.all {
              jvmArgs += listOf("-XX:MaxPermSize=256m") // Or any other gradle option.
            }
          }
        }
                    
      • इसमें enum और सार्वजनिक इंस्टेंस फ़ील्ड की हैंडलिंग को ठीक किया गया mockable-android.jar फ़ाइल की पैकेजिंग.
      • लाइब्रेरी प्रोजेक्ट टास्क डिपेंडेंसी को ठीक कर दिया जाता है, ताकि क्लास की जांच की जा सके बदलावों के बाद फिर से कंपाइल करें.
    • लागू करने के लिए testProguardFile प्रॉपर्टी जोड़ी गई किसी फ़ाइल को छोटा करते समय ProGuard फ़ाइलें टेस्ट APK के साथ काम करता है.
    • timeOut प्रॉपर्टी को adbOptions में जोड़ा गया के लिए, ज़्यादा से ज़्यादा रिकॉर्डिंग समय सेट करने के लिए कोड ब्लॉक Android डीबग ब्रिज की स्क्रीन रिकॉर्डिंग शामिल है.
    • 280 डीपीआई संसाधनों के लिए अतिरिक्त सहायता.
    • प्रोजेक्ट के आकलन के दौरान बेहतर परफ़ॉर्मेंस.

    Gradle के लिए Android प्लग इन, संशोधन 1.1.3 (मार्च 2015)

    डिपेंडेंसी:
    • Gradle 2.2.1 या इसके बाद का वर्शन.
    • बिल्ड टूल 21.1.1 या इसके बाद का वर्शन.
    सामान्य जानकारी:
    • टेस्ट ऐप्लिकेशन में डुप्लीकेट डिपेंडेंसी से जुड़ी समस्या को ठीक किया गया. इस समस्या की वजह से, ProGuard काम नहीं कर रहा था.
    • JDK कंपैरेटर कॉन्ट्रैक्ट का पालन न करने वाले और JDK 7 गड़बड़ी जनरेट की गई.

    Gradle के लिए Android प्लग इन, रिविज़न 1.1.2 (फ़रवरी 2015)

    डिपेंडेंसी:
    • Gradle 2.2.1 या इसके बाद का वर्शन.
    • बिल्ड टूल 21.1.1 या इसके बाद का वर्शन.
    सामान्य जानकारी:
    • यूनिट के लिए मॉकेबल JAR बनाते समय, नॉर्मलाइज़ किया गया पाथ टेस्टिंग हो रही है.
    • इसमें archivesBaseName सेटिंग को ठीक किया गया build.gradle फ़ाइल.
    • लाइब्रेरी टेस्ट ऐप्लिकेशन बनाते समय, मेनिफ़ेस्ट मर्ज करने में प्लेसहोल्डर से जुड़ी गड़बड़ी को ठीक किया गया.

    Gradle के लिए Android प्लग इन, रिविज़न 1.1.1 (फ़रवरी 2015)

    डिपेंडेंसी:
    • Gradle 2.2.1 या इसके बाद का वर्शन.
    • बिल्ड टूल 21.1.1 या इसके बाद का वर्शन.
    सामान्य जानकारी:
    • बिल्ड वैरिएंट में बदलाव किया गया है, ताकि सिर्फ़ वे वैरिएंट Wear ऐप्लिकेशन को पैकेज कर सकें जो Wear के लिए बने बिल्ड टास्क को ट्रिगर करते हैं.
    • डिपेंडेंसी से जुड़ी समस्याओं को बदला गया, ताकि बिल्ड के दौरान वे सभी फ़ेल हो जाएं कम समय लगता है. इस व्यवहार की मदद से, डाइग्नोस्टिक्स के टास्क (जैसे, 'डिपेंडेंसी') चलाए जा सकते हैं, ताकि विरोध को हल किया जा सके.
    • android.getBootClasspath() तरीके को ठीक किया गया कोई मान लौटाता है.

    Gradle के लिए Android प्लग इन, रिविज़न 1.1.0 (फ़रवरी 2015)

    डिपेंडेंसी:
    • Gradle 2.2.1 या इसके बाद का वर्शन.
    • बिल्ड टूल 21.1.1 या इसके बाद का वर्शन.
    सामान्य जानकारी:
    • यूनिट टेस्ट के लिए नई सुविधा जोड़ी गई
      • सक्षम किया गया इकाई टेस्ट: स्थानीय जेवीएम पर कोई स्पेशल वर्शन वाली android.jar फ़ाइल में से किसके साथ काम करती है लोकप्रिय मॉकिंग फ़्रेमवर्क को ध्यान में रखें, जैसे कि मॉकिटो.
      • प्रॉडक्ट फ़्लेवर का इस्तेमाल करते समय, नए टेस्ट टास्क testDebug, testRelease, और testMyFlavorDebug जोड़े गए.
      • जोड़े गए नए सोर्स फ़ोल्डर, जिनकी पहचान यूनिट जांच के तौर पर की गई: src/test/java/, src/testDebug/java/, src/testMyFlavor/java/.
      • build.gradle फ़ाइल में नए कॉन्फ़िगरेशन जोड़े गए सिर्फ़-टेस्ट-डिपेंडेंसी का एलान करने के लिए किया जा सकता है, उदाहरण के लिए, testCompile 'junit:junit:4.11', testMyFlavorCompile 'some:library:1.0'.

        ध्यान दें: सिर्फ़ टेस्ट के लिए इस्तेमाल की जाने वाली डिपेंडेंसी, फ़िलहाल Jack (Java Android Compiler Kit) के साथ काम नहीं करती हैं.

      • जोड़ा गया android.testOptions.unitTests.returnDefaultValues अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है मॉकेबल android.jar के व्यवहार को कंट्रोल करने का विकल्प भी देता है.
    • जांच के टास्क के नामों में Test को AndroidTest से बदला गया. उदाहरण के लिए, assembleDebugTest टास्क अब है assembleDebugAndroidTest टास्क. यूनिट टेस्ट टास्क के नाम में अब भी UnitTest है, जैसे कि assembleDebugUnitTest.
    • ProGuard को बदला गया ऐसी कॉन्फ़िगरेशन फ़ाइलें हों जिन्हें अब टेस्ट APK पर लागू नहीं किया जाएगा. अगर छोटा करने की सुविधा चालू है, तो ProGuard, टेस्ट APK को प्रोसेस करता है और सिर्फ़ उस मैपिंग फ़ाइल को लागू करता है जो मुख्य APK को छोटा करते समय जनरेट होती है.
    • डिपेंडेंसी मैनेजमेंट को अपडेट किया गया
      • provided और package स्कोप.

        ध्यान दें: ये दायरे एएआर (Android ARchive) पैकेज के साथ काम नहीं करता और AAR पैकेज वाला बिल्ड फ़ेल हो जाता है.

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

    Gradle के लिए Android प्लग इन, संशोधन 1.0.1 (जनवरी 2015)

    डिपेंडेंसी:
    • Gradle 2.2.1 से 2.3.x तक.

      ध्यान दें: Android का यह वर्शन Gradle के लिए प्लग इन, Gradle 2.4 और इसके साथ काम नहीं करता उच्च.

    • बिल्ड टूल 21.1.1 या इसके बाद का वर्शन.
    सामान्य जानकारी:
    • extractReleaseAnnotations मॉड्यूल को ऐक्सेस करते समय, Gradle बिल्ड न होने की समस्या को ठीक किया गया. (समस्या 81638).
    • पास करने के लिए Disable से जुड़ी समस्या ठीक कर दी गई है --no-optimize Delvik exeutable (dex) की सेटिंग बाइट कोड डालें. (समस्या 82662).
    • लाइब्रेरी को इंपोर्ट करते समय मेनिफ़ेस्ट मर्जर की समस्याओं को ठीक किया गया 16 से targetSdkVersion कम.
    • इनके साथ Android Studio का उपयोग करते समय सघनता के क्रम की समस्या का समाधान किया गया जेडीके 8.

    Gradle के लिए Android प्लग इन, रिविज़न 1.0.0 (दिसंबर 2014)

    डिपेंडेंसी:
    • Gradle 2.2.1 से लेकर 2.3.x तक.

      ध्यान दें: Gradle के लिए Android प्लग इन का यह वर्शन, Gradle 2.4 और इसके बाद के वर्शन के साथ काम नहीं करता.

    • बिल्ड टूल 21.1.1 या इसके बाद का वर्शन.
    सामान्य जानकारी:
    • प्लग इन की शुरुआती रिलीज़.