Android Studio इग्वाना | 1.2.2023 (फ़रवरी 2024)

Android Studio Iguana की नई सुविधाएं ये हैं.

पैच रिलीज़

Android Studio Iguana में पैच रिलीज़ की सूची नीचे दी गई है और Android Gradle प्लग इन 8.3.

Android Studio Iguana | 2023.2.1 पैच 2 और AGP 8.3.2 (अप्रैल 2024)

इस छोटे अपडेट में, गड़बड़ियां ठीक करने से जुड़े ये अपडेट शामिल हैं.

Android Studio इग्वाना | 2.1 पैच 1 और एजीपी 8.3.1 (मार्च 2024)

इस छोटे अपडेट में, गड़बड़ियां ठीक करने से जुड़े ये अपडेट शामिल हैं.

IntelliJ IDEA 2023.2 प्लैटफ़ॉर्म से जुड़ा अपडेट

Android Studio Iguana में IntelliJ IDEA 2023.2 के अपडेट शामिल हैं. इनसे Studio IDE का अनुभव बेहतर होता है. बदलावों के बारे में जानकारी के लिए, यहां देखें: IntellaJ IDEA 2023.2 के प्रॉडक्ट की जानकारी.

ऐप्लिकेशन की क्वालिटी से जुड़ी अहम जानकारी में वर्शन कंट्रोल सिस्टम इंटिग्रेशन

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

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

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

Kotlin

android {
  buildTypes {
    getByName("debug") {
      vcsInfo {
        include = true
      }
    }
  }
}

ग्रूवी

android {
  buildTypes {
    debug {
      vcsInfo {
        include true
      }
    }
  }
}

अब ऐप्लिकेशन बनाने और उसे Google Play पर पब्लिश करने पर, क्रैश रिपोर्ट में आपके ऐप्लिकेशन के पिछले वर्शन को लिंक करने के लिए, IDE के लिए ज़रूरी डेटा स्टैक ट्रेस.

ऐप्लिकेशन की क्वालिटी की अहम जानकारी में, Crashlytics के क्रैश वैरिएंट देखना

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

यूज़र इंटरफ़ेस (यूआई) की जांच करना

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

इस सुविधा को आज ही आज़माएं. इसके लिए, 'लिखें' पेज पर, यूज़र इंटरफ़ेस (यूआई) की जांच करने वाले बटन पर क्लिक करें और अपना सुझाव/राय/शिकायत भेजें:

जांच करने की सुविधा चालू करने के लिए, 'यूज़र इंटरफ़ेस (यूआई) की जांच करने के लिए कॉम्पोज़ मोड' बटन पर क्लिक करें.

यूज़र इंटरफ़ेस (यूआई) जांच मोड की पहले से मालूम समस्याएं:

  • समस्या वाले पैनल में चुनी गई समस्या से फ़ोकस हट सकता है
  • "सप्रेस रूल" काम नहीं करता
'यूज़र इंटरफ़ेस (यूआई) जांचें' मोड चालू किया गया. इसमें समस्याओं वाले पैनल में दी गई जानकारी मौजूद है.

'लिखें' सुविधा की झलक के लिए प्रोग्रेसिव रेंडरिंग

Android Studio Iguana Canary 3 में, Compose के झलक वाले वर्शन में प्रोग्रेसिव रेंडरिंग की सुविधा जोड़ी गई है. अब हम झलक को बेहतर बनाने के लिए लगातार कोशिश कर रहे हैं. के लिए, हम जान-बूझकर उनकी रेंडर क्वालिटी को कम करते हैं. का इस्तेमाल किया जा सकता है.

इस सुविधा को बनाने का मकसद, किसी फ़ाइल में एक ही समय पर ज़्यादा झलक मैनेज करके, झलक देखना. आज़माएँ इसे आज ही रिलीज़ करें और अपना सुझाव सबमिट करें.

बेसलाइन प्रोफ़ाइल मॉड्यूल का विज़र्ड

Android Studio Iguana की शुरुआत में, Android Studio Iguana की ओर से आपके ऐप्लिकेशन के लिए बेसलाइन प्रोफ़ाइल नए मॉड्यूल विज़र्ड में, बेसलाइन प्रोफ़ाइल जनरेटर टेंप्लेट का इस्तेमाल करके (फ़ाइल > नया > नया मॉड्यूल).

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

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

Espresso Device API की मदद से, कॉन्फ़िगरेशन में हुए बदलावों की जांच करना

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

Espresso Device API का इस्तेमाल करने के लिए, आपके पास ये चीज़ें होनी चाहिए:

  • Android Studio Iguana या इसके बाद का वर्शन
  • 'Android Gradle प्लग इन 8.3' या इसके बाद वाला वर्शन
  • Android Emulator 33.1.10 या इसके बाद का वर्शन
  • एपीआई लेवल 24 या उसके बाद के वर्शन पर चलने वाला Android वर्चुअल डिवाइस

Espresso Device API के लिए अपना प्रोजेक्ट सेट अप करना

अपने प्रोजेक्ट को इस तरह सेट अप करें कि वह Espresso Device API के साथ काम करे:

  1. टेस्ट को टेस्ट डिवाइस पर निर्देश भेजने की अनुमति देने के लिए, androidTest सोर्स सेट में मौजूद मेनिफ़ेस्ट फ़ाइल में INTERNET और ACCESS_NETWORK_STATE अनुमतियां जोड़ें:

      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permissions.ACCESS_NETWORK_STATE" />
  2. इसमें enableEmulatorControl प्रयोग के तौर पर इस्तेमाल होने वाले फ़्लैग को चालू करें gradle.properties फ़ाइल:

      android.experimental.androidTest.enableEmulatorControl=true
  3. मॉड्यूल-लेवल की बिल्ड स्क्रिप्ट में emulatorControl विकल्प चालू करें:

    Kotlin

      testOptions {
        emulatorControl {
          enable = true
        }
      }

    Groovy

      testOptions {
        emulatorControl {
          enable = true
        }
      }
  4. मॉड्यूल-लेवल की बिल्ड स्क्रिप्ट में, अपने प्रोजेक्ट में Espresso डिवाइस लाइब्रेरी को इंपोर्ट करें:

    Kotlin

      dependencies {
        androidTestImplementation("androidx.test.espresso:espresso-device:3.6.1")
      }

    ग्रूवी

      dependencies {
        androidTestImplementation 'androidx.test.espresso:espresso-device:3.6.1'
      }

कॉन्फ़िगरेशन में किए गए सामान्य बदलावों के हिसाब से जांच करना

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

स्क्रीन को घुमाने के हिसाब से टेस्ट करें

यहां दिए गए उदाहरण से यह पता लगाया जा सकता है कि डिवाइस की स्क्रीन पर, आपके ऐप्लिकेशन का क्या होता है घुमाता है:

  1. सबसे पहले, डिवाइस को पोर्ट्रेट मोड पर सेट करें, ताकि हर बार एक जैसी स्थिति में सेशन शुरू हो:

      import androidx.test.espresso.device.action.ScreenOrientation
      import androidx.test.espresso.device.rules.ScreenOrientationRule
      ...
      @get:Rule
      val screenOrientationRule: ScreenOrientationRule = ScreenOrientationRule(ScreenOrientation.PORTRAIT)
  2. ऐसा टेस्ट बनाएं जो जांच के दौरान डिवाइस को लैंडस्केप ओरिएंटेशन पर सेट करता हो:

      @Test
      fun myRotationTest() {
        ...
        // Sets the device to landscape orientation during test execution.
        onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE)
        ...
      }
  3. स्क्रीन के घूमने के बाद, देखें कि यूज़र इंटरफ़ेस (यूआई) नए लेआउट में सही तरीके से काम कर रहा है या नहीं:

      @Test
      fun myRotationTest() {
        ...
        // Sets the device to landscape orientation during test execution.
        onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE)
        composeTestRule.onNodeWithTag("NavRail").assertIsDisplayed()
        composeTestRule.onNodeWithTag("BottomBar").assertDoesNotExist()
      }

स्क्रीन के फ़ोल्ड होने की जांच करना

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

  1. सबसे पहले, डिवाइस को फ़ोल्ड किए गए मोड में खोलकर देखें. इसके लिए, onDevice().setClosedMode(). पक्का करें कि आपके ऐप्लिकेशन का लेआउट, स्क्रीन की कम चौड़ाई के हिसाब से हो:

      @Test
      fun myUnfoldedTest() {
        onDevice().setClosedMode()
        composeTestRule.onNodeWithTag("BottomBar").assetIsDisplayed()
        composeTestRule.onNodeWithTag("NavRail").assetDoesNotExist()
        ...
      }
  2. पूरी तरह अनफ़ोल्ड मोड के लिए, कॉल करें onDevice().setFlatMode(). यह देखना कि ऐप्लिकेशन का लेआउट ज़रूरत के मुताबिक काम कर रहा है बड़ा किया गया साइज़ क्लास:

      @Test
      fun myUnfoldedTest() {
        onDevice().setClosedMode()
        ...
        onDevice().setFlatMode()
        composeTestRule.onNodeWithTag("NavRail").assertIsDisplayed()
        composeTestRule.onNodeWithTag("BottomBar").assetDoesNotExist()
      }

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

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

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

@Test
@RequiresDeviceMode(mode = FLAT)
fun myUnfoldedTest() {
  ...
}