Android Studio 4.1 (अगस्त 2020)

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

4.1.3 (मार्च 2021)

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

4.1.2 (जनवरी 2021)

<p>
  This minor update includes various bug fixes.
  To see a list of notable bug fixes, read the related post on the
  <a href="https://androidstudio.googleblog.com/2021/01/android-studio-412-available.html">
    Release Updates blog</a>.
</p>
<p><b>4.1.1 (November 2020)</b></p>

<p>
  This minor update includes various bug fixes.
  To see a list of notable bug fixes, read the related post on the
  <a href="https://androidstudio.googleblog.com/2020/11/android-studio-411-available.html">
    Release Updates blog</a>.
</p>

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

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

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

सीधे Android Studio में Android Emulator चलाएं

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

Android Studio में टूल विंडो में लॉन्च होने वाला एमुलेटर.

ज़्यादा जानने के लिए, Android एमुलेटर का दस्तावेज़ देखें.

TensorFlow Lite मॉडल का इस्तेमाल करना

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

काम करने वाले मॉडल

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

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

मॉडल फ़ाइल इंपोर्ट करना

इस्तेमाल की जा सकने वाली मॉडल फ़ाइल इंपोर्ट करने के लिए, यह तरीका अपनाएं:

  1. फ़ाइल मेन्यू में, TensorFlow Lite मॉडल इंपोर्ट करने का डायलॉग बॉक्स खोलें. इसके लिए, फ़ाइल > नया > अन्य > TensorFlow Lite मॉडल पर जाएं.
  2. वह .tflite मॉडल फ़ाइल चुनें जिसे आपने पहले डाउनलोड किया था या बनाया था.
  3. पूरा करें पर क्लिक करें.

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

TensorFlow Lite का कोई मॉडल इंपोर्ट करना

मॉडल का मेटाडेटा और इस्तेमाल देखना

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

  • मॉडल: मॉडल के बारे में पूरी जानकारी
  • टेंसर: इनपुट और आउटपुट टेंसर की जानकारी
  • सैंपल कोड: अपने ऐप्लिकेशन में मॉडल के साथ इंटरफ़ेस करने का तरीका

यहां mobilenet_v1_0.25_160_quantized.tflite का इस्तेमाल करने का उदाहरण दिया गया है:

उदाहरण के तौर पर, Android Studio मॉडल के साथ इंटरैक्ट करने के लिए, MobilenetV1025160Quantized नाम की एक क्लास बनाता है.

अगर मॉडल में मेटाडेटा नहीं होगा, तो इस स्क्रीन पर बहुत कम जानकारी मिलेगी.

पहले से मालूम समस्याएं और उन्हें हल करने के तरीके

  • फ़िलहाल, इमेज क्लासिफ़िकेशन और स्टाइल ट्रांसफ़र के अलावा, समस्या वाले डोमेन के लिए TensorFlow Lite मॉडल का इस्तेमाल नहीं किया जा सकता. हालांकि, इंपोर्ट ठीक से काम करना चाहिए, लेकिन कुछ मॉडल इनपुट और/या आउटपुट को आसान टाइप के बजाय TensorBuffers से दिखाया जाता है. जिन मॉडल में कोई मेटाडेटा नहीं होता उनके सभी इनपुट और आउटपुट, TensorBuffers होंगे.
  • DataType.UINT8 या DataType.FLOAT32 से अलग इनपुट और आउटपुट डेटा टाइप वाले मॉडल काम नहीं करते.

इस सुविधा पर अब भी काम चल रहा है. इसलिए, कृपया सुझाव/राय दें या गड़बड़ियों की शिकायत करें.

नेटिव मेमोरी प्रोफ़ाइलर

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

नेटिव मेमोरी प्रोफ़ाइलर में मौजूद रिकॉर्डिंग

नेटिव मेमोरी प्रोफ़ाइलर के बारे में ज़्यादा जानने के लिए, मेमोरी प्रोफ़ाइलर की मदद से अपने ऐप्लिकेशन के मेमोरी के इस्तेमाल की जांच करना लेख पढ़ें.

पहले से मालूम समस्याएं और उन्हें हल करने के तरीके

Android Studio 4.1 में मौजूद नेटिव मेमोरी प्रोफ़ाइलर, Android 11 डिवाइसों पर काम नहीं करता. फ़िलहाल, Android 11 डिवाइसों की प्रोफ़ाइल बनाने की सुविधा, 4.2 के रिलीज़ होने से पहले के वर्शन" में उपलब्ध है.

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

वैकल्पिक हल के तौर पर, Perfetto स्टैंडअलोन कमांड-लाइन प्रोफ़ाइलर का इस्तेमाल करके स्टार्टअप प्रोफ़ाइलों को कैप्चर किया जा सकता है.

सिस्टम ट्रेस यूज़र इंटरफ़ेस (यूआई): आसानी से चुनने की सुविधा, नया विश्लेषण टैब, और फ़्रेम रेंडरिंग का ज़्यादा डेटा

Android Studio प्रोफ़ाइलर में सिस्टम ट्रेस यूज़र इंटरफ़ेस (यूआई) में ये सुधार किए गए हैं:

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

  • खास जानकारी टैब: विश्लेषण पैनल में नए खास जानकारी टैब में यह जानकारी दिखती है:

    • किसी खास इवेंट के सभी आंकड़ों को एक साथ रखें. जैसे, किसी इवेंट के होने की संख्या और उसके लिए सबसे कम या ज़्यादा से ज़्यादा अवधि.

    • चुनी गई घटना के लिए, ट्रेस इवेंट के आंकड़े.

    • थ्रेड की स्थिति के डिस्ट्रिब्यूशन का डेटा.

    • चुने गए ट्रेस इवेंट की सबसे लंबी अवधि.

    किसी दूसरी घटना पर जाने के लिए, टेबल से कोई दूसरी लाइन चुनें.

  • डिसप्ले डेटा: डिसप्ले सेक्शन में, SurfaceFlinger और VSYNC के लिए नई टाइमलाइन की मदद से, अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) में रेंडरिंग से जुड़ी समस्याओं की जांच की जा सकती है.

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

स्टैंडअलोन प्रोफ़ाइलर अब उपलब्ध हैं

नए स्टैंडअलोन प्रोफ़ाइलर की मदद से, अब Android Studio IDE चलाए बिना भी अपने ऐप्लिकेशन की प्रोफ़ाइल बनाई जा सकती है.

स्टैंडअलोन प्रोफ़ाइलर इस्तेमाल करने के बारे में निर्देशों के लिए, स्टैंडअलोन प्रोफ़ाइलर चलाएं देखें.

डैगर नेविगेशन की सुविधा

डैगर इस्तेमाल करने वालों और सेवा देने वाली कंपनियों तक नेविगेट करने के लिए, IDE गटर ऐक्शन

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

  • नई गटर ऐक्शन: Dagger का इस्तेमाल करने वाले प्रोजेक्ट के लिए, IDE में गटर ऐक्शन की सुविधा उपलब्ध होती है. इससे, एनोटेट किए गए Dagger कोड के बीच नेविगेट करने में मदद मिलती है. उदाहरण के लिए, किसी दिए गए टाइप का इस्तेमाल करने वाले तरीके के बगल में मौजूद gutter ऐक्शन पर क्लिक करने पर, आपको उस टाइप के प्रोवाइडर पर ले जाया जाता है. इसके उलट, गटर ऐक्शन पर क्लिक करने से, आपको उस जगह पर ले जाया जाता है जहां किसी टाइप का इस्तेमाल डिपेंडेंसी के तौर पर किया जाता है.

  • यूसेज नोड ढूंढना: जब किसी दिए गए टाइप की सेवा देने वाली कंपनी पर इस्तेमाल ढूंढें शुरू किया जाता है, तो ढूंढें विंडो में अब एक डिपेंडेंसी उपभोक्ता नोड शामिल होता है. इसमें उस टाइप के उपभोक्ताओं की सूची होती है. इसके उलट, Dagger से इंजेक्ट की गई डिपेंडेंसी के उपभोक्ता पर इस कार्रवाई को लागू करने पर, ढूंढें विंडो में आपको उस डिपेंडेंसी का प्रोवाइडर दिखता है.

मटीरियल डिज़ाइन कॉम्पोनेंट: नए प्रोजेक्ट टेंप्लेट में थीम और स्टाइल को अपडेट किया गया

ऐनिमेशन: Android Studio में मटीरियल डिज़ाइन से जुड़ी नई प्रॉपर्टी का इस्तेमाल करके प्रोजेक्ट बनाना.

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

  • एमडीसी: प्रोजेक्ट, build.gradle में मौजूद com.google.android.material:material पर निर्भर करते हैं. ऐप्लिकेशन की बुनियादी थीम, Theme.MaterialComponents.* पैरंट का इस्तेमाल करती हैं. साथ ही, अपडेट किए गए एमडीसी कलर और “चालू है” एट्रिब्यूट को बदल देती हैं.

  • रंगों से जुड़े संसाधन: colors.xml में रंग से जुड़े संसाधनों के लिए लिटरल नाम का इस्तेमाल किया जाता है (उदाहरण के लिए, colorPrimary के बजाय purple_500).

  • थीम संसाधन: थीम संसाधन themes.xml (styles.xml के बजाय) में हैं और Theme.<var><var> नामों का इस्तेमाल करते हैं.

  • गहरे रंग वाली थीम: बेस ऐप्लिकेशन थीम में DayNight पैरंट का इस्तेमाल किया जाता है. ये थीम, res/values और res/values-night के बीच बंटी होती हैं.

  • थीम एट्रिब्यूट: हार्ड कोड किए गए रंगों से बचने के लिए, लेआउट और स्टाइल में रंग रिसॉर्स को थीम एट्रिब्यूट (उदाहरण के लिए, ?attr/colorPrimary) के तौर पर रेफ़र किया जाता है.

IntelliJ IDEA 2020.1

Android Studio के मुख्य IDE को अपडेट किया गया है. इसमें 2020.1 रिलीज़ के ज़रिए, IntelliJ IDEA से मिले सुधार शामिल किए गए हैं. इनमें, वर्शन कंट्रोल ऑपरेशन की सुविधा देने वाली नई कमिट करें विंडो और एक नया ज़ेन मोड शामिल है. इस मोड को टॉगल करने के लिए, व्यू > दिखावट > ध्यान भटकाने वाले विकल्पों से दूर रहने वाला मोड चालू करें को चुनें.

वर्शन 2020.1 में हुए सुधारों के बारे में ज़्यादा जानने के लिए, IDEA 2020.1 देखें.

IDE कॉन्फ़िगरेशन डायरेक्ट्री में बदलाव

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

विंडो

सिंटैक्स: %APPDATA%\Google&lt;product><version>

उदाहरण: C:\Users\YourUserName\AppData\Roaming\Google\AndroidStudio4.1

macOS

सिंटैक्स: ~/Library/Application Support/Google/<product><version>

उदाहरण: ~/Library/Application Support/Google/AndroidStudio4.1

Linux

सिंटैक्स: ~/.config/Google/<product><version>

उदाहरण: ~/.config/Google/AndroidStudio4.1

डायरेक्ट्री की ये नई जगहें, IntelliJ IDEA के हाल ही के अपडेट के मुताबिक हैं. IntelliJ IDEA, वह IDE है जिस पर Android Studio आधारित है.

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

Kotlin 1.3.72

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

कस्टम व्यू की झलक

कस्टम व्यू बनाते समय (उदाहरण के लिए, View या Button क्लास को बड़ा करके), Android Studio अब आपको अपने कस्टम व्यू की झलक दिखाता है. एक से ज़्यादा कस्टम व्यू के बीच स्विच करने के लिए, टूलबार में मौजूद ड्रॉपडाउन मेन्यू का इस्तेमाल करें. इसके अलावा, कॉन्टेंट को वर्टिकल या हॉरिज़ॉन्टल तौर पर रैप करने के लिए, बटन पर क्लिक करें.

IDE में कस्टम व्यू की झलक देखना.

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

नेटिव क्रैश रिपोर्ट के लिए सिंबल

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

अगर आपके ऐप्लिकेशन या गेम को C++ जैसे नेटिव कोड का इस्तेमाल करके बनाया गया है, तो अब आपके पास अपने ऐप्लिकेशन के हर वर्शन के लिए, Play Console पर डीबग सिंबल वाली फ़ाइलें अपलोड करने का विकल्प है. Play Console, इन डीबग सिंबल वाली फ़ाइलों का इस्तेमाल करके आपके ऐप्लिकेशन के स्टैक ट्रेस को सिंबलाइज़ करता है. इससे, ऐप्लिकेशन के बंद होने और एएनआर (ऐप्लिकेशन ने रिस्पॉन्स नहीं दिया) की समस्याओं का विश्लेषण करना आसान हो जाता है. डीबग सिंबल फ़ाइलें अपलोड करने का तरीका जानने के लिए, नेटिव क्रैश के लिए सहायता देखें.

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

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

तेज़ी से डिप्लॉय करने की सुविधा

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

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

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

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