অ্যান্ড্রয়েড স্টুডিও ইগুয়ানা | 2023.2.1 (ফেব্রুয়ারি 2024)

অ্যান্ড্রয়েড স্টুডিও ইগুয়ানাতে নিম্নলিখিত নতুন বৈশিষ্ট্যগুলি রয়েছে৷

প্যাচ রিলিজ

অ্যান্ড্রয়েড স্টুডিও ইগুয়ানা এবং অ্যান্ড্রয়েড গ্রেডল প্লাগইন 8.3-এ প্যাচ রিলিজের একটি তালিকা নিচে দেওয়া হল।

অ্যান্ড্রয়েড স্টুডিও ইগুয়ানা | 2023.2.1 প্যাচ 2 এবং AGP 8.3.2 (এপ্রিল 2024)

এই ছোটখাট আপডেটে এই বাগ ফিক্সগুলি অন্তর্ভুক্ত রয়েছে।

অ্যান্ড্রয়েড স্টুডিও ইগুয়ানা | 2023.2.1 প্যাচ 1 এবং AGP 8.3.1 (মার্চ 2024)

এই ছোটখাট আপডেটে এই বাগ ফিক্সগুলি অন্তর্ভুক্ত রয়েছে।

IntelliJ IDEA 2023.2 প্ল্যাটফর্ম আপডেট

Android Studio Iguana IntelliJ IDEA 2023.2 আপডেটগুলি অন্তর্ভুক্ত করে, যা স্টুডিও IDE অভিজ্ঞতা উন্নত করে। পরিবর্তনের বিস্তারিত জানার জন্য, IntelliJ IDEA 2023.2 রিলিজ নোটগুলি দেখুন।

অ্যাপ গুণমান অন্তর্দৃষ্টিতে সংস্করণ নিয়ন্ত্রণ সিস্টেম ইন্টিগ্রেশন

অ্যাপ কোয়ালিটি ইনসাইটস এখন আপনাকে ক্র্যাশলিটিক্স স্ট্যাক ট্রেস থেকে প্রাসঙ্গিক কোডে নেভিগেট করতে দেয়—যে সময়ে ক্র্যাশ হয়েছিল। এজিপি ক্র্যাশ রিপোর্টে গিট কমিট হ্যাশ ডেটা সংযুক্ত করে, যা অ্যান্ড্রয়েড স্টুডিওকে আপনার কোডে নেভিগেট করতে এবং যেখানে সমস্যাটি ঘটেছে সেই সংস্করণে এটি কেমন ছিল তা দেখাতে সহায়তা করে। আপনি যখন অ্যাপ কোয়ালিটি ইনসাইটসে একটি ক্র্যাশ রিপোর্ট দেখেন, তখন আপনি আপনার বর্তমান গিট চেকআউটে কোডের লাইনে নেভিগেট করতে বা ক্র্যাশ তৈরি করা আপনার কোডবেসের সংস্করণ এবং বর্তমান চেকআউটের মধ্যে পার্থক্য দেখতে পারেন।

অ্যাপ কোয়ালিটি ইনসাইটের সাথে আপনার ভার্সন কন্ট্রোল সিস্টেমকে একীভূত করতে, আপনাকে নিম্নলিখিত ন্যূনতম প্রয়োজনীয়তাগুলির প্রয়োজন:

  • অ্যান্ড্রয়েড স্টুডিও ইগুয়ানার সর্বশেষ ক্যানারি সংস্করণ
  • অ্যান্ড্রয়েড গ্রেডল প্লাগইন 8.3 এর সর্বশেষ আলফা সংস্করণ
  • Crashlytics SDK v18.3.7 (বা Firebase Android Bill of Material v32.0.0 )

ডিবাগযোগ্য বিল্ড টাইপের জন্য সংস্করণ নিয়ন্ত্রণ একীকরণ ব্যবহার করতে, মডিউল-স্তরের বিল্ড ফাইলে vcsInfo পতাকা সক্রিয় করুন। রিলিজ (নন-ডিবাগেবল) বিল্ডের জন্য, পতাকাটি ডিফল্টরূপে সক্রিয় থাকে।

কোটলিন

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

গ্রোভি

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

এখন, আপনি যখন আপনার অ্যাপ তৈরি করেন এবং Google Play-তে প্রকাশ করেন, তখন ক্র্যাশ রিপোর্টে স্ট্যাক ট্রেস থেকে আপনার অ্যাপের আগের সংস্করণগুলির সাথে লিঙ্ক করার জন্য IDE-এর জন্য প্রয়োজনীয় ডেটা অন্তর্ভুক্ত করে।

অ্যাপ কোয়ালিটি ইনসাইটস-এ Crashlytics ক্র্যাশ ভেরিয়েন্ট দেখুন

ক্র্যাশের মূল কারণগুলি বিশ্লেষণ করতে আপনাকে সাহায্য করার জন্য, আপনি এখন ইস্যু ভেরিয়েন্ট বা অনুরূপ স্ট্যাকের ট্রেস শেয়ার করে এমন ইভেন্টগুলির গোষ্ঠী দ্বারা ইভেন্টগুলি দেখতে অ্যাপ গুণমান অন্তর্দৃষ্টি ব্যবহার করতে পারেন৷ ক্র্যাশ রিপোর্টের প্রতিটি ভেরিয়েন্টে ইভেন্ট দেখতে, ড্রপডাউন থেকে একটি বৈকল্পিক নির্বাচন করুন। সমস্ত ভেরিয়েন্টের জন্য তথ্য একত্রিত করতে, সমস্ত নির্বাচন করুন।

UI চেক রচনা করুন

ডেভেলপারদের জেটপ্যাক কম্পোজে আরও অভিযোজিত এবং অ্যাক্সেসযোগ্য UI তৈরি করতে সাহায্য করার জন্য, Android Studio Iguana Canary 5 কম্পোজ প্রিভিউতে একটি নতুন UI চেক মোড চালু করেছে। এই বৈশিষ্ট্যটি ভিজ্যুয়াল লিন্টিং এবং ভিউগুলির জন্য অ্যাক্সেসিবিলিটি চেক ইন্টিগ্রেশনের অনুরূপ কাজ করে। আপনি যখন কম্পোজ UI চেক মোড সক্রিয় করেন, তখন Android স্টুডিও স্বয়ংক্রিয়ভাবে আপনার কম্পোজ UI অডিট করে এবং বিভিন্ন স্ক্রীন সাইজ জুড়ে অভিযোজিত এবং অ্যাক্সেসযোগ্যতার সমস্যাগুলি পরীক্ষা করে, যেমন বড় স্ক্রিনে প্রসারিত পাঠ্য বা কম রঙের বৈসাদৃশ্য। মোড বিভিন্ন প্রিভিউ কনফিগারেশনে পাওয়া সমস্যাগুলিকে হাইলাইট করে এবং সমস্যা প্যানেলে তালিকাভুক্ত করে।

UI চেক বোতামে ক্লিক করে আজই এই বৈশিষ্ট্যটি ব্যবহার করে দেখুন প্রিভিউ রচনা করুন এবং আপনার প্রতিক্রিয়া পাঠান:

চেক সক্রিয় করতে কম্পোজ UI চেক মোড বোতামে ক্লিক করুন।

UI চেক মোডের পরিচিত সমস্যা:

  • সমস্যা প্যানেলে নির্বাচিত সমস্যা ফোকাস হারাতে পারে
  • "শাসন দমন" কাজ করে না
কম্পোজ UI চেক মোড সমস্যা প্যানেলে বিশদ সহ সক্রিয় করা হয়েছে।

রচনা পূর্বরূপের জন্য প্রগতিশীল রেন্ডারিং

Android Studio Iguana Canary 3 কম্পোজ প্রিভিউতে প্রগতিশীল রেন্ডারিং চালু করেছে। প্রিভিউগুলিকে আরও পারফরম্যান্স করার ক্রমাগত প্রচেষ্টার অংশ হিসাবে, এখন যে কোনও প্রিভিউ দেখার বাইরে, আমরা উদ্দেশ্যমূলকভাবে ব্যবহৃত মেমরি সংরক্ষণ করতে তাদের রেন্ডার গুণমান হ্রাস করি।

এই বৈশিষ্ট্যটি একটি ফাইলে একই সময়ে আরও প্রিভিউ পরিচালনা করতে সক্ষম হওয়ার মাধ্যমে পূর্বরূপগুলির ব্যবহারযোগ্যতা আরও উন্নত করার লক্ষ্য নিয়ে তৈরি করা হয়েছে। আজ এটি চেষ্টা করে দেখুন এবং আপনার মতামত জমা দিন .

বেসলাইন প্রোফাইল মডিউল উইজার্ড

অ্যান্ড্রয়েড স্টুডিও ইগুয়ানা দিয়ে শুরু করে, আপনি নতুন মডিউল উইজার্ডে বেসলাইন প্রোফাইল জেনারেটর টেমপ্লেট ব্যবহার করে আপনার অ্যাপের জন্য বেসলাইন প্রোফাইল তৈরি করতে পারেন ( ফাইল > নতুন > নতুন মডিউল )।

এই টেমপ্লেটটি আপনার প্রকল্প সেট আপ করে যাতে এটি বেসলাইন প্রোফাইল সমর্থন করতে পারে। এটি নতুন বেসলাইন প্রোফাইল গ্রেডল প্লাগইন ব্যবহার করে, যা একটি গ্রেডল টাস্কের সাথে প্রয়োজনীয় উপায়ে আপনার প্রকল্প সেট আপ করার প্রক্রিয়াটিকে স্বয়ংক্রিয় করে।

টেমপ্লেটটি একটি রান কনফিগারেশনও তৈরি করে যা আপনাকে রান/ডিবাগ কনফিগারেশন নির্বাচন ড্রপ-ডাউন তালিকা থেকে এক ক্লিকে একটি বেসলাইন প্রোফাইল তৈরি করতে দেয়।

এসপ্রেসো ডিভাইস API দিয়ে কনফিগারেশন পরিবর্তনের বিরুদ্ধে পরীক্ষা করুন

আপনার অ্যাপটি পরীক্ষা করার জন্য Espresso ডিভাইস API ব্যবহার করুন যখন ডিভাইসটি সাধারণ কনফিগারেশন পরিবর্তনের মধ্য দিয়ে যায়, যেমন ঘূর্ণন এবং স্ক্রিন খোলা। এসপ্রেসো ডিভাইস API আপনাকে একটি ভার্চুয়াল ডিভাইসে এই কনফিগারেশন পরিবর্তনগুলি অনুকরণ করতে দেয় এবং আপনার পরীক্ষাগুলি সিঙ্ক্রোনাসভাবে চালায়, তাই একটি সময়ে শুধুমাত্র একটি UI অ্যাকশন বা দাবি ঘটে এবং আপনার পরীক্ষার ফলাফলগুলি আরও নির্ভরযোগ্য। এসপ্রেসো দিয়ে কীভাবে UI পরীক্ষা লিখতে হয় সে সম্পর্কে আরও জানুন।

এসপ্রেসো ডিভাইস API ব্যবহার করতে, আপনার নিম্নলিখিতগুলি প্রয়োজন:

  • অ্যান্ড্রয়েড স্টুডিও ইগুয়ানা বা উচ্চতর
  • Android Gradle প্লাগইন 8.3 বা উচ্চতর
  • Android এমুলেটর 33.1.10 বা উচ্চতর
  • Android ভার্চুয়াল ডিভাইস যা API স্তর 24 বা উচ্চতর চালায়

Espresso ডিভাইস API এর জন্য আপনার প্রকল্প সেট আপ করুন

আপনার প্রকল্প সেট আপ করতে যাতে এটি এসপ্রেসো ডিভাইস API সমর্থন করে, নিম্নলিখিতগুলি করুন:

  1. টেস্ট ডিভাইসে টেস্ট পাস কমান্ড দিতে, androidTest সোর্স সেটের ম্যানিফেস্ট ফাইলে INTERNET এবং ACCESS_NETWORK_STATE অনুমতি যোগ করুন:

      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permissions.ACCESS_NETWORK_STATE" />
  2. gradle.properties ফাইলে enableEmulatorControl পরীক্ষামূলক পতাকা সক্ষম করুন:

      android.experimental.androidTest.enableEmulatorControl=true
  3. মডিউল-স্তরের বিল্ড স্ক্রিপ্টে emulatorControl বিকল্পটি সক্ষম করুন:

    কোটলিন

      testOptions {
        emulatorControl {
          enable = true
        }
      }

    গ্রোভি

      testOptions {
        emulatorControl {
          enable = true
        }
      }
  4. মডিউল-স্তরের বিল্ড স্ক্রিপ্টে, আপনার প্রকল্পে এসপ্রেসো ডিভাইস লাইব্রেরি আমদানি করুন:

    কোটলিন

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

    গ্রোভি

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

সাধারণ কনফিগারেশন পরিবর্তনের বিরুদ্ধে পরীক্ষা করুন

এসপ্রেসো ডিভাইস 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. স্ক্রিন ঘোরার পরে, UI আশানুরূপ নতুন লেআউটের সাথে খাপ খায় কিনা তা পরীক্ষা করুন:

      @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() {
  ...
}