Android Studio 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 के मुख्य आईडीई को IntelliJ ने बेहतर बनाया है IDEA से लेकर 3.4.2018 की रिलीज़.

'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' में पेश किया गया था और अब इसका इस्तेमाल करके ऐप्लिकेशन और Android लाइब्रेरी प्रोजेक्ट, दोनों के लिए डिफ़ॉल्ट रूप से चालू हो जाता है 3.4.0 और इसके बाद के वर्शन.

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

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

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

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

ध्यान रखें कि R8 को ProGuard के मौजूदा नियमों के हिसाब से डिज़ाइन किया गया है. इसलिए, R8 का फ़ायदा पाने के लिए आपको कोई कार्रवाई करने की ज़रूरत नहीं है. हालांकि, क्योंकि यह ProGuard की एक अलग टेक्नोलॉजी है जिसे ख़ास तौर पर छोटा करने और ऑप्टिमाइज़ करने की वजह से कोड हटाया जा सकता है जो शायद 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 कॉम्पोनेंट के लिए चाहिए इस्तेमाल करें.