ডিভাইস টার্গেটিং (বিটা)

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

আপনি ডিভাইসের এইসব প্রপার্টি টার্গেট করতে পারবেন:

  • ডিভাইসের মডেল
  • ডিভাইস RAM
  • সিস্টেম ফিচার
  • চিপের মধ্যে সিস্টেম (কমপক্ষে ৩১ API লেভেল সহ ডিভাইসের জন্য)

প্রয়োজনীয় ধাপের ওভারভিউ

ডিভাইস টার্গেট করার সুবিধা চালু করতে নিম্নলিখিত ধাপগুলি অনুসরণ করতে হবে:

  1. ডিভাইস টার্গেট করার কনফিগারেশন ফাইলে আপনার ডিভাইস গ্রুপ নির্ধারণ করুন।
  2. আপনার বান্ডেলের কোন অংশ কোন ডিভাইস গ্রুপে যাবে তা নির্দিষ্ট করুন।
  3. ঐচ্ছিক: আপনার কনফিগারেশন লোকালি টেস্ট করুন।
  4. Google Play-তে আপনার বান্ডেল (কনফিগারেশন ফাইল সহ) আপলোড করুন।

Android Gradle প্লাগ-ইন বনাম Play Unity প্লাগ-ইন

আপনি Android Gradle প্লাগ-ইন নাকি Play Unity প্লাগ-ইন ব্যবহার করে অ্যাপ তৈরি করছেন তার উপর নির্ভর করে প্রয়োজনীয় ধাপগুলি আলাদা হয়। এগিয়ে যাওয়ার আগে, আপনার বিল্ড সেট-আপ বেছে নিন:

Android Gradle প্লাগ-ইন ভার্সন চেক করুন

ডিভাইস টার্গেট করার সুবিধা ব্যবহার করতে, আপনার Android Gradle প্লাগ-ইন (AGP) ভার্সন অন্তত 8.10.0-alpha01 হতে হবে। এটি Android Studio Meerkat 2 এবং তার পরবর্তী যেকোনও ভার্সনের সাথে প্যাকেজ করা আছে।

Android Gradle প্লাগ-ইনে ডিভাইস টার্গেটিং চালু করা

আপনার gradle.properties ফাইলে ডিভাইস টার্গেটিং স্পষ্টভাবে চালু করতে হবে:

android.experimental.enableDeviceTargetingConfigApi=true

ডিভাইস টার্গেটিং কনফিগারেশন XML ফাইল তৈরি করুন

ডিভাইস টার্গেটিং কনফিগারেশন ফাইল হল একটি XML ফাইল যেখানে আপনি নিজের কাস্টম ডিভাইস গ্রুপ সংজ্ঞায়িত করেন। যেমন, আপনি high_ram নামে একটি ডিভাইস গ্রুপ নির্ধারণ করতে পারেন যাতে কমপক্ষে ৮ জিবি RAM সহ সব ডিভাইস থাকে:

<config:device-targeting-config
    xmlns:config="http://schemas.android.com/apk/co>nfig&q<uot;

    config:device-group name=>"hig<h_ram"
        config:device-selector ram-min>-byte<s="8000000000&q>uo<t;/
    /config:device-group

/>config:device-targeting-config

ডিভাইস গ্রুপ সর্বাধিক ৫টি ডিভাইস সিলেক্টর নিয়ে গঠিত হয়। কোনও ডিভাইস যদি তার যেকোনও ডিভাইস সিলেক্টরের শর্ত পূরণ করে, তাহলে সেটি ডিভাইস গ্রুপে অন্তর্ভুক্ত করা হয়।

ডিভাইস বাছাইকারীতে এক বা একাধিক ডিভাইস প্রপার্টি থাকতে পারে। কোনও ডিভাইস তখনই বেছে নেওয়া হয় যখন এটি সিলেক্টরের সব ডিভাইস প্রপার্টির সাথে ম্যাচ করে।

উপলভ্য ডিভাইসের প্রপার্টি

  • device_ram: ডিভাইসের RAM সংক্রান্ত প্রয়োজনীয়তা
    • min_bytes (ইনক্লুসিভ): ন্যূনতম প্রয়োজনীয় RAM (বাইটে)
    • max_bytes (এক্সক্লুসিভ): সর্বাধিক প্রয়োজনীয় RAM (বাইটে)
  • included_device_ids: এই সিলেক্টরে অন্তর্ভুক্ত করার জন্য ডিভাইসের মডেল (প্রতি গ্রুপে সর্বাধিক ১০০০০ device_ids)। ডিভাইসটি তালিকার যেকোনও device_id-এর সাথে ম্যাচ করলে এই প্রপার্টিটি পূরণ হয়।
    • build_brand: ডিভাইস প্রস্তুতকারক
    • build_device: ডিভাইস মডেল কোড
  • excluded_device_ids: এই সিলেক্টরে বাদ দেওয়া ডিভাইসের মডেল (প্রতি গ্রুপে সর্বাধিক ১০০০০ device_ids)। ডিভাইসটি তালিকায় থাকা কোনও device_id-এর সাথে ম্যাচ না করলে এই প্রপার্টি পূরণ হয়।
    • build_brand: ডিভাইস প্রস্তুতকারক
    • build_device: ডিভাইস মডেল কোড
  • required_system_features: এই সিলেক্টরের মাধ্যমে অন্তর্ভুক্ত করার জন্য ডিভাইসে যেসব ফিচার থাকতে হবে (প্রতি গ্রুপে সর্বাধিক ১০০টি ফিচার)। এই প্রপার্টি পূরণ করতে ডিভাইসে এই তালিকার সব সিস্টেম ফিচার থাকতে হবে।

    সিস্টেম ফিচার রেফারেন্স

    • নাম: সিস্টেম ফিচার
  • forbidden_system_features: এই সিলেক্টর দ্বারা অন্তর্ভুক্ত করার জন্য ডিভাইসে অবশ্যই থাকতে হবে না এমন ফিচার (প্রতি গ্রুপে সর্বাধিক ১০০টি ফিচার)। কোনও ডিভাইসে এই তালিকার কোনও সিস্টেম ফিচার থাকলে, সেটি এই প্রপার্টি পূরণ করে না।

    সিস্টেম ফিচার রেফারেন্স

    • নাম: সিস্টেম ফিচার
  • system-on-chip: এই সিলেক্টরে অন্তর্ভুক্ত করার জন্য চিপের মধ্যে সিস্টেম। এই প্রপার্টি পূরণ করতে, ডিভাইসে এই তালিকার যেকোনও চিপ থাকতে হবে। চিপে সিস্টেম শুধুমাত্র কমপক্ষে ৩১ API লেভেল সহ ডিভাইসে টার্গেট করা যেতে পারে।

একটি সিলেক্টরে একাধিক প্রপার্টি যোগ করলে লজিক্যাল AND তৈরি হয়, যেমন:

  <config:device-selector ram-min-bytes="700000>0000&qu<ot;
      config:included-device-id brand="google&q>uot<; device="flame&qu>ot;/
  /config:device-selector

> ৭ জিবি RAM আছে এমন সব ডিভাইসের জন্য শর্ত তৈরি করবে এবং এটি একটি Pixel 4, এছাড়াও এইভাবে লেখা হয়েছে:

আপনি যদি OR শর্ত চান, তাহলে একটি ডিভাইস গ্রুপে আলাদা আলাদা সিলেক্টর তৈরি করুন, যেমন:

  <config:device-selector ram-min-bytes="7000000>000<"/
  config:devic>e-selecto<r
        config:included-device-id brand="google&q>uot<; device="flame&qu>ot;/
  /config:device-selector

> ৭ জিবি RAM আছে এমন সব ডিভাইসের জন্য শর্ত তৈরি করবে অথবা এটি একটি Pixel 4, এছাড়াও এইভাবে লেখা হয়েছে:

এখানে একটি উদাহরণ দেওয়া হল যেখানে ডিভাইসের সব সম্ভাব্য প্রপার্টি দেখানো হয়েছে:

<config:device-targeting-config
    xmlns:config="http://schemas.android.com/apk/co>nfig&q<uot;

    config:device-group name=">myCusto<mGroup1"
      config:device-selector ram-mi>n-bytes=&<quot;8000000000"
        config:included-device-id b>rand=&quo<t;google" device="redfin"/
        config:in>cluded-de<vice-id brand="google" device=">;sailfish<"/
        config:included-device-id brand="goo>d-brand&q<uot;/
        config:excluded-device-id brand="google&>quot; dev<ice="caiman"/
        config:system-on-chip manuf>acturer<="Sinclair" m>odel=&q<uot;ZX80"/
        config:system-on-chip manuf>actur<er="Commodore&q>uot; m<odel="C64"/
      /config:devic>e-selec<tor
      config:device-selector ram-min-bytes="16000000000"/
    >/config:d<evice-group

    config:device-group name="myCustomGroup2&qu>ot;
     < config:device-selector ram-min-bytes="4000000000" ram>-max-byte<s="8000000000"
        config:required-system-feature> name=&qu<ot;android.hardware.bluetooth"/
        config:requi>red-sys<tem-feature name=">andro<id.hardware.location>&q<uot;/
        config:forbidden->system-feature name="android.hardware.camera"/
        config:forbidden-system-feature name="mindcontrol.laser"/
      /config:device-selector
    /config:device-group

/config:device-targeting-config

অফিসিয়াল ডিভাইস প্রস্তুতকারক এবং ডিভাইস মডেল কোড

আপনি Google Play Console-এ ডিভাইস ক্যাটালগ ব্যবহার করে ডিভাইস প্রস্তুতকারক এবং মডেল কোডের জন্য সঠিক ফর্ম্যাটিং খুঁজে পেতে পারেন, এর মধ্যে যেকোনও একটি উপায়ে:

  • ডিভাইস ক্যাটালগ ব্যবহার করে আলাদা আলাদা ডিভাইস পরীক্ষা করা এবং নিচে দেখানো উদাহরণের মতো লোকেশনে প্রস্তুতকারক ও মডেল কোড খুঁজে বের করা (Google Pixel 4a-এর ক্ষেত্রে প্রস্তুতকারক হল "Google" এবং মডেল কোড হল "sunfish"):

    ডিভাইস ক্যাটালগে pixel 4a পৃষ্ঠা

    ডিভাইস ক্যাটালগে pixel 4a পৃষ্ঠা

  • কাজ করে এমন ডিভাইসের CSV ডাউনলোড করা এবং build_brand ও build_device ফিল্ডের জন্য যথাক্রমে প্রস্তুতকারক ও মডেল কোড ব্যবহার করা।

আপনার অ্যাপ বান্ডেলে ডিভাইস টার্গেটিং কনফিগারেশন ফাইল অন্তর্ভুক্ত করুন

আপনার মূল মডিউলের build.gradle ফাইলে নিম্নলিখিতগুলি যোগ করুন:

android {
  ...
  bundle {
    deviceTargetingConfig = file('device_targeting_config.xml')
    deviceGroup {
      enableSplit = true   // split bundle by #group
      defaultGroup = "other"  // group used for standalone APKs
    }
  }
  ...
}

device_targeting_config.xml হল মূল মডিউলের সাথে সম্পর্কিত আপনার কনফিগারেশন ফাইলের পাথ। এটি নিশ্চিত করে যে আপনার কনফিগারেশন ফাইলটি আপনার অ্যাপ বান্ডেলের সাথে প্যাকেজ করা হয়েছে।

deviceGroup ক্লজ নিশ্চিত করে যে আপনার বান্ডেল থেকে তৈরি করা APKগুলি ডিভাইস গ্রুপ দ্বারা বিভক্ত।

Play ফিচার ডেলিভারির জন্য ডিভাইস টার্গেটিং

Play ফিচার ডেলিভারির সাথে ডিভাইস টার্গেটিং ব্যবহার করতে, শর্তসাপেক্ষ ডেলিভারির জন্য ডকুমেন্টেশন দেখুন।

Play Asset Delivery-এর জন্য ডিভাইস টার্গেটিং

Play Asset Delivery-এর সাথে ডিভাইস টার্গেটিং ব্যবহার করতে, অ্যাসেট প্যাকের ডকুমেন্টেশন দেখুন।

অন-ডিভাইস AI মডেল ডেলিভারির জন্য ডিভাইস টার্গেটিং

অন-ডিভাইস AI-এর জন্য Play-এর সাথে ডিভাইস টার্গেটিং ব্যবহার করতে, AI প্যাকের জন্য ডকুমেন্টেশন দেখুন।

সমস্যার ব্যাপারে অভিযোগ জানান

পাবলিক Issue Tracker-এ যেকোনও সমস্যার ব্যাপারে অভিযোগ জানান।