ডিভাইস টিয়ার টার্গেটিং

ডিভাইস টিয়ার টার্গেটিং কি?

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

প্লে অ্যাসেট ডেলিভারির মতো, ডিভাইস টিয়ার টার্গেটিং এপিআই 16 (জেলি বিন 4.1) এবং তার উপরে সমর্থন করে, তবে ডিভাইসগুলি এপিআই 19 (কিটক্যাট 4.4.X) এবং নিম্ন ডিফল্ট স্তর ডিভাইস বিল্ড নির্বিশেষে বিতরণ করা হয়।

বিকাশকারী যাত্রা

একটি উচ্চ স্তরে, আপনার বিদ্যমান গেমে DTT সংহত করতে, আপনাকে নিম্নলিখিত পদক্ষেপগুলি গ্রহণ করতে হবে:

  1. আপনার গেমের মধ্যে ডিভাইস টিয়ার টার্গেটিং (এবং এক্সটেনশন দ্বারা, প্লে অ্যাসেট ডেলিভারি) একীভূত করুন
    • আপনার গেমে প্লে অ্যাসেট ডেলিভারি ইন্টিগ্রেট করুন (যদি আপনি ইতিমধ্যে এটি না করে থাকেন)
    • সম্পদ প্যাক মধ্যে আপনার সম্পদ বিভক্ত
    • আপনি Play-তে আপলোড করবেন এমন চূড়ান্ত Android App Bundle আর্টিফ্যাক্টের জন্য আপনার কোড এবং সম্পদ একসাথে প্যাকেজ করুন।
  2. আপনার ডিভাইস টিয়ার টার্গেটিং কনফিগারেশন তৈরি করুন যাতে Play জানতে পারে কিভাবে ব্যবহারকারীর ডিভাইসে আপনার সম্পদ সরবরাহ করতে হয়।
    • Google Play Developer API সেট আপ করুন (যদি ইতিমধ্যে সম্পূর্ণ না হয়ে থাকে), যা আপনি প্লে-তে DTT কনফিগার পাঠাতে ব্যবহার করবেন।
    • ডিটিটি কনফিগারেশন তৈরি করতে ধাপগুলি দিয়ে যান।
  3. প্লে-তে আপনার AAB আপলোড করুন এবং সবকিছু সঠিকভাবে কনফিগার করা হয়েছে তা নিশ্চিত করতে পরীক্ষা করুন

আপনি প্রথম বিভাগে লক্ষ্য করবেন, আপনি যে বিল্ড সিস্টেম ব্যবহার করেন তার উপর নির্ভর করে গাইডে কাঁটা থাকবে। আপনি যে সিস্টেমটি চয়ন করেন তা নির্ভর করে আপনি যে ইঞ্জিনটি ব্যবহার করছেন এবং আপনার বিদ্যমান সেটআপের উপর।

  • Gradle (জাভা এবং নেটিভ গেমগুলির জন্য প্রস্তাবিত) : Gradle ব্যবহার করে তৈরি গেমগুলির জন্য, DTT সমর্থন সহ আপনার AAB তৈরি করতে বিল্ড সিস্টেম কনফিগার করতে এই পদক্ষেপগুলি অনুসরণ করুন।
    • আপনি যদি আপনার গেমটি Gradle-এ রপ্তানি করেন তবে সেখানে আপনার বিল্ড শেষ করুন, আমরা এই নির্দেশাবলী অনুসরণ করার পরামর্শ দিই (উদাঃ ইউনিটি গেমগুলি গ্রেডলে রপ্তানি করা হয়েছে) )
  • ইউনিটি প্লাগইন : আপনার ইউনিটি প্রকল্পে আমদানি করার জন্য আমরা আপনাকে ইউনিটি প্যাকেজ সরবরাহ করব, যা আপনাকে ডিটিটি সমর্থন সহ আপনার AAB কনফিগার করতে এবং তৈরি করতে দেবে।

আপনার অ্যাপের মধ্যে ডিভাইস টিয়ার টার্গেটিং সেট আপ করা হচ্ছে

আপনার গেমে প্লে অ্যাসেট ডেলিভারি একীভূত করা (যদি ইতিমধ্যে সম্পূর্ণ না হয়ে থাকে)

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

গ্রেডল

Gradle এর সাথে তৈরি গেমগুলির জন্য, Gradle এর সাথে আপনার অ্যাসেট প্যাকগুলি তৈরি করার জন্য এই নির্দেশাবলী ব্যবহার করুন, তারপর আপনার গেমের মধ্যে অ্যাসেট প্যাক পুনরুদ্ধার সংহত করার জন্য নির্দেশাবলী অনুসরণ করুন:

ঐক্য

ইউনিটিতে তৈরি গেমগুলির জন্য, আপনি AssetPackConfig ক্লাস ব্যবহার করে আপনার সম্পদ প্যাকগুলি কনফিগার করবেন, যেমন এই নির্দেশাবলীতে বর্ণিত হয়েছে।

ডিভাইস স্তর নির্দিষ্ট ডিরেক্টরি তৈরি করা

Gradle ব্যবহার করলে

আপনি এখন আপনার সম্পদকে N স্তরের (সর্বোচ্চ 5) মধ্যে বিভক্ত করবেন যা আপনি পরে সংজ্ঞায়িত করবেন। শেষ ধাপে তৈরি করা বিদ্যমান অ্যাসেট বান্ডেল ডিরেক্টরিগুলি নিয়ে আপনার ডিটিটি ডিরেক্টরি তৈরি করুন এবং #tier_0, #tier_1, #tier_2, ইত্যাদির সাথে উপযুক্ত ফোল্ডার (নিচে বর্ণিত) ঠিক করার পরে। আপনার গেমে অ্যাসেট প্যাকগুলি ব্যবহার করার সময় - আপনি পোস্টফিক্স দ্বারা ফোল্ডারগুলিকে সম্বোধন করার প্রয়োজন হবে না (অন্য কথায়, পোস্টফিক্সটি বিল্ড প্রক্রিয়া চলাকালীন স্বয়ংক্রিয়ভাবে ছিনতাই করা হয়)।

পূর্ববর্তী পদক্ষেপের পরে, এটি এর মতো দেখতে পারে:

...
.../level1/src/main/assets/character-textures#tier_2/
.../level1/src/main/assets/character-textures#tier_1/
.../level1/src/main/assets/character-textures#tier_0/
...

আপনি যখন ফোল্ডারের অধীনে ফাইলগুলি অ্যাক্সেস করেন, তখন আপনি পোস্ট ফিক্সিং ছাড়াই একই পথ ব্যবহার করতে পারেন, (এই উদাহরণে - আমি কোনো পোস্টফিক্স ছাড়াই level1/assets/character-textures/ হিসাবে উল্লেখ করব)।

ইউনিটি ব্যবহার করলে

DTT ব্যবহার করে এমন একটি সম্পদ প্যাক যোগ করতে, আপনি নীচের AssetPackConfig পদ্ধতিগুলি ব্যবহার করতে পারেন:

/// Package the specified raw assets in the specified folders,
/// keyed by DeviceTier, in an AssetPack with the specified delivery mode.
public void AddAssetsFolders(
    string assetPackName,
    IDictionary<DeviceTier, string> deviceTierToAssetPackDirectoryPath,
    AssetPackDeliveryMode deliveryMode)

/// Package the specified AssetBundle files, which vary only by DeviceTier,
/// in an AssetPack with the specified delivery mode.
public void AddAssetBundles(
    IDictionary<DeviceTier, string> deviceTierToAssetBundleFilePath,
    AssetPackDeliveryMode deliveryMode)

উদাহরণ স্বরূপ, ধরা যাক আপনার চরিত্রের জন্য আপনার কাছে বিভিন্ন স্তরের বিশদে তিনটি AssetBundles ছিল।

এই AssetBundles তাদের সংশ্লিষ্ট ডিভাইস স্তরে ম্যাপ করতে, নিম্নলিখিত স্নিপেটটি ব্যবহার করুন৷

var assetPackConfig = new AssetPackConfig();
var tiers = new Dictionary<DeviceTier, string>
{
    {0, "Assets/LowPoly/Character"},
    {1, "Assets/Mid/Character"},
    {2, "Assets/Detailed/Character"}
};
assetPackConfig.AddAssetBundles(tiers, AssetPackDeliveryMode.OnDemand);

অ্যান্ড্রয়েড অ্যাপ বান্ডেল তৈরি করা হচ্ছে

গ্রেডল

আপনার প্রজেক্টের build.gradle ফাইলে, Android Gradle প্লাগইন এবং bundletool-এর জন্য নীচের (বা উচ্চতর) সংস্করণগুলি থাকতে আপনার নির্ভরতা কনফিগার করুন:

buildscript {
  dependencies {
    classpath 'com.android.tools.build:gradle:4.2.0'
    classpath "com.android.tools.build:bundletool:1.7.1"
    ...
  }
  ...
}

এছাড়াও আপনাকে আপনার গ্রেডল সংস্করণ 6.7.1 বা তার উপরে আপডেট করতে হবে। আপনি এটি আপনার প্রকল্পের মধ্যে gradle/wrapper/gradle-wrapper.properties এ আপডেট করতে পারেন।

distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip

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

dependencies {
  implementation 'com.google.android.play:asset-delivery:2.0.1'
  ...
}

মূল অ্যাপ মডিউলের build.gradle ফাইলে, DTT বিভাজন সক্ষম করুন:

android {
  bundle {
    deviceTier {
      enableSplit true
    }
    ...
  }
  ...
}

অবশেষে, আপনি আপনার Android App Bundle (AAB) তৈরি করতে পারেন।

বান্ডলেটুল

bundletool দিয়ে আপনার বান্ডিল তৈরি করুন , এবং আপনার AAB কাস্টমাইজ করার ধাপে , আপনার BundleConfig.pb ফাইলে নিম্নলিখিত যোগ করুন।

{
  ...
  "optimizations": {
    "splitsConfig": {
      "splitDimension": [
      ...
      {
        "value": "DEVICE_TIER",
        "negate": false,
        "suffixStripping": {
          "enabled": true,
        }
      }],
    }
  }
}

ঐক্য

একবার আপনি আপনার DTT প্যাকগুলি অন্তর্ভুক্ত করার জন্য আপনার AssetPackConfig কনফিগার করার পরে, আপনি আপনার AAB তৈরি করতে নীচের পদ্ধতিগুলির মধ্যে একটিতে সেই কনফিগারেশনটি পাস করতে পারেন:

// Configures the build system to use the newly created assetPackConfig when
// calling Google > Build and Run or Google > Build Android App
Bundle.AssetPackConfigSerializer.SaveConfig(assetPackConfig);
// Alternatively, use BundleTool.BuildBundle to build an App Bundle from script
BuildBundle(new buildPlayerOptions(), assetPackConfig)

স্থানীয় পরীক্ষা

এগিয়ে যাওয়ার আগে, সবকিছু সঠিকভাবে সেট আপ করা হয়েছে তা নিশ্চিত করতে স্থানীয়ভাবে আপনার অ্যাপ বান্ডিল পরীক্ষা করার পরামর্শ দেওয়া হয়। bundletool (1.8.0 বা তার উপরে) ব্যবহার করে, আপনি স্থানীয়ভাবে আপনার অ্যাপ তৈরি করেন এবং পরীক্ষা করেন, স্পষ্টভাবে সঠিক ডিভাইসের স্তর উল্লেখ করে। আপনি প্রথমে .apks ফাইলের একটি সেট তৈরি করতে build-apks ব্যবহার করবেন এবং তারপর install-apks ব্যবহার করে একটি সংযুক্ত ডিভাইসে আপনার অ্যাপ স্থাপন করবেন। আপনি ডিভাইস-স্তরের পতাকার মাধ্যমে কোন স্তরটি ইনস্টল করতে চান তাও নির্দিষ্ট করতে পারেন। আপনি এখানে স্থানীয় পরীক্ষার এই পদ্ধতি সম্পর্কে আরও তথ্য পেতে পারেন (দয়া করে মনে রাখবেন যে এই পৃষ্ঠাটি এখনও DTT-এর জন্য আপডেট করা হয়নি এবং এইভাবে device-tier পতাকা অনুপস্থিত)।

bundletool build-apks --bundle=/path/to/app.aab --output=/path/to/app.apks --local-testing
bundletool install-apks --apks=/path/to/app.apks --device-tier=1

বিকল্পভাবে : আপনি একটি নির্দিষ্ট ডিভাইসের জন্য APK-এর সেট বের করতে extract-apks ব্যবহার করতে পারেন। এই ডিভাইসের জন্য ডিভাইসের স্তর নির্দিষ্ট করার সাথে get-device-spec ব্যবহার করা, তবে, --local-testing পতাকার সাথে কাজ করবে না , যার অর্থ আপনি দ্রুত-অনুসরণ বা অন-ডিমান্ড অ্যাসেট প্যাকগুলি পরীক্ষা করতে পারবেন না .

bundletool get-device-spec --output=/path/to/device-spec.json --device-tier=1
bundletool extract-apks --apks=/path/to/existing_APK_set.apks --output-dir=/path/to/device_specific_APK_set.apks --device-spec=/path/to/device-spec.json

ঐক্য

Google -> Build and Run মেনু বিকল্পটি --local-testing ফ্ল্যাগ সক্ষম করে আপনার গেমটি তৈরি ও চালাবে। যাইহোক, এটি আপনাকে install-apks কমান্ডে পাস করা ডিভাইস-স্তর নির্দিষ্ট করার অনুমতি দেয় না।

আপনি যদি 0 ব্যতীত অন্য একটি ডিভাইস-স্তর নির্দিষ্ট করতে চান তবে আপনার উচিত:

  1. Google -> Build Android App Bundle মেনু বিকল্প ব্যবহার করে AAB তৈরি করুন।
  2. নির্মিত AAB-তে bundletool , build-apks , এবং install-apks চালানোর জন্য পূর্ববর্তী বিভাগে নির্দেশাবলী অনুসরণ করুন।

Google Play Developer API এর মাধ্যমে একটি ডিভাইস টিয়ার কনফিগারেশন তৈরি করা

Google Play Developer API দিয়ে শুরু করা (যদি ইতিমধ্যে সম্পূর্ণ না হয়ে থাকে)

ডিভাইস টিয়ার টার্গেটিং কনফিগার করতে (যেমন প্রতিটি স্তরের জন্য প্রয়োজনীয়তা নির্ধারণ করা) আপনাকে Google Play-তে আপনার কনফিগারেশন আপলোড করতে Android Publisher API ব্যবহার করতে হবে। আপনি উপরের লিঙ্কে API সম্পর্কে আরও পড়তে পারেন - শুরু করার জন্য আপনাকে কয়েকটি ধাপ অনুসরণ করতে হবে :

  1. তৈরি করুন (যদি প্রয়োজন হয়) এবং আপনার API প্রোজেক্টকে আপনার Google Play কনসোলে লিঙ্ক করুন
  2. একটি API অ্যাক্সেস ক্লায়েন্ট সেট আপ করুন

আপনি API রেফারেন্স এখানে খুঁজে পেতে পারেন - পরে, আপনি যদি API এর মাধ্যমে আপনার বিল্ড আপলোড করতে চান, আপনি সম্পাদনা পদ্ধতি ব্যবহার করবেন। উপরন্তু, API ব্যবহার করার আগে এই পৃষ্ঠাটি পর্যালোচনা করতে উৎসাহিত করা হয়।

ডিভাইস টিয়ার কনফিগারেশন API ব্যবহার করে

আপনি আপনার ডিভাইস স্তর কনফিগারেশন তৈরি করতে নিম্নলিখিত API কল ব্যবহার করতে পারেন:

ডিভাইস টিয়ার কনফিগারেশন তৈরি করুন

HTTP অনুরোধ POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs
পাথ প্যারামিটার N/A
রিকোয়েস্ট বডি ডিভাইস টিয়ার কনফিগারেশন
প্রতিক্রিয়া শরীর ডিভাইস টিয়ার কনফিগারেশন
ডিভাইস টিয়ার কনফিগার অবজেক্ট

ডিভাইস স্তরের সংজ্ঞা 2টি ধাপ নিয়ে গঠিত:

  1. ডিভাইস গ্রুপের একটি সেট সংজ্ঞায়িত করুন।
  2. আপনার ডিভাইস গোষ্ঠীতে একটি স্তর নির্ধারণ করে আপনার ডিভাইস স্তর সেট সংজ্ঞায়িত করুন।

একটি ডিভাইস গ্রুপ হল ডিভাইসের একটি সেট যা আপনি কনফিগারে সংজ্ঞায়িত নির্বাচকদের সাথে মেলে।

নির্বাচকরা ডিভাইস RAM এবং ডিভাইস মডেলের প্রয়োজনীয়তা নির্ধারণ করতে পারে।

গোষ্ঠীগুলিকে আপনার চয়ন করা একটি নাম দ্বারা চিহ্নিত করা হয়; গ্রুপ ওভারল্যাপ করার অনুমতি দেওয়া হয়।

এরপরে, আপনি গ্রুপগুলির র‌্যাঙ্কিং করে আপনার ডিভাইসের স্তর নির্ধারণ করতে পারেন: প্রতিটি ডিভাইসের স্তর তার স্তর এবং একটি ডিভাইস গ্রুপ দ্বারা সংজ্ঞায়িত করা হয়।

যদি একটি ডিভাইস একাধিক স্তরের সাথে মিলে যায়, তবে এটি সর্বোচ্চ মিলিত স্তরের জন্য সামগ্রী পরিবেশন করা হবে৷

  {
    device_groups: [
      {
        name: string,
        device_selectors: [
          {
            device_ram: {
              min_bytes: integer
              max_bytes: integer
            },
            included_device_ids: [
              {
                build_brand: string,
                build_device: string
              }
            ],
            excluded_device_ids: [
              {
                build_brand: string,
                build_device: string
              }
            ],
            required_system_features: [
              {
                name: string
              }
            ],
            forbidden_system_features: [
              {
                name: string
              }
            ]
          }
        ]
      }
    ],
    device_tier_set: {
      device_tiers: [
        {
          level: int,
          device_group_names: [string]
        }
      ]
    }
  }

ক্ষেত্র:

  • device_confid_id (পূর্ণসংখ্যা): এই ডিভাইসের স্তর কনফিগারেশনের সাথে সংশ্লিষ্ট আইডি।
  • device_groups (অবজেক্ট): গ্রুপ সংজ্ঞা

    • নাম (স্ট্রিং): ডিভাইস গ্রুপের নাম (আপনি সংজ্ঞায়িত একটি স্ট্রিং আইডি)।
    • device_selectors (অবজেক্ট): এই গ্রুপের অন্তর্গত একটি ডিভাইসের জন্য ডিভাইসের প্রয়োজনীয়তা।
    • device_ram (অবজেক্ট): ডিভাইস RAM এর প্রয়োজনীয়তা
      • min_bytes (পূর্ণসংখ্যা, অন্তর্ভুক্ত) : ন্যূনতম প্রয়োজনীয় RAM (বাইটে)
      • max_bytes (পূর্ণসংখ্যা, একচেটিয়া) : সর্বাধিক প্রয়োজনীয় RAM (বাইটে)
    • include_device_ids (অবজেক্ট): এই নির্বাচকের মধ্যে ডিভাইস মডেল অন্তর্ভুক্ত করতে হবে (প্রতি গ্রুপে সর্বাধিক 10000 device_ids) নির্বাচকের সাথে মেলে একটি ডিভাইস এই তালিকায় থাকা প্রয়োজন। এটি একটি প্রয়োজনীয় কিন্তু সম্পূর্ণ নির্বাচকের সাথে মেলে পর্যাপ্ত শর্ত নয় (একটি নির্বাচকের প্রয়োজনীয়তা একত্রিত করার বিষয়ে উপরে নোট দেখুন)
      • build_brand (স্ট্রিং): ডিভাইস প্রস্তুতকারক
      • build_device (স্ট্রিং): ডিভাইস মডেল কোড
    • excluded_device_ids (অবজেক্ট): এই নির্বাচকে ডিভাইস মডেলগুলি বাদ দেওয়া হবে (প্রতি গ্রুপে সর্বাধিক 10000 device_ids) এই তালিকার একটি ডিভাইস নির্বাচকের সাথে মেলে না যদিও এটি নির্বাচকের অন্যান্য প্রয়োজনীয়তার সাথে মেলে।
      • build_brand (স্ট্রিং): ডিভাইস প্রস্তুতকারক
      • build_device (স্ট্রিং): ডিভাইস মডেল কোড
    • প্রয়োজনীয়_সিস্টেম_বিশিষ্ট (অবজেক্ট): একটি ডিভাইসের যে বৈশিষ্ট্যগুলিকে এই নির্বাচক দ্বারা অন্তর্ভুক্ত করতে হবে (প্রতি গ্রুপে সর্বাধিক 100টি বৈশিষ্ট্য) । নির্বাচকের সাথে মেলে একটি ডিভাইসের এই তালিকায় সমস্ত সিস্টেম বৈশিষ্ট্য থাকা প্রয়োজন৷ এটি একটি প্রয়োজনীয় কিন্তু সম্পূর্ণ নির্বাচকের সাথে মেলে পর্যাপ্ত শর্ত নয় (একটি নির্বাচকের প্রয়োজনীয়তা একত্রিত করার বিষয়ে উপরে নোট দেখুন)।

      সিস্টেম বৈশিষ্ট্য উল্লেখ

      • নাম (স্ট্রিং): একটি সিস্টেম বৈশিষ্ট্য
    • forbidden_system_features (অবজেক্ট): বৈশিষ্ট্যগুলি যা একটি ডিভাইসকে এই নির্বাচক দ্বারা অন্তর্ভুক্ত করতে হবে না (প্রতি গ্রুপে সর্বাধিক 100টি বৈশিষ্ট্য) । যদি একটি ডিভাইসে এই তালিকার কোনো সিস্টেম বৈশিষ্ট্য থাকে, তাহলে এটি নির্বাচকের সাথে মেলে না, এমনকি এটি নির্বাচকের অন্যান্য প্রয়োজনীয়তার সাথে মেলে।

      সিস্টেম বৈশিষ্ট্য উল্লেখ

      • নাম (স্ট্রিং): একটি সিস্টেম বৈশিষ্ট্য
  • device_tiers (অবজেক্ট): স্তরের সংজ্ঞা

    • স্তর (int): স্তরের স্তর
    • group_name (স্ট্রিং অ্যারে): এই স্তরের অন্তর্গত ডিভাইস গ্রুপের নাম

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

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

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

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

  • সমর্থিত ডিভাইসগুলির একটি CSV ডাউনলোড করা এবং বিল্ড_ব্র্যান্ড এবং বিল্ড_ডিভাইস ক্ষেত্রের জন্য যথাক্রমে প্রস্তুতকারক এবং মডেল কোড ব্যবহার করা।

এখানে 3 টি স্তর সহ একটি উদাহরণ কনফিগারেশন রয়েছে - টিয়ার 2 ডিভাইস গ্রুপ হাই ব্যবহার করে (যা 7 গিগাবাইট এবং পিক্সেল 4 এর বেশি সমস্ত ডিভাইস অন্তর্ভুক্ত করে), টিয়ার 1 ডিভাইস গ্রুপ মিডিয়াম ব্যবহার করে (যা 4-7 গিগাবাইটের মধ্যে সমস্ত ডিভাইস অন্তর্ভুক্ত করে), এবং স্তর 0 , যা পরোক্ষভাবে ক্যাচ-অল গ্রুপ হিসাবে সংজ্ঞায়িত করা হয়েছে।

{
  device_groups: [
    {
      name: 'high',
      device_selectors: [
        {
          device_ram: {
            min_bytes: 7516192768
          },
        },
        {
          included_device_ids: [
            {
              build_brand: 'google',
              build_device: 'flame'
            }
          ],
        }
      ]
    },
    {
      name: 'medium',
      device_selectors: [
        {
          device_ram: {
            min_bytes: 4294967296,
            max_bytes: 7516192768
          },
        }
      ]
    }
  ],
  device_tier_set: {
    device_tiers: [
      {
        level: 1,
        device_group_names: [
          'medium'
        ]
      },
      {
        level: 2,
        device_group_names: [
          'high'
        ]
      }
    ]
  }
}

আপনি Google Play এ আপলোড করার আগে আপনার ডিভাইস টার্গেটিং কনফিগারেশন যাচাই করার জন্য নীচের নির্দেশাবলী অনুসরণ করতে পারেন।

আইডি দ্বারা ডিভাইস টিয়ার কনফিগার করুন

আপনি নিম্নলিখিত কল ব্যবহার করে আইডি দ্বারা একটি নির্দিষ্ট ডিভাইস স্তর কনফিগারেশন পুনরুদ্ধার করতে পারেন:

HTTP অনুরোধ GET https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs/{deviceTierConfigId}
পাথ প্যারামিটার N/A
রিকোয়েস্ট বডি N/A
প্রতিক্রিয়া শরীর ডিভাইস টিয়ার কনফিগারেশন

ডিভাইস টিয়ার কনফিগারের তালিকা পান

আপনি নিম্নলিখিত কলে শেষ 10টি ডিভাইস স্তরের কনফিগারেশন পেতে পারেন (অথবা page_token ক্যোয়ারী প্যারামিটার ব্যবহার করে সর্বোত্তমভাবে দশটির একটি সেট নির্দিষ্ট করুন):

HTTP অনুরোধ GET https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs
পাথ প্যারামিটার N/A
ক্যোয়ারী প্যারামিটার page_token (ঐচ্ছিক) - 10টি DTC-এর একটি নির্দিষ্ট গ্রুপ নির্দিষ্ট করতে ব্যবহৃত হয়। আপনি যদি 10টির বেশি ডিটিসি তৈরি করে থাকেন এবং সাম্প্রতিক 10টির আগে তৈরি করা ডিটিসি দেখতে চান তাহলে এটি কার্যকর।
রিকোয়েস্ট বডি N/A
প্রতিক্রিয়া শরীর ডিভাইস টিয়ার কনফিগারের তালিকা

পৃষ্ঠা_টোকেন

আপনার ডিভাইস টার্গেটিং কনফিগারেশন যাচাই করা হচ্ছে

bundletool দুটি কমান্ড রয়েছে যা আপনাকে যাচাই করতে সাহায্য করে যে আপনার ডিভাইস টার্গেটিং কনফিগারেশন এটিকে প্লে-এ আপলোড করার আগে উদ্দেশ্য অনুযায়ী কাজ করে।

bundletool print-device-targeting-config এর মাধ্যমে, আপনি যাচাই করতে পারেন যে আপনার JSON ফাইলটি সিনট্যাকটিকভাবে সঠিক এবং আপনার ডিভাইসের গোষ্ঠী এবং স্তরগুলিকে আরও পাঠযোগ্য বিন্যাসে কল্পনা করতে পারেন৷

bundletool print-device-targeting-config --config=mydtc.json

bundletool evaluate-device-targeting-config এর সাহায্যে আপনি একটি নির্দিষ্ট ডিভাইসের সাথে কোন গোষ্ঠী এবং স্তর মেলে তা মূল্যায়ন করতে পারেন। হয় আপনি আপনার টার্গেট ডিভাইসটিকে আপনার ওয়ার্কস্টেশনের সাথে সংযুক্ত করুন এবং --connected-device পতাকা ব্যবহার করুন; অথবা আপনি ম্যানুয়ালি ডিভাইসের বৈশিষ্ট্য সহ একটি JSON ফাইল কম্পাইল করুন এবং --device-properties পতাকার মাধ্যমে প্রদান করুন।

bundletool evaluate-device-targeting-config --config=mydtc.json --connected-device
bundletool evaluate-device-targeting-config --config=mydtc.json --device-properties=deviceproperties.json

ডিভাইস প্রপার্টি ফাইলটি DeviceProperties প্রোটোবাফ স্ট্রাকচার অনুসরণ করে একটি JSON ফাইল হওয়া উচিত। যেমন:

{
  "ram": 2057072640,
  "device_id": {
    "build_brand":"google",
    "build_device":"redfin"
  },
  "system_features": [
    {
      "name":"android.hardware.bluetooth"
    },
    {
      "name":"android.hardware.camera"
    }
  ]
}

আপনার অ্যান্ড্রয়েড অ্যাপ বান্ডেল Google Play-তে আপলোড করা হচ্ছে

API এর মাধ্যমে

আপনি Google Play-তে আপনার Android App Bundle আপলোড করতে এবং আপনার বিল্ডে একটি নির্দিষ্ট ডিভাইস টিয়ার টার্গেটিং কনফিগারেশন লিঙ্ক করতে Google Play Developer API ব্যবহার করতে পারেন।

Google Play Console-এ বিভিন্ন ট্র্যাক প্রকাশের গভীর উদাহরণ সহ এখানে সম্পাদনা পদ্ধতিগুলির একটি সাধারণ ওভারভিউ রয়েছে (শেষ লিঙ্কের জন্য, আপনি APK-বন্ধুত্বপূর্ণ API- এর পরিবর্তে AAB-বন্ধুত্বপূর্ণ API ব্যবহার করতে চাইবেন, যা পৃষ্ঠায় তালিকাভুক্ত করা হয়েছে)। আপনার বিল্ডের জন্য ডিভাইস টিয়ার কনফিগারেশন নির্দিষ্ট করতে, আপনি edits.bundle.upload পদ্ধতিতে কল করার সময় deviceTierConfigId ক্যোয়ারী প্যারামিটারে কনফিগার আইডি যোগ করবেন, যেমন:

https://androidpublisher.googleapis.com/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles?deviceTierConfigId="{deviceTierConfigId}

গুগল প্লে কনসোলের মাধ্যমে

আপনার Android অ্যাপ বান্ডেল আপলোড করতে আপনি এখানে নির্দেশাবলী অনুসরণ করতে পারেন। সর্বশেষ DTC কনফিগারেশন আপনার অ্যাপ বান্ডলে প্রয়োগ করা হবে।

আপনি App Bundle Explorer (সঠিক বিল্ড সিলেক্ট করা আছে) > Delivery- এ গিয়ে প্রতিটি অ্যাসেট প্যাকে ক্লিক করে আপনার বান্ডেলটি সঠিকভাবে তৈরি হয়েছে কিনা তা যাচাই করতে পারেন। এটি দেখাতে হবে যে আপনার তৈরি করা N স্তর রয়েছে। এই উদাহরণে, এটি দেখায় যে আমার সম্পদ প্যাক main_asset-এর জন্য আমার 3টি স্তর রয়েছে - 0, 1, এবং 2।

তিন স্তর সহ সম্পদ প্যাক

সঠিক স্তর যাচাই করা হচ্ছে বিতরণ করা হচ্ছে

ডিভাইসে শুধুমাত্র সঠিক স্তর সরবরাহ করা হচ্ছে তা নিশ্চিত করতে নিম্নলিখিত পদ্ধতিটি ব্যবহার করুন

adb shell pm path {packageName}

আপনার এমন কিছু দেখতে হবে:

package:{...}/base.apk
package:{...}/split_config.en.apk
package:{...}/split_config.xxhdpi.apk
package:{...}/split_main_asset.apk
package:{...}/split_main_asset.config.tier_2.apk

সহায়ক

কার্ল ব্যবহার করে দ্রুত শুরু করুন

নীচে একটি উদাহরণ (কমান্ড লাইন টুল কার্ল ব্যবহার করে) একটি নতুন ডিভাইস টিয়ার কনফিগার তৈরি করার , এবং একটি নতুন সম্পাদনা তৈরি করতে সম্পাদনা এপিআই ব্যবহার করে, একটি নতুন AAB আপলোড করুন (একটি নির্দিষ্ট ডিভাইস স্তরের কনফিগারেশনের সাথে এটি সংযুক্ত করে), ট্র্যাক সেট করুন/ কনফিগার প্রকাশ করুন এবং সম্পাদনা করুন। (এইভাবে পরিবর্তনটি সর্বজনীন করে) । এর অবস্থান নিশ্চিত করুন:

প্রথমে, একটি ডিভাইস টিয়ার কনফিগারেশন তৈরি করুন এবং একটি সফল কলে আপনি যে deviceTierConfigId পাবেন তা নোট করুন।

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" -XPOST -H "Content-Type: application/json" -d "{ device_groups: [ { name: 'high', device_selectors: [ { device_ram: { min_bytes: 7516192768 }, }, { included_device_ids: [ { build_brand: 'google', build_device: 'flame' } ], } ] }, { name: 'medium', device_selectors: [ { device_ram: { min_bytes: 4294967296, max_bytes: 7516192768 }, } ] } ], device_tier_set: { device_tiers: [ { level: 1, device_group_names: [ 'medium' ] }, { level: 2, device_group_names: [ 'high' ] } ] } }" https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs

একটি সম্পাদনা শুরু করুন - আপনি সম্পাদনার জন্য একটি আইডি এবং মেয়াদ শেষ হওয়ার সময় পাবেন৷ নিম্নলিখিত কলগুলির জন্য আইডি সংরক্ষণ করুন।

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" -XPOST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/edits

AAB আপলোড করুন , একটি ক্যোয়ারী প্যারামিটার হিসাবে ডিভাইস টিয়ার কনফিগারেশন নির্দিষ্ট করে - যদি কলটি সফল হয়, আপনি বিল্ডের একটি সংস্করণ কোড, sha1 এবং sha256 দেখতে পাবেন। পরবর্তী কলের জন্য সংস্করণ কোড সংরক্ষণ করুন.

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" --data-binary @$HOME/{aabFile} -H "Content-Type: application/octet-stream" -XPOST https://androidpublisher.googleapis.com/upload/androidpublisher/v3/applications/{packageName}/edits/{editID}/bundles?deviceTierConfigId="{dttConfigID}"

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

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" -XPUT -H "Content-Type: application/json" -d "{ releases: [{status: '{status}'</code>, <code><strong>versionCodes</strong></code>: <code>['{versionCode}']</code> <code><strong>}]}</strong></code>" <code>https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/edits/{editID}/tracks/{track}

পরিবর্তনগুলি কমিট করুন (সতর্কতার সাথে এগিয়ে যান, কারণ এটি সমস্ত পরিবর্তনগুলিকে পছন্দসই ট্র্যাকে প্লে-তে লাইভ করে দেবে )

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" -XPOST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/edits/{editID}:commit