গেম লুপ পরীক্ষা দিয়ে শুরু করুন

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

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

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

আপনি একটি একক পরীক্ষার ডিভাইসে, পরীক্ষার ডিভাইসের একটি সেট বা Test Lab একটি গেম লুপ পরীক্ষা চালাতে পারেন। তবে আমরা ভার্চুয়াল ডিভাইসে গেম লুপ পরীক্ষা চালানোর পরামর্শ দিই না কারণ তাদের শারীরিক ডিভাইসের তুলনায় গ্রাফিক্স ফ্রেমের হার কম রয়েছে।

আপনি শুরু করার আগে

একটি পরীক্ষা বাস্তবায়নের জন্য, আপনাকে প্রথমে গেম লুপ পরীক্ষার জন্য আপনার অ্যাপ্লিকেশনটি কনফিগার করতে হবে।

  1. আপনার অ্যাপ্লিকেশন ম্যানিফেস্টে, আপনার ক্রিয়াকলাপে একটি নতুন অভিপ্রায় ফিল্টার যুক্ত করুন:

    <activity android:name=".MyActivity">
       <intent-filter>
           <action android:name="com.google.intent.action.TEST_LOOP"/>
           <category android:name="android.intent.category.DEFAULT"/>
           <data android:mimeType="application/javascript"/>
       </intent-filter>
       <intent-filter>
          ... (other intent filters here)
       </intent-filter>
    </activity>

    এটি Test Lab আপনার গেমটি একটি নির্দিষ্ট অভিপ্রায় দিয়ে ট্রিগার করে চালু করতে দেয়।

  2. আপনার কোডে (আমরা onCreate পদ্ধতি ঘোষণার ভিতরে সুপারিশ করি), নিম্নলিখিত যোগ করুন:

    Kotlin+KTX

    val launchIntent = intent
    if (launchIntent.action == "com.google.intent.action.TEST_LOOP") {
        val scenario = launchIntent.getIntExtra("scenario", 0)
        // Code to handle your game loop here
    }

    Java

    Intent launchIntent = getIntent();
    if(launchIntent.getAction().equals("com.google.intent.action.TEST_LOOP")) {
        int scenario = launchIntent.getIntExtra("scenario", 0);
        // Code to handle your game loop here
    }

    এটি আপনার ক্রিয়াকলাপটিকে এটি চালু করার অভিপ্রায়টি পরীক্ষা করার অনুমতি দেয়৷ আপনি যদি চান তবে আপনি পরে এই কোডটি যোগ করতে পারেন (যেমন, প্রাথমিকভাবে আপনার গেম ইঞ্জিন লোড করার পরে)।

  3. প্রস্তাবিত: পরীক্ষার শেষে, যোগ করুন:

    Kotlin+KTX

    yourActivity.finish()

    Java

    yourActivity.finish();

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

একটি গেম লুপ পরীক্ষা তৈরি করুন এবং চালান

আপনি গেম লুপ পরীক্ষার জন্য আপনার অ্যাপ্লিকেশনটি কনফিগার করার পরে, আপনি তাত্ক্ষণিকভাবে একটি পরীক্ষা তৈরি করতে পারেন এবং এটি আপনার গেমিং অ্যাপ্লিকেশনটিতে চালাতে পারেন। আপনি Firebase কনসোল বা gcloud কমান্ড লাইন ইন্টারফেস (CLI) , অথবা টেস্ট লুপ ম্যানেজার ব্যবহার করে একটি স্থানীয় ডিভাইস ব্যবহার করে Test Lab একটি পরীক্ষা চালানো বেছে নিতে পারেন।

স্থানীয় ডিভাইসে চালান

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

টেস্ট লুপ ম্যানেজার ব্যবহার করে স্থানীয় ডিভাইসে একটি পরীক্ষা চালাতে:

  1. কোনও ফোন বা ট্যাবলেটে টেস্ট লুপ ম্যানেজারটি ডাউনলোড করুন এবং এটি চালিয়ে ইনস্টল করুন:
    adb install testloopmanager.apk
  2. আপনার ডিভাইসে, আপনার ফোন বা ট্যাবলেটে টেস্ট লুপ অ্যাপ্লিকেশন অ্যাপ্লিকেশনটি খুলুন। অ্যাপটি আপনার ডিভাইসে অ্যাপ্লিকেশানগুলির একটি তালিকা প্রদর্শন করে যা গেম লুপ দিয়ে চালানো যেতে পারে। আপনি যদি এখানে আপনার গেমিং অ্যাপটি দেখতে না পান, তাহলে নিশ্চিত করুন যে আপনার অভিপ্রায় ফিল্টারটি আপনি শুরু করার আগে বিভাগের প্রথম ধাপে বর্ণিত একটির সাথে মেলে।
  3. আপনার গেমিং অ্যাপ্লিকেশন নির্বাচন করুন, তারপর আপনি চালাতে চান লুপ সংখ্যা নির্বাচন করুন. দ্রষ্টব্য: এই ধাপে, আপনি শুধুমাত্র একটি লুপের পরিবর্তে লুপের একটি উপসেট চালানো বেছে নিতে পারেন। একবারে একাধিক লুপ চালানোর বিষয়ে আরও তথ্যের জন্য, ঐচ্ছিক বৈশিষ্ট্যগুলি দেখুন।
  4. রান পরীক্ষা ক্লিক করুন। আপনার পরীক্ষা অবিলম্বে চলমান শুরু হয়.

Test Lab চালান

আপনি Firebase কনসোল বা gcloud CLI ব্যবহার করে Test Lab একটি গেম লুপ পরীক্ষা চালাতে পারেন। আপনি শুরু করার আগে, যদি আপনি ইতিমধ্যে না করে থাকেন, Firebase কনসোল খুলুন এবং একটি প্রকল্প তৈরি করুন।

Firebase কনসোল ব্যবহার করুন

  1. Firebase কনসোলে, বাম প্যানেল থেকে Test Lab ক্লিক করুন।
  2. আপনার প্রথম পরীক্ষাটি চালান ক্লিক করুন (বা আপনার প্রকল্পটি আগে কোনও পরীক্ষা চালালে একটি পরীক্ষা চালান )।
  3. পরীক্ষার ধরণ হিসাবে গেম লুপটি নির্বাচন করুন এবং তারপরে চালিয়ে যান ক্লিক করুন।
  4. ব্রাউজ ক্লিক করুন এবং তারপরে আপনার অ্যাপের .apk ফাইলটি ব্রাউজ করুন। দ্রষ্টব্য: এই ধাপে, আপনি শুধুমাত্র একটি লুপের পরিবর্তে লুপের একটি উপসেট চালানো বেছে নিতে পারেন। একবারে একাধিক লুপ চালানোর বিষয়ে আরও তথ্যের জন্য, ঐচ্ছিক বৈশিষ্ট্যগুলি দেখুন।
  5. অবিরত ক্লিক করুন.
  6. আপনার অ্যাপ পরীক্ষা করতে ব্যবহার করার জন্য শারীরিক ডিভাইস নির্বাচন করুন।
  7. শুরু পরীক্ষা ক্লিক করুন।

Firebase কনসোল দিয়ে শুরু করার বিষয়ে আরও তথ্যের জন্য, Firebase কনসোল দিয়ে পরীক্ষা শুরু করুন।

GCloud কমান্ড-লাইন (সিএলআই) ব্যবহার করুন

  1. If you haven't already, download and install the Google Cloud SDK

  2. আপনার গুগল অ্যাকাউন্টটি ব্যবহার করে GCloud CLI এ সাইন ইন করুন:

    gcloud auth login

  3. gcloud-এ আপনার Firebase প্রকল্প সেট করুন, যেখানে PROJECT_ID হল আপনার Firebase প্রকল্পের ID:

    gcloud config set project PROJECT_ID
    
  4. আপনার প্রথম পরীক্ষা চালান:

    gcloud firebase test android run \
     --type=game-loop --app=<var>path-to-apk</var> \
     --device model=herolte,version=23
    

gcloud CLI দিয়ে শুরু করার বিষয়ে আরও তথ্যের জন্য, gcloud কমান্ড লাইন থেকে পরীক্ষা শুরু করুন দেখুন।

ঐচ্ছিক বৈশিষ্ট্য

Test Lab বিভিন্ন ঐচ্ছিক বৈশিষ্ট্যগুলি অফার করে যা আপনাকে আপনার পরীক্ষাগুলিকে আরও কাস্টমাইজ করতে দেয়, যার মধ্যে আউটপুট ডেটা লেখার ক্ষমতা, একাধিক গেম লুপগুলির জন্য সমর্থন এবং সম্পর্কিত লুপের জন্য লেবেল রয়েছে৷

আউটপুট ডেটা লিখুন

আপনার গেম লুপ পরীক্ষা launchIntent.getData() পদ্ধতিতে নির্দিষ্ট করা ফাইলে আউটপুট লিখতে পারে। আপনি একটি পরীক্ষা চালানোর পরে, আপনি Firebase কনসোলের Test Lab বিভাগে এই আউটপুট ডেটা অ্যাক্সেস করতে পারেন ( গেম লুপ টেস্ট আউটপুট ফাইলের উদাহরণ দেখুন)।

Test Lab একটি ফাইল শেয়ারিং এ বর্ণিত অ্যাপগুলির মধ্যে একটি ফাইল ভাগ করার জন্য সর্বোত্তম অনুশীলনগুলি অনুসরণ করে৷ আপনার কার্যকলাপের onCreate() পদ্ধতিতে, যেখানে আপনার উদ্দেশ্য অবস্থিত, আপনি নিম্নলিখিত কোডটি চালিয়ে আপনার ডেটা আউটপুট ফাইলটি পরীক্ষা করতে পারেন:

Kotlin+KTX

val launchIntent = intent
val logFile = launchIntent.data
logFile?.let {
    Log.i(TAG, "Log file ${it.encodedPath}")
    // ...
}

Java

Intent launchIntent = getIntent();
Uri logFile = launchIntent.getData();
if (logFile != null) {
    Log.i(TAG, "Log file " + logFile.getEncodedPath());
    // ...
}

আপনি যদি আপনার গেম অ্যাপের C++ পাশ থেকে ফাইলটিতে লিখতে চান তবে আপনি ফাইল পাথের পরিবর্তে ফাইল বর্ণনাকারীতে পাস করতে পারেন:

Kotlin+KTX

val launchIntent = intent
val logFile = launchIntent.data
var fd = -1
logFile?.let {
    Log.i(TAG, "Log file ${it.encodedPath}")
    fd = try {
        contentResolver
            .openAssetFileDescriptor(logFile, "w")!!
            .parcelFileDescriptor
            .fd
    } catch (e: FileNotFoundException) {
        e.printStackTrace()
        -1
    } catch (e: NullPointerException) {
        e.printStackTrace()
        -1
    }
}

// C++ code invoked here.
// native_function(fd);

Java

Intent launchIntent = getIntent();
Uri logFile = launchIntent.getData();
int fd = -1;
if (logFile != null) {
    Log.i(TAG, "Log file " + logFile.getEncodedPath());
    try {
        fd = getContentResolver()
                .openAssetFileDescriptor(logFile, "w")
                .getParcelFileDescriptor()
                .getFd();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        fd = -1;
    } catch (NullPointerException e) {
        e.printStackTrace();
        fd = -1;
    }
}

// C++ code invoked here.
// native_function(fd);

সি++

#include <unistd.h>
JNIEXPORT void JNICALL
Java_my_package_name_MyActivity_native_function(JNIEnv *env, jclass type, jint log_file_descriptor) {
// The file descriptor needs to be duplicated.
int my_file_descriptor = dup(log_file_descriptor);
}

আউটপুট ফাইল উদাহরণ

আপনি Firebase কনসোলের Test Lab বিভাগে গেম লুপ পরীক্ষার ফলাফল প্রদর্শন করতে আউটপুট ডেটা ফাইল (নীচের উদাহরণের মতো ফর্ম্যাট করা) ব্যবহার করতে পারেন। /.../ হিসাবে দেখানো অঞ্চলগুলিতে আপনার প্রয়োজনীয় কোনও কাস্টম ক্ষেত্র থাকতে পারে, যতক্ষণ না তারা এই ফাইলটিতে ব্যবহৃত অন্যান্য ক্ষেত্রের নামগুলির সাথে বিরোধ না করে:

{
  "name": "test name",
  "start_timestamp": 0, // Timestamp of the test start (in us).
                           Can be absolute or relative
  "driver_info": "...",
  "frame_stats": [
    {
      "timestamp": 1200000, // Timestamp at which this section was written
                               It contains value regarding the period
                               start_timestamp(0) -> this timestamp (1200000 us)
      "avg_frame_time": 15320, // Average time to render a frame in ns
      "nb_swap": 52, // Number of frame rendered
      "threads": [
        {
          "name": "physics",
          "Avg_time": 8030 // Average time spent in this thread per frame in us
        },
        {
          "name": "AI",
          "Avg_time": 2030 // Average time spent in this thread per frame in us
        }
      ],
      /.../ // Any custom field you want (vertices display on the screen, nb units …)
    },
    {
      // Next frame data here, same format as above
    }
  ],
  "loading_stats": [
    {
      "name": "assets_level_1",
      "total_time": 7850, // in us
      /.../
    },
    {
      "name": "victory_screen",
      "total_time": 554, // in us
      /.../
    }

  ],
  /.../, // You can add custom fields here
}

একাধিক গেম লুপ

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

একবারে একাধিক লুপ চালানোর জন্য আপনার অ্যাপকে সক্ষম করতে:

  • আপনি যদি টেস্ট লুপ ম্যানেজারের সাথে একটি পরীক্ষা চালাচ্ছেন:

    1. <application> উপাদানের ভিতরে, আপনার অ্যাপের ম্যানিফেস্টে নিম্নলিখিত লাইনটি যোগ করুন:

      <meta-data
        android:name="com.google.test.loops"
        android:value="5" />

      এই লঞ্চের উদ্দেশ্য একটি পূর্ণসংখ্যা প্যারামিটার হিসাবে লক্ষ্য লুপ ধারণ করে। android:value ফিল্ডে, আপনি 1 থেকে 1024 পর্যন্ত একটি পূর্ণসংখ্যা নির্দিষ্ট করতে পারেন (একটি পরীক্ষার জন্য সর্বাধিক সংখ্যক লুপ অনুমোদিত)। লক্ষ্য করুন যে লুপগুলি 1 থেকে শুরু করে সূচক করা হয়, 0 নয়।

    2. টেস্ট লুপ ম্যানেজার অ্যাপে, একটি নির্বাচন স্ক্রীন প্রদর্শিত হয় যা আপনাকে কোন লুপ(গুলি) চালাতে চান তা নির্বাচন করতে দেয়। আপনি একাধিক লুপ নির্বাচন করলে, পূর্ববর্তী লুপ সম্পূর্ণ হওয়ার পর প্রতিটি লুপ ক্রমানুসারে চালু হয়।

  • আপনি যদি Firebase কনসোলের সাথে একটি পরীক্ষা চালাচ্ছেন, দৃশ্যকল্প ক্ষেত্রে একটি তালিকা বা লুপ নম্বরগুলির একটি পরিসর লিখুন৷

  • আপনি যদি জিক্লাউড সিএলআই-এর সাথে একটি পরীক্ষা চালাচ্ছেন, --scenario-numbers পতাকা ব্যবহার করে লুপ সংখ্যার একটি তালিকা নির্দিষ্ট করুন। উদাহরণস্বরূপ, --scenario-numbers=1,3,5 রান লুপ 1, 3, এবং 5।

  • আপনি যদি C++ লিখছেন এবং আপনার লুপের আচরণ পরিবর্তন করতে চান, তাহলে আপনার নেটিভ C++ কোডে নিম্নলিখিত অতিরিক্তটি পাস করুন:

    Kotlin+KTX

    val launchIntent = intent
    val scenario = launchIntent.getIntExtra("scenario", 0)

    Java

    Intent launchIntent = getIntent();
    int scenario = launchIntent.getIntExtra("scenario", 0);

    আপনি এখন ফলাফল int মানের উপর ভিত্তি করে আপনার লুপের আচরণ পরিবর্তন করতে পারেন।

লেবেল গেম লুপস

আপনি যখন আপনার গেমের লুপগুলি এক বা একাধিক দৃশ্যের লেবেল দিয়ে লেবেল করেন, আপনি এবং আপনার কিউএ দল সহজেই সম্পর্কিত গেম লুপগুলির একটি সেট (যেমন, "সমস্ত সামঞ্জস্যতা গেম লুপগুলি") চালু করতে পারেন এবং সেগুলি একটি একক ম্যাট্রিক্সে পরীক্ষা করতে পারেন। আপনি নিজের লেবেল তৈরি করতে পারেন বা Test Lab দ্বারা দেওয়া পূর্বনির্ধারিত লেবেলগুলি ব্যবহার করতে পারেন:

  • com.google.test.loops.player_experience : গেম খেলার সময় প্রকৃত ব্যবহারকারীর অভিজ্ঞতা পুনরুত্পাদন করতে ব্যবহৃত লুপের জন্য। এই লুপগুলির সাথে পরীক্ষার লক্ষ্যটি হ'ল গেমটি খেলার সময় একজন সত্যিকারের ব্যবহারকারী যে সমস্যার মুখোমুখি হবে তা সন্ধান করা।
  • com.google.test.loops.gpu_compatibility : জিপিইউ সম্পর্কিত সমস্যাগুলি পরীক্ষা করার জন্য ব্যবহৃত লুপগুলির জন্য। এই লুপগুলির সাথে পরীক্ষার লক্ষ্য হ'ল জিপিইউ কোডটি কার্যকর করা যা সম্ভবত উত্পাদনতে সঠিকভাবে চালিত না হয়, হার্ডওয়্যার এবং ড্রাইভারদের সাথে সমস্যাগুলি প্রকাশ করা।
  • com.google.test.loops.compatibility : আই/ও ইস্যু এবং ওপেনএসএসএল সমস্যাগুলি সহ বিস্তৃত সামঞ্জস্যতার বিষয়গুলি পরীক্ষা করার জন্য ব্যবহৃত লুপগুলির জন্য।
  • com.google.test.loops.performance : ডিভাইসের কার্যকারিতা পরীক্ষা করতে ব্যবহৃত লুপগুলির জন্য। উদাহরণস্বরূপ, একটি নতুন ডিভাইস কীভাবে আচরণ করে তা দেখার জন্য একটি গেমটি সবচেয়ে জটিল গ্রাফিক্স সেটিংসে চলতে পারে।

আপনার অ্যাপ্লিকেশনটিকে একই লেবেল দিয়ে লুপগুলি চালাতে সক্ষম করতে:

  • আপনি যদি পরীক্ষার লুপ ম্যানেজারের সাথে একটি পরীক্ষা চালাচ্ছেন:

    1. আপনার অ্যাপ্লিকেশনটির ম্যানিফেস্টে, নিম্নলিখিত মেটা-ডেটা লাইন যুক্ত করুন এবং আপনার পছন্দের একটি লেবেল দিয়ে LABEL_NAME প্রতিস্থাপন করুন:

      <meta-data
       android:name="com.google.test.loops.LABEL_NAME"
       android:value="1,3-5" />

      android:value ক্ষেত্রে, আপনি 1 থেকে 1024 (একক পরীক্ষার জন্য অনুমোদিত সর্বাধিক সংখ্যা) পর্যন্ত একটি পরিসীমা বা পূর্ণসংখ্যার একটি সেট নির্দিষ্ট করতে পারেন যা আপনি লেবেল করতে চান এমন লুপগুলি উপস্থাপন করে। দ্রষ্টব্য যে লুপগুলি 1 থেকে শুরু করে ইনড্রেড LABEL_NAME হয়েছে, 0 নয় android:value="1,3-5"

    2. টেস্ট লুপ ম্যানেজার অ্যাপে, লেবেল ক্ষেত্রে এক বা একাধিক লেবেল লিখুন।

  • আপনি যদি Firebase কনসোল দিয়ে একটি পরীক্ষা চালান, তাহলে লেবেল ক্ষেত্রে এক বা একাধিক লেবেল লিখুন।

  • আপনি যদি GCLAUD CLI এর সাথে একটি পরীক্ষা চালাচ্ছেন তবে --scenario-labels পতাকা (যেমন, --scenario-labels=performance,gpu ) ব্যবহার করে এক বা একাধিক দৃশ্যের লেবেল নির্দিষ্ট করুন।

অ্যাপ্লিকেশন লাইসেন্স সমর্থন

Test Lab এমন অ্যাপগুলিকে সমর্থন করে যেগুলি Google Play দ্বারা প্রদত্ত অ্যাপ লাইসেন্সিং পরিষেবা ব্যবহার করে৷ Test Lab সাথে আপনার অ্যাপ পরীক্ষা করার সময় সফলভাবে লাইসেন্সিং পরীক্ষা করতে, আপনাকে অবশ্যই আপনার অ্যাপটি প্লে স্টোরে প্রোডাকশন চ্যানেলে প্রকাশ করতে হবে। Test Lab ব্যবহার করে আলফা বা বিটা চ্যানেলে আপনার অ্যাপ পরীক্ষা করতে, Test Lab আপনার অ্যাপ আপলোড করার আগে লাইসেন্সিং চেক সরিয়ে ফেলুন।

পরিচিত সমস্যা

Test Lab গেম লুপ পরীক্ষায় নিম্নলিখিত পরিচিত সমস্যা রয়েছে:

  • কিছু ক্র্যাশ ব্যাকট্রেসকে সমর্থন করে না। উদাহরণস্বরূপ, কিছু রিলিজ বিল্ডগুলি prctl(PR_SET_DUMPABLE, 0) ব্যবহার করে debuggerd প্রক্রিয়াটির আউটপুটকে দমন করতে পারে। আরও জানতে, debuggerd দেখুন।
  • ফাইলের অনুমতি ত্রুটির কারণে বর্তমানে এপিআই স্তর 19 সমর্থিত নয়।