Android App Bundles সমর্থন করতে আপনার তাত্ক্ষণিক অ্যাপ স্থানান্তর করুন

আপনি যদি এখনও আপনার অ্যান্ড্রয়েড ইনস্ট্যান্ট অ্যাপ মডিউলগুলির জন্য অবচয়িত বৈশিষ্ট্য Android Gradle প্লাগইন ( com.android.feature ) ব্যবহার করে থাকেন, তাহলে আপনাকে বেস অ্যাপ প্লাগইন ( com.android.application ) এবং ডায়নামিক বৈশিষ্ট্য প্লাগইন ( com.android.dynamic-feature )।

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

আপনি কোন প্লাগইনগুলিতে স্থানান্তর করবেন তা নিম্নলিখিত টেবিলটি আরও ভালভাবে বর্ণনা করে:

মডিউলের বর্ণনা পুরানো প্লাগইন বর্তমান প্লাগইন
আপনার ইনস্টল করা বা তাত্ক্ষণিক অ্যাপ অভিজ্ঞতার জন্য মৌলিক কোড, সংস্থান এবং কার্যকারিতা অন্তর্ভুক্ত মডিউল। com.android.feature ( baseFeature = true সহ) com.android.application

দ্রষ্টব্য: এই মডিউলটিতে আপনার অ্যাপটিকে একটি অ্যান্ড্রয়েড অ্যাপ বান্ডেল বা APK হিসাবে তৈরি এবং প্যাকেজ করার জন্য প্রয়োজনীয় সমস্ত ম্যানিফেস্ট এবং সাইনিং তথ্য অন্তর্ভুক্ত রয়েছে৷

অতিরিক্ত, মডুলার বৈশিষ্ট্য যা ব্যবহারকারীরা চাহিদা অনুযায়ী ডাউনলোড করতে পারেন com.android.feature com.android.dynamic-feature (মডিউলের ম্যানিফেস্টে dist:instant="true" এবং dist:onDemand="false" সহ)
শুধুমাত্র আপনার অ্যাপের ইনস্টল করা সংস্করণে উপলব্ধ একটি বৈশিষ্ট্যের জন্য কোড এবং সংস্থান। com.android.application com.android.dynamic-feature (মডিউলের ম্যানিফেস্টে dist:instant="false" এবং dist:onDemand="false" সহ)

এই পৃষ্ঠাটি আপনাকে দেখায় কিভাবে একটি তাত্ক্ষণিক-সক্ষম Android অ্যাপ বান্ডেল তৈরি করতে আপনার বিদ্যমান তাত্ক্ষণিক অ্যাপ্লিকেশন প্রকল্প স্থানান্তর করতে হয়৷ এটি একটি তাত্ক্ষণিক-সক্ষম Android অ্যাপ বান্ডেল কীভাবে তৈরি, পরীক্ষা এবং প্রকাশ করতে হয় তাও বর্ণনা করে৷

আপনি যদি আপনার অ্যাপের জন্য নতুন তাত্ক্ষণিক অভিজ্ঞতা তৈরি করেন, তবে পরিবর্তে একটি তাত্ক্ষণিক-সক্ষম বৈশিষ্ট্য মডিউল তৈরি করুন পড়ুন।

পরিবর্তনগুলি বুঝুন

আপনি যখন ডায়নামিক ফিচার প্লাগইন ব্যবহার করার জন্য আপনার প্রোজেক্ট স্থানান্তর করেন, তখন Android অ্যাপ বান্ডেলগুলি আপনার অ্যাপ তৈরি এবং প্রকাশ করার একটি নতুন উপায় প্রদান করে যা আপনার ব্যবহারকারীদের কাছে অপ্টিমাইজ করা APK বিতরণ করাকে যথেষ্ট সহজ করে।

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

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

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

আপনার বিদ্যমান তাত্ক্ষণিক অ্যাপ প্রকল্প স্থানান্তর করতে এবং Android অ্যাপ বান্ডেলের আরও অপ্টিমাইজ করা বিতরণ মডেল গ্রহণ করতে, নীচের বিভাগে বর্ণিত পদক্ষেপগুলি অনুসরণ করুন৷

বেস ফিচার মডিউলটিকে একটি অ্যাপ মডিউলে রূপান্তর করুন

মূল অ্যাপ মডিউলে রূপান্তর করার আগে আপনাকে প্রথমে বেস ফিচার মডিউলের build.gradle ফাইলটি সম্পাদনা করতে হবে, নিম্নরূপ:

  1. baseFeature true লাইন মুছুন।
  2. feature বা application নির্ভরতা কনফিগারেশন ব্যবহার করে এমন কোনো নির্ভরতা সরান।

    গ্রোভি

    dependencies {
        ...
        // delete any lines that look like
        // feature project(":foo")
        // feature project(":bar")
        // application project(":app")
    }
    

    কোটলিন

    dependencies {
        ...
        // delete any lines that look like
        // feature(project(":foo"))
        // feature(project(":bar"))
        // application(project(":app"))
    }
    
  3. বর্তমান com.android.application মডিউল থেকে com.android.feature মডিউলে আপনার বেস অ্যাপ মডিউলে থাকা অন্য যেকোনো বিল্ড স্ক্রিপ্ট কনফিগারেশনের সাথে applicationId সরান। কিছু উদাহরণ নিচে দেখানো হয়েছে। এই ধাপের জন্য, আপনার নির্দিষ্ট build.gradle সেটআপের উপর নির্ভর করে, আগের অ্যাপ মডিউল থেকে build.gradle এর android ব্লককে নতুন অ্যাপ মডিউলের build.gradle ফাইলে কপি করে পেস্ট করা সহজ হতে পারে। যাইহোক, এটি করার সময় আপনার সতর্কতা অবলম্বন করা উচিত।

    গ্রোভি

    android {
        ...
        defaultConfig {
            // You need to move the application ID from the app module
            // to your feature module.
            applicationId "com.example.myapp"
            ...
        }
        // Some additional build configurations you might want to
        // copy from your current ‘app’ module may include ProGuard
        // rules and code shrinking settings.
        buildTypes {
            release {
                minifyEnabled true
                proguardFiles getDefaultProguardFile(
                  'proguard-android-optimize.txt'),
                  'proguard-rules.pro'
            }
        }
    }
    

    কোটলিন

    android {
        ...
        defaultConfig {
            // You need to move the application ID from the app module
            // to your feature module.
            applicationId = "com.example.myapp"
            ...
        }
        // Some additional build configurations you might want to
        // copy from your current ‘app’ module may include ProGuard
        // rules and code shrinking settings.
        buildTypes {
            getByName("release") {
                minifyEnabled = true
                proguardFiles(
                    getDefaultProguardFile("proguard-android-optimize.txt"),
                    "proguard-rules.pro"
                )
            }
        }
    }
    
  4. ম্যানিফেস্টে উপযুক্ত বান্ডেল ডিস্ট্রিবিউশন ট্যাগ যোগ করে বৈশিষ্ট্য মডিউলটিকে তাত্ক্ষণিক-সক্ষম হিসাবে চিহ্নিত করুন, যেমনটি নীচে দেখানো হয়েছে।

    <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
        <dist:module dist:instant="true" />
        ...
    </manifest>
    
  5. com.android.application এ প্লাগইন টাইপ পরিবর্তন করে ফিচার মডিউলটিকে আপনার বেস অ্যাপ মডিউলে রূপান্তর করুন:

    গ্রোভি

    // Replace  "plugins { id 'com.android.feature' }"
    // with the following
    plugins {
      id 'com.android.application'
    }
    

    কোটলিন

    // Replace  "plugins { id("com.android.feature") }"
    // with the following
    plugins {
        id("com.android.application")
    }
    

পুরানো অ্যাপ মডিউলটিকে একটি ইনস্টল-টাইম বৈশিষ্ট্য মডিউলে রূপান্তর করুন৷

আপনার যদি পুরানো অ্যাপ মডিউলে কোনও কোড বা সংস্থান না থাকে তবে আপনি এটিকে মুছে ফেলতে পারেন—কারণ আপনি পূর্ববর্তী বিভাগে যে পদক্ষেপগুলি অনুসরণ করেছেন তা আপনার বৈশিষ্ট্য মডিউলটিকে আপনার অ্যাপের বেস অ্যাপ মডিউলে রূপান্তরিত করেছে।

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

একটি বৈশিষ্ট্য মডিউল তৈরি করার জন্য প্লাগইন প্রকারকে com.android.application থেকে com.android.dynamic-feature এ পরিবর্তন করা হয়, সাথে আরও কয়েকটি build.gradle পরিবর্তনগুলি নিম্নরূপ:

  1. প্লাগইন টাইপ com.android.application থেকে com.android.dynamic-feature এ পরিবর্তন করুন।

    গ্রোভি

    // Replace "plugins { id 'com.android.feature' }"
    // with the following:
    plugins {
      id 'com.android.dynamic-feature'
    }
    

    কোটলিন

    // Replace "plugins { id("com.android.application") }"
    // with the following:
    plugins {
        id("com.android.dynamic-feature")
    }
    
  2. পূর্ববর্তী বিভাগে বর্ণিত হিসাবে, নিশ্চিত করুন যে আপনি com.android.application প্লাগইন দ্বারা প্রয়োজনীয় বিল্ড কনফিগারেশনগুলি বেস অ্যাপ মডিউলে স্থানান্তর করেছেন, যেমন applicationId বা proguardFiles নিয়ম।

  3. নিম্নরূপ "ইনস্টলড_ফিচার" এর মতো কিছুতে মডিউলটির নাম পরিবর্তন করুন:

    1. মেনু বার থেকে View > Tool Windows > Project নির্বাচন করে প্রজেক্ট প্যান খুলুন।
    2. বৈশিষ্ট্য মডিউলটিতে ডান-ক্লিক করুন এবং রিফ্যাক্টর > পুনঃনামকরণ নির্বাচন করুন।
    3. প্রদর্শিত ডায়ালগে, পুনঃনামকরণ মডিউল নির্বাচন করুন এবং ঠিক আছে ক্লিক করুন।
    4. মডিউলের জন্য নতুন নাম লিখুন এবং ঠিক আছে ক্লিক করুন।
  4. ধাপ 3 এর মতো, আপনি আগের বিভাগে তৈরি করা নতুন অ্যাপ মডিউলটির নাম পরিবর্তন করে "অ্যাপ" এর মতো কিছু রাখুন।

  5. বৈশিষ্ট্য মডিউলের build.gradle ফাইলে "অ্যাপ" মডিউলের উপর একটি বাস্তবায়ন নির্ভরতা যুক্ত করুন, যেমনটি নীচে দেখানো হয়েছে।

    গ্রোভি

    dependencies {
        ...
        // In the feature module, add an implementation dependency
        // on the base app module.
        implementation project(":app")
    }
    

    কোটলিন

    dependencies {
        ...
        // In the feature module, add an implementation dependency
        // on the base app module.
        implementation(project(":app"))
    }
    
  6. নতুন অ্যাপ মডিউলের build.gradle ফাইলে বৈশিষ্ট্যটি যোগ করুন।

    গ্রোভি

    android {
        ...
        // In the base app module, specify each feature module.
        dynamicFeatures = [":installed_feature"]
    }
    

    কোটলিন

    android {
        ...
        // In the base app module, specify each feature module.
        dynamicFeatures.addAll(listOf(":installed_feature"))
    }
    
  7. ফিচার মডিউলের ম্যানিফেস্টে, ম্যানিফেস্টে উপযুক্ত বান্ডেল ডিস্ট্রিবিউশন ট্যাগ যোগ করে ফিচার মডিউলটিকে একটি ইনস্টলযোগ্য মডিউল হিসেবে চিহ্নিত করুন।

    <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
        <dist:module dist:instant="false" dist:onDemand="false"
                dist:title="@string/title_dynamic_feature">
            <dist:fusing dist:include="true" />
        </dist:module>
        ...
    </manifest>
    

অন্যান্য বৈশিষ্ট্য মডিউলগুলিকে তাত্ক্ষণিক-সক্ষম বৈশিষ্ট্য মডিউলগুলিতে রূপান্তর করুন

আপনি যদি একাধিক বৈশিষ্ট্য মডিউলে আপনার অ্যাপের অতিরিক্ত কার্যকারিতা মডুলারাইজ করে থাকেন, তাহলে সেই মডিউলগুলিকে তাত্ক্ষণিক-সক্ষম বৈশিষ্ট্য মডিউলে রূপান্তর করতে আপনাকে এই বিভাগে পদক্ষেপগুলি অনুসরণ করতে হবে৷

আপনার প্রকল্পের প্রতিটি অবশিষ্ট বৈশিষ্ট্য মডিউলের জন্য, সেগুলিকে তাত্ক্ষণিক-সক্ষম বৈশিষ্ট্যগুলিতে রূপান্তর করতে নিম্নরূপ এগিয়ে যান:

  1. build.gradle ফাইলে প্লাগইন টাইপ পরিবর্তন করে com.android.dynamic-feature এ, নিচের মত করে:

    গ্রোভি

    // Replace 'com.android.feature' with 'com.android.dynamic-feature'
    plugins {
      id 'com.android.dynamic-feature'
    }
    

    কোটলিন

    // Replace "com.android.feature" with "com.android.dynamic-feature"
    plugins {
        id("com.android.dynamic-feature")
    }
    
  2. ম্যানিফেস্টে নিম্নলিখিতগুলি যোগ করে প্রতিটি বৈশিষ্ট্য মডিউলকে তাত্ক্ষণিক-সক্ষম হিসাবে চিহ্নিত করুন৷

    <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
        <dist:module dist:instant="true" dist:onDemand="false"
                dist:title="@string/title_dynamic_feature">
            <dist:fusing dist:include="true" />
        </dist:module>
        ...
    </manifest>
    
  3. নতুন অ্যাপ্লিকেশন মডিউলের build.gradle ফাইলে বৈশিষ্ট্য মডিউল যোগ করুন যেখানে আপনি বৈশিষ্ট্য মডিউলের তালিকায় installed_feature যোগ করেছেন।

    গ্রোভি

    android {
       ...
       dynamicFeatures = [":installed_feature", ":feature_1", ":feature_2"]
       // or whichever name exists for the instant enabled feature module
    }
    

    কোটলিন

    android {
       ...
       dynamicFeatures.addAll(listOf(":installed_feature", ":feature_1", ":feature_2"))
       // or whichever name exists for the instant enabled feature module
    }
    

নতুন তাত্ক্ষণিক-সক্ষম অ্যাপ বান্ডেল তৈরি করুন, পরীক্ষা করুন এবং প্রকাশ করুন৷

এই পৃষ্ঠার ধাপগুলি সম্পূর্ণ করার পরে, আপনার প্রকল্পটি একটি একক শিল্পকর্ম, একটি Android অ্যাপ বান্ডেল তৈরি করতে সক্ষম হয়, যা আপনি Google Play Console-এ আপনার অ্যাপের ইনস্টল করা এবং তাত্ক্ষণিক সংস্করণ প্রকাশ করতে এবং এর জন্য আলাদাভাবে রোল আউট করতে ব্যবহার করতে পারেন। তাত্ক্ষণিক এবং ইনস্টল ট্র্যাক. অতিরিক্ত অ্যাপ বান্ডেলের সাথে, আপনি প্রতিটি ব্যবহারকারীর ডিভাইস কনফিগারেশনের জন্য অপ্টিমাইজ করা APK পরিবেশন করার সুবিধা পান, তাই তারা আপনার অ্যাপ চালানোর জন্য প্রয়োজনীয় কোড এবং সংস্থানগুলি ডাউনলোড করে। অর্থাৎ, বিভিন্ন ডিভাইসকে সমর্থন করার জন্য আপনাকে আর একাধিক APK তৈরি করতে, সাইন করতে এবং পরিচালনা করতে হবে না এবং ব্যবহারকারীরা আরও ছোট, আরও অপ্টিমাইজ করা ডাউনলোড পাবেন।

আপনার তাত্ক্ষণিক-সক্ষম অ্যাপ বান্ডেল তৈরি এবং পরীক্ষা করা শুরু করতে, অ্যাপ বান্ডেল তৈরি করুন এ যান।