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 या उसके बाद के वर्शन वाले डिवाइस पर डिप्लॉय करें. इसके बाद, मेन्यू बार में जाकर व्यू > टूल विंडो > डेटाबेस इंस्पेक्टर चुनें.

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

Android Studio में सीधे तौर पर Android Emulator चलाना

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

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

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

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

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

इन मॉडल के साथ काम करता है

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

TensorFlow Hub पर, मेटाडेटा के साथ पहले से ट्रेन किए गए कई मॉडल उपलब्ध हैं. 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 के तौर पर दिखाया जाता है. मेटाडेटा के बिना वाले मॉडल के लिए, सभी मॉडल इनपुट और आउटपुट TensorBuffer होंगे.
  • ऐसे मॉडल इस्तेमाल नहीं किए जा सकते जिनमें इनपुट और आउटपुट डेटा टाइप, DataType.UINT8 या DataType.FLOAT32 से अलग हों.

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

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

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

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

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

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

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

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

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

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

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

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

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

    • किसी इवेंट के होने की कुल संख्या और कम से कम/ज़्यादा से ज़्यादा अवधि जैसी जानकारी.

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

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

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

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

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

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

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

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

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

Dagger नेविगेशन की सुविधा

Dagger के उपभोक्ताओं और प्रोवाइडर पर नेविगेट करने के लिए, IDE गटर ऐक्शन

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

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

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

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

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

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

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

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

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

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

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

IntelliJ IDEA 2020.1

Android Studio IDE के मुख्य हिस्से को IntelliJ IDEA के 2020.1 वर्शन के साथ अपडेट किया गया है. इसमें कई सुधार किए गए हैं. जैसे, नई Commit विंडो. इससे वर्शन कंट्रोल से जुड़ी कार्रवाइयां की जा सकती हैं. साथ ही, इसमें नया ज़ेन मोड भी जोड़ा गया है. इसे टॉगल करने के लिए, View > Appearance > Enter Distraction Free Mode को चुनें.

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

आईडीई में कस्टम व्यू की झलक देखें.

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

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

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

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

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

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

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

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

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

कोड में अन्य बदलाव करने की सुविधा

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