সামঞ্জস্যপূর্ণ কাঠামোর সরঞ্জাম

অ্যান্ড্রয়েড প্ল্যাটফর্মের নতুন সংস্করণগুলিতে আচরণগত পরিবর্তনের বিরুদ্ধে আপনার অ্যাপ পরীক্ষা এবং ডিবাগ করার জন্য অ্যান্ড্রয়েড ১১ নতুন ডেভেলপার টুল চালু করেছে। এই টুলগুলি একটি সামঞ্জস্যপূর্ণ কাঠামোর অংশ যা অ্যাপ ডেভেলপারদের ডেভেলপার অপশন বা ADB ব্যবহার করে পৃথকভাবে ব্রেকিং পরিবর্তনগুলি চালু এবং বন্ধ করতে দেয়। সর্বশেষ স্থিতিশীল API সংস্করণটি লক্ষ্য করার জন্য প্রস্তুতি নেওয়ার সময় এবং পরবর্তী অ্যান্ড্রয়েড সংস্করণের প্রিভিউ রিলিজের সাথে আপনার অ্যাপটি পরীক্ষা করার সময় এই নমনীয়তা ব্যবহার করুন।

যখন আপনি সামঞ্জস্যতা ফ্রেমওয়ার্ক টুল ব্যবহার করেন, তখন অ্যান্ড্রয়েড প্ল্যাটফর্ম স্বয়ংক্রিয়ভাবে তার অভ্যন্তরীণ যুক্তিকে মানিয়ে নেয়, তাই আপনাকে আপনার targetSDKVersion পরিবর্তন করতে হবে না বা মৌলিক পরীক্ষা করার জন্য আপনার অ্যাপটি পুনরায় কম্পাইল করতে হবে না। যেহেতু পরিবর্তনগুলি পৃথকভাবে টগল করা যায়, আপনি একবারে একটি আচরণ পরিবর্তনকে আলাদা করতে, পরীক্ষা করতে এবং ডিবাগ করতে পারেন অথবা যদি আপনাকে প্রথমে অন্য কিছু পরীক্ষা করার প্রয়োজন হয় তবে সমস্যা সৃষ্টিকারী একটি পরিবর্তন অক্ষম করতে পারেন।

কোন পরিবর্তনগুলি সক্রিয় করা হয়েছে তা কীভাবে সনাক্ত করবেন

যখন কোনও আচরণ পরিবর্তন সক্ষম করা হয়, তখন এটি আপনার অ্যাপ কীভাবে সেই পরিবর্তন দ্বারা প্রভাবিত প্ল্যাটফর্ম API গুলিতে অ্যাক্সেস করে তা প্রভাবিত করতে পারে। আপনি ডেভেলপার বিকল্প, লগক্যাট, অথবা ADB কমান্ড ব্যবহার করে কোন আচরণ পরিবর্তনগুলি সক্ষম করা হয়েছে তা পরীক্ষা করতে পারেন।

ডেভেলপার বিকল্পগুলি ব্যবহার করে সক্ষম পরিবর্তনগুলি সনাক্ত করুন

চিত্র ১. অ্যাপের সামঞ্জস্যতা ডেভেলপার বিকল্পগুলিতে স্ক্রিন পরিবর্তন করে।

আপনি কোন পরিবর্তনগুলি সক্ষম করা হয়েছে তা দেখতে পারেন এবং ডিভাইসের ডেভেলপার বিকল্পগুলিতে সেই পরিবর্তনগুলি চালু বা বন্ধ করতে পারেন । এই বিকল্পগুলি অ্যাক্সেস করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. যদি ডেভেলপার অপশনগুলি ইতিমধ্যেই সক্রিয় না থাকে, তাহলে সেগুলি সক্রিয় করুন
  2. আপনার ডিভাইসের সেটিংস অ্যাপ খুলুন এবং সিস্টেম > অ্যাডভান্সড > ডেভেলপার অপশন > অ্যাপ কম্প্যাটিবিলিটি পরিবর্তন -এ নেভিগেট করুন।
  3. তালিকা থেকে আপনার অ্যাপটি নির্বাচন করুন।

প্রতিটি আচরণগত পরিবর্তন সাধারণত নিম্নলিখিত দুটি বিভাগের একটির অন্তর্গত:

  • অ্যান্ড্রয়েডের সেই সংস্করণে চলমান সমস্ত অ্যাপকে প্রভাবিত করে এমন পরিবর্তন, অ্যাপটির targetSdkVersion নির্বিশেষে।

    এই পরিবর্তনগুলি সামঞ্জস্যতা কাঠামোতে ডিফল্টরূপে সক্রিয় থাকে এবং UI-তে ডিফল্ট সক্ষম পরিবর্তন বিভাগে তালিকাভুক্ত থাকে।

  • যে পরিবর্তনগুলি শুধুমাত্র নির্দিষ্ট কিছু Android ভার্সনকে লক্ষ্য করে এমন অ্যাপগুলিকে প্রভাবিত করে। যেহেতু এই পরিবর্তনগুলি শুধুমাত্র Android এর একটি নির্দিষ্ট সংস্করণকে লক্ষ্য করে এমন অ্যাপগুলিকে প্রভাবিত করে, তাই এগুলিকে targetSDKVersion দ্বারা গেটেড পরিবর্তন হিসাবেও উল্লেখ করা হয়।

    যদি আপনার অ্যাপটি তালিকাভুক্ত API সংস্করণের চেয়ে উচ্চতর সংস্করণকে লক্ষ্য করে থাকে, তাহলে এই পরিবর্তনগুলি সামঞ্জস্যতা কাঠামোতে ডিফল্টরূপে সক্ষম থাকে। উদাহরণস্বরূপ, Android 13 (API স্তর 33) এ targetSDKVersion দ্বারা গেটেড একটি আচরণ পরিবর্তন UI-তে Enabled for targetSdkVersion >=33 শিরোনামের একটি বিভাগে তালিকাভুক্ত করা হবে। Android এর কিছু নিম্ন সংস্করণে, এই বিভাগটির পরিবর্তে "Enabled After SDK API_LEVEL " শিরোনাম দেওয়া হবে।

চিত্র ১-এ আপনি "Default Disabled Changes" নামে একটি বিভাগও লক্ষ্য করবেন। এই বিভাগে আসা পরিবর্তনগুলি বিভিন্ন উদ্দেশ্যে কাজ করতে পারে। এই পরিবর্তনগুলি সক্ষম করার আগে, সেই অ্যান্ড্রয়েড সংস্করণের জন্য সামঞ্জস্যতা কাঠামোর তালিকায় পরিবর্তনের বিবরণটি পড়ুন।

logcat ব্যবহার করে সক্রিয় পরিবর্তনগুলি সনাক্ত করুন

প্রতিটি আচরণ পরিবর্তনের জন্য, আপনার অ্যাপের প্রক্রিয়া চলাকালীন প্রথমবার যখন আপনার অ্যাপ প্রভাবিত API-তে কল করে, তখন সিস্টেমটি এইরকম একটি লগক্যাট বার্তা আউটপুট করে:

D CompatibilityChangeReporter: Compat change id reported: 194833441; UID 10265; state: ENABLED

প্রতিটি লগক্যাট বার্তায় নিম্নলিখিত তথ্য থাকে:

আইডি পরিবর্তন করুন
কোন পরিবর্তনটি অ্যাপটিকে প্রভাবিত করছে তা নির্দেশ করে। এই মানটি অ্যাপ সামঞ্জস্য পরিবর্তন স্ক্রিনে তালিকাভুক্ত আচরণগত পরিবর্তনগুলির একটির সাথে ম্যাপ করে (চিত্র 1 দেখুন)। এই উদাহরণে, 194833441 NOTIFICATION_PERM_CHANGE_ID তে ম্যাপ করে।
ইউআইডি
পরিবর্তনটি কোন অ্যাপ দ্বারা প্রভাবিত হবে তা নির্দেশ করে।
রাজ্য

পরিবর্তনটি অ্যাপটিকে প্রভাবিত করছে কিনা তা নির্দেশ করে।

রাষ্ট্র এই মানগুলির মধ্যে একটি হতে পারে:

রাজ্য অর্থ
ENABLED পরিবর্তনটি সক্রিয় করা হয়েছে এবং যদি অ্যাপটি পরিবর্তিত API গুলি ব্যবহার করে তবে অ্যাপের আচরণকে প্রভাবিত করবে।
DISABLED

পরিবর্তনটি অক্ষম করা হয়েছে এবং অ্যাপটিকে প্রভাবিত করবে না।

দ্রষ্টব্য: যদি অ্যাপের targetSDKVersion প্রয়োজনীয় থ্রেশহোল্ডের নিচে থাকার কারণে এই পরিবর্তনটি অক্ষম করা হয়, তাহলে অ্যাপটি যখন তার targetSDKVersion উচ্চতর সংস্করণে টার্গেট করার জন্য বৃদ্ধি করবে তখন ডিফল্টরূপে পরিবর্তনটি সক্রিয় থাকবে।

LOGGED পরিবর্তনটি সামঞ্জস্যতা কাঠামোর মাধ্যমে লগ করা হচ্ছে কিন্তু এটি চালু বা বন্ধ করা যাচ্ছে না। যদিও এই পরিবর্তনটি টগল করা যাবে না, তবুও এটি আপনার অ্যাপের আচরণকে প্রভাবিত করতে পারে। আরও তথ্যের জন্য সেই Android সংস্করণের সামঞ্জস্যতা কাঠামোর তালিকায় পরিবর্তনের বিবরণ দেখুন। অনেক ক্ষেত্রে, এই ধরণের পরিবর্তনগুলি পরীক্ষামূলক এবং উপেক্ষা করা যেতে পারে।

ADB ব্যবহার করে সক্রিয় পরিবর্তনগুলি সনাক্ত করুন

সম্পূর্ণ ডিভাইসে পরিবর্তনের সম্পূর্ণ সেট (সক্রিয় এবং অক্ষম উভয়) দেখতে নিম্নলিখিত ADB কমান্ডটি চালান:

adb shell dumpsys platform_compat

আউটপুট প্রতিটি পরিবর্তনের জন্য নিম্নলিখিত তথ্য তালিকাভুক্ত করে:

আইডি পরিবর্তন করুন
এই আচরণ পরিবর্তনের জন্য একটি অনন্য শনাক্তকারী। উদাহরণস্বরূপ, 194833441
নাম
এই আচরণের নাম পরিবর্তন। উদাহরণস্বরূপ, NOTIFICATION_PERM_CHANGE_ID
টার্গেটএসডিকে ভার্সন মানদণ্ড

কোন targetSDKVersion পরিবর্তনটি (যদি থাকে) দ্বারা গেটেড।

উদাহরণস্বরূপ, যদি এই পরিবর্তনটি শুধুমাত্র SDK ভার্সন 33 বা তার বেশি টার্গেট করা অ্যাপগুলির জন্য সক্ষম করা হয়, তাহলে enableAfterTargetSdk=32 আউটপুট হবে। যদি পরিবর্তনটি targetSDKVersion দ্বারা গেটেড না হয়, তাহলে enableAfterTargetSdk=0 আউটপুট হবে।

প্যাকেজ ওভাররাইড

প্রতিটি প্যাকেজের নাম যেখানে পরিবর্তনের ডিফল্ট অবস্থা (সক্রিয় বা নিষ্ক্রিয়) ওভাররাইড করা হয়েছে।

উদাহরণস্বরূপ, যদি এটি এমন একটি পরিবর্তন হয় যা ডিফল্টরূপে সক্রিয় থাকে, তাহলে আপনি যদি ডেভেলপার বিকল্প বা ADB ব্যবহার করে পরিবর্তনটি বন্ধ করে দেন তবে আপনার অ্যাপের প্যাকেজ নাম তালিকাভুক্ত হবে। এই ক্ষেত্রে, আউটপুট হবে:

packageOverrides={com.my.package=false}

targetSDKVersion দ্বারা গেটেড পরিবর্তনগুলি ডিফল্টরূপে সক্রিয় বা নিষ্ক্রিয় করা যেতে পারে, তাই প্যাকেজগুলির তালিকায় true বা false উভয় ধরণের উদাহরণ অন্তর্ভুক্ত থাকতে পারে, যা প্রতিটি অ্যাপের targetSDKVersion এর উপর নির্ভর করে। উদাহরণস্বরূপ:

packageOverrides={com.my.package=true, com.another.package=false}

নির্দিষ্ট পরিবর্তন সম্পর্কে আরও জানুন

প্রতিটি অ্যান্ড্রয়েড সংস্করণের ডকুমেন্টেশনের অংশ হিসেবে সামঞ্জস্যতা কাঠামোর আচরণগত পরিবর্তনের সম্পূর্ণ তালিকা অন্তর্ভুক্ত করা হয়েছে। আপনি যে অ্যান্ড্রয়েড সংস্করণের জন্য আপনার অ্যাপটি পরীক্ষা করছেন তার উপর নির্ভর করে আরও তথ্যের জন্য নিম্নলিখিত লিঙ্কগুলি দেখুন:

পরিবর্তনগুলি কখন টগল করতে হবে

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

কখন পরিবর্তনগুলি বন্ধ করতে হবে

পরিবর্তনগুলি কখন টগল অফ করতে হবে তা নির্ধারণ করা সাধারণত targetSDKVersion দ্বারা পরিবর্তনটি গেটেড কিনা তার উপর নির্ভর করে।

সমস্ত অ্যাপের জন্য পরিবর্তনগুলি সক্ষম করা হয়েছে

আপনার অ্যাপের targetSDKVersion যাই হোক না কেন, সমস্ত অ্যাপকে প্রভাবিত করে এমন পরিবর্তনগুলি একটি নির্দিষ্ট প্ল্যাটফর্ম সংস্করণের জন্য ডিফল্টরূপে সক্ষম করা হয়, যাতে আপনি দেখতে পারেন যে আপনার অ্যাপটি সেই প্ল্যাটফর্ম সংস্করণে চালানোর ফলে প্রভাবিত হয়েছে কিনা।

উদাহরণস্বরূপ, যদি আপনি অ্যান্ড্রয়েড ১৬ (এপিআই লেভেল ৩৬) টার্গেট করার প্রস্তুতি নিচ্ছেন, তাহলে আপনি অ্যান্ড্রয়েড ১৬ চালিত ডিভাইসে আপনার অ্যাপটি ইনস্টল করে শুরু করতে পারেন এবং আপনার সাধারণ টেস্টিং ওয়ার্কফ্লো ব্যবহার করে আপনার অ্যাপটি পরীক্ষা করতে পারেন। যদি আপনার অ্যাপটি সমস্যার সম্মুখীন হয়, তাহলে আপনি সেই পরিবর্তনটি অক্ষম করতে পারেন যা সমস্যার সৃষ্টি করছে যাতে আপনি অন্যান্য সমস্যার জন্য পরীক্ষা চালিয়ে যেতে পারেন।

যেহেতু এই পরিবর্তনগুলি targetSDKVersion নির্বিশেষে সমস্ত অ্যাপকে প্রভাবিত করতে পারে, তাই targetSDKVersion দ্বারা গেটেড পরিবর্তনগুলি করার আগে আপনার অ্যাপটি এই পরিবর্তনগুলির জন্য পরীক্ষা করে আপডেট করা উচিত। এটি নিশ্চিত করতে সাহায্য করে যে আপনার ব্যবহারকারীরা যখন তাদের ডিভাইসটি একটি নতুন প্ল্যাটফর্ম সংস্করণে আপডেট করবেন তখন তাদের অ্যাপের অভিজ্ঞতা হ্রাস পাবে না।

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

targetSDKVersion দ্বারা গেটেড পরিবর্তনগুলি

যদি আপনার অ্যাপটি একটি নির্দিষ্ট targetSDKVersion টার্গেট করে, তাহলে সেই সংস্করণ দ্বারা গেটেড যেকোনো পরিবর্তন ডিফল্টরূপে সক্রিয় থাকে। সুতরাং, আপনি যখন আপনার অ্যাপের targetSDKVersion একটি নতুন সংস্করণে স্যুইচ করবেন, তখন আপনার অ্যাপটি একসাথে অনেকগুলি নতুন পরিবর্তন দ্বারা প্রভাবিত হতে শুরু করবে।

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

পরিবর্তনগুলি কখন চালু করতে হবে

যখনই কোনও অ্যাপ গেটেড ভার্সনের চেয়ে কম SDK ভার্সনকে টার্গেট করে, তখন নির্দিষ্ট targetSDKVersion দ্বারা গেটেড পরিবর্তনগুলি ডিফল্টরূপে অক্ষম করা হয়। সাধারণত, যখন আপনি একটি নতুন targetSdkVersion টার্গেট করার জন্য প্রস্তুতি নিচ্ছেন, তখন আপনার কাছে আচরণগত পরিবর্তনগুলির একটি তালিকা থাকবে যা আপনাকে আপনার অ্যাপটি পরীক্ষা এবং ডিবাগ করতে হবে।

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

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

পরিবর্তনগুলি চালু বা বন্ধ করুন

সামঞ্জস্যতা কাঠামো আপনাকে ডেভেলপার অপশন বা ADB কমান্ড ব্যবহার করে প্রতিটি পরিবর্তন চালু বা বন্ধ করতে দেয়। যেহেতু পরিবর্তনগুলি চালু বা বন্ধ করার ফলে আপনার অ্যাপটি ক্র্যাশ হতে পারে বা গুরুত্বপূর্ণ সুরক্ষা পরিবর্তনগুলি অক্ষম করতে পারে, তাই আপনি কখন পরিবর্তনগুলি টগল করতে পারবেন তার উপর কিছু বিধিনিষেধ রয়েছে।

ডেভেলপার বিকল্পগুলি ব্যবহার করে পরিবর্তনগুলি টগল করুন

পরিবর্তনগুলি চালু বা বন্ধ করতে ডেভেলপার বিকল্পগুলি ব্যবহার করুন। ডেভেলপার বিকল্পগুলি খুঁজে পেতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. যদি ডেভেলপার অপশনগুলি ইতিমধ্যেই সক্রিয় না থাকে, তাহলে সেগুলি সক্রিয় করুন
  2. আপনার ডিভাইসের সেটিংস অ্যাপ খুলুন এবং সিস্টেম > অ্যাডভান্সড > ডেভেলপার অপশন > অ্যাপ কম্প্যাটিবিলিটি পরিবর্তন -এ নেভিগেট করুন।
  3. তালিকা থেকে আপনার অ্যাপটি নির্বাচন করুন।
  4. পরিবর্তনের তালিকা থেকে, আপনি যে পরিবর্তনটি চালু বা বন্ধ করতে চান তা খুঁজুন এবং সুইচটি আলতো চাপুন।

    যেসব পরিবর্তন চালু বা বন্ধ করা যেতে পারে তার তালিকা

ADB ব্যবহার করে পরিবর্তনগুলি টগল করুন

ADB ব্যবহার করে কোনও পরিবর্তন চালু বা বন্ধ করতে, নিম্নলিখিত কমান্ডগুলির মধ্যে একটি চালান:

adb shell am compat enable (CHANGE_ID|CHANGE_NAME) PACKAGE_NAME
adb shell am compat disable (CHANGE_ID|CHANGE_NAME) PACKAGE_NAME

CHANGE_ID (উদাহরণস্বরূপ, 194833441 ) অথবা CHANGE_NAME (উদাহরণস্বরূপ, NOTIFICATION_PERM_CHANGE_ID ) এবং আপনার অ্যাপের PACKAGE_NAME পাস করুন।

আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে কোনও পরিবর্তনকে তার ডিফল্ট অবস্থায় ফিরিয়ে আনতে পারেন, ADB বা ডেভেলপার বিকল্পগুলি ব্যবহার করে সেট করা যেকোনো ওভাররাইড সরিয়ে ফেলতে পারেন:

adb shell am compat reset (CHANGE_ID|CHANGE_NAME) PACKAGE_NAME

পরিবর্তনগুলি টগল করার উপর বিধিনিষেধ

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

সামঞ্জস্যতা কাঠামোটি যাতে ক্ষতিকারকভাবে ব্যবহার না করা যায়, তার জন্য কিছু বিধিনিষেধ রয়েছে যে কখন আপনি পরিবর্তনগুলি টগল করতে পারবেন। আপনি কোনও পরিবর্তন টগল করতে পারবেন কিনা তা নির্ভর করে পরিবর্তনের ধরণ, আপনার অ্যাপটি ডিবাগযোগ্য কিনা এবং আপনার ডিভাইসে চলমান বিল্ডের ধরণের উপর। নিম্নলিখিত টেবিলটি বর্ণনা করে যে কখন আপনি বিভিন্ন ধরণের পরিবর্তন টগল করতে পারবেন:

বিল্ডের ধরণ ডিবাগযোগ্য নয় এমন অ্যাপ ডিবাগযোগ্য অ্যাপ
সকল পরিবর্তন targetSDKVersion দ্বারা গেটেড পরিবর্তনগুলি অন্যান্য সকল পরিবর্তন
ডেভেলপার প্রিভিউ অথবা বিটা বিল্ড টগল করা যাচ্ছে না টগল করতে পারবেন টগল করতে পারবেন
পাবলিক ইউজার বিল্ড টগল করা যাচ্ছে না টগল করতে পারবেন টগল করা যাচ্ছে না