বেসলাইন প্রোফাইল ওভারভিউ

বেসলাইন প্রোফাইলগুলি অন্তর্ভুক্ত কোড পাথের জন্য ব্যাখ্যা এবং জাস্ট-ইন-টাইম (JIT) সংকলন পদক্ষেপগুলি এড়িয়ে প্রথম লঞ্চ থেকে কোড কার্যকর করার গতি প্রায় 30% উন্নত করে।

একটি অ্যাপ বা লাইব্রেরিতে একটি বেসলাইন প্রোফাইল সরবরাহ করে, অ্যান্ড্রয়েড রানটাইম (ART) Ahead-of-Time (AOT) সংকলনের মাধ্যমে নির্দিষ্ট কোড পাথগুলি অপ্টিমাইজ করতে পারে, প্রতিটি নতুন ব্যবহারকারী এবং প্রতিটি অ্যাপ আপডেটের জন্য কর্মক্ষমতা বৃদ্ধি প্রদান করে। এই প্রোফাইল গাইডেড অপ্টিমাইজেশন (PGO) অ্যাপগুলিকে প্রথম লঞ্চ থেকেই স্টার্টআপ অপ্টিমাইজ করতে, ইন্টারঅ্যাকশন জ্যাঙ্ক কমাতে এবং ব্যবহারকারীদের জন্য সামগ্রিক রানটাইম কর্মক্ষমতা উন্নত করতে দেয়।

এই কর্মক্ষমতা বৃদ্ধির ফলে ব্যবহারকারী ধরে রাখা, লেনদেন এবং রেটিং এর মতো ব্যবসায়িক মেট্রিক্স সরাসরি উন্নত হয়। Josh , Lyft , TikTok এবং Zomato এর গল্পগুলিতে কর্মক্ষমতা কীভাবে ব্যবসায়িক মেট্রিক্সকে প্রভাবিত করে সে সম্পর্কে আপনি আরও পড়তে পারেন।

বেসলাইন প্রোফাইলের সুবিধা

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

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

যখন বেসলাইন প্রোফাইল ব্যবহার করা হয় না, তখন সমস্ত অ্যাপ কোড হয় JIT-কম্পাইল করা হয় মেমোরিতে ব্যাখ্যা করার পর, অথবা ডিভাইসটি নিষ্ক্রিয় থাকা অবস্থায় ব্যাকগ্রাউন্ডে একটি odex ফাইলে লেখা হয়। একটি অ্যাপ ইনস্টল বা আপডেট করার পরে, ব্যবহারকারীরা প্রথমবার এটি চালানোর পর থেকে নতুন কোড পাথ অপ্টিমাইজ না হওয়া পর্যন্ত একটি অপ্টিমাইজেবল অভিজ্ঞতা পান। অনেক অ্যাপ অপ্টিমাইজ করার পরে প্রায় 30% কর্মক্ষমতা বৃদ্ধি পরিমাপ করে।

স্টার্টআপ প্রোফাইল

স্টার্টআপ প্রোফাইলগুলি বেসলাইন প্রোফাইলের মতোই, তবে পার্থক্য হল এগুলি অন-ডিভাইস অপ্টিমাইজেশনের পরিবর্তে কম্পাইলের সময় ব্যবহার করা হয়। স্টার্টআপের সময় উন্নত করার জন্য DEX ফাইলের লেআউট অপ্টিমাইজ করার জন্য একটি স্টার্টআপ প্রোফাইল ব্যবহার করা হয়। স্টার্টআপ প্রোফাইলে চিহ্নিত কোডটি প্রাথমিক classes.dex ফাইলে রাখা হয় এবং অন্যান্য কোড পৃথক DEX ফাইলে রাখা হয়। এটি অ্যাপ স্টার্টআপের সময় পৃষ্ঠার ত্রুটির সংখ্যা হ্রাস করে স্টার্টআপের সময় উন্নত করে। স্টার্টআপ প্রোফাইল এবং DEX লেআউট অপ্টিমাইজেশন কীভাবে অ্যাপ স্টার্টআপের সময় উন্নত করতে পারে সে সম্পর্কে আরও জানতে, DEX লেআউট অপ্টিমাইজেশন এবং স্টার্টআপ প্রোফাইল দেখুন।

শুরু করুন

আপনার বিদ্যমান অ্যাপে কর্মক্ষমতা অপ্টিমাইজ করা শুরু করতে, বেসলাইন প্রোফাইল তৈরি করুন দেখুন।

নির্ভরতা শৃঙ্খল স্থিতিশীল এবং উন্নয়নশীল রিলিজ সংস্করণ প্রদান করে। একটি বেসলাইন প্রোফাইল তৈরি এবং ইনস্টল করতে, নিম্নলিখিত সমর্থিত সংস্করণ বা উচ্চতর Android Gradle প্লাগইন, Macrobenchmark লাইব্রেরি এবং প্রোফাইল ইনস্টলার ব্যবহার করুন। এই নির্ভরতাগুলি বিভিন্ন সময়ে প্রয়োজন হয় এবং একটি সর্বোত্তম বেসলাইন প্রোফাইল সক্ষম করার জন্য একটি টুলচেইন হিসাবে একসাথে কাজ করে।

  • অ্যান্ড্রয়েড গ্রেডল প্লাগইন: com.android.tools.build:8.0.0
  • ম্যাক্রোবেঞ্চমার্ক লাইব্রেরি: androidx.benchmark:benchmark-macro-junit4:1.4.1
  • প্রোফাইল ইনস্টলার: androidx.profileinstaller:profileinstaller:1.4.1

বেসলাইন প্রোফাইল তৈরি এবং পরিচালনা করার জন্য আমরা AGP এর সর্বশেষ সংস্করণ ব্যবহার করার পরামর্শ দিচ্ছি। AGP এর বিভিন্ন সংস্করণের সাথে আসা প্রধান কার্যকারিতাগুলি এখানে দেওয়া হল:

এজিপি সংস্করণ ফিচার
৮.৪ গ্র্যাডেল র‍্যাপার কমান্ড লাইন টুল ব্যবহার করে নন-ডিবাগেবল বিল্ডের স্থানীয় অ্যাপ ইনস্টলেশন অথবা অ্যান্ড্রয়েড স্টুডিও ইনস্টল বেসলাইন প্রোফাইল, যাতে আপনার স্থানীয় রিলিজ বিল্ডের পারফরম্যান্স উৎপাদনের সাথে আরও ঘনিষ্ঠভাবে মিলে যায়। এই আপডেট বেসলাইন প্রোফাইলের উৎপাদন কর্মক্ষমতাকে প্রভাবিত করে না।
৮.৩
  • সম্পূর্ণ সোর্স সেট ডিরেক্টরি সাপোর্ট (লাইব্রেরি মডিউল): একাধিক বেসলাইন প্রোফাইল সোর্স ফাইল ঘোষণা করুন এবং লাইব্রেরি মডিউলের পাশাপাশি অ্যাপ মডিউলের জন্য এখন src/free/generated/baselineProfiles/baseline-prof1.txt এর মতো ভেরিয়েন্ট-অ্যাওয়ার ডিরেক্টরি ব্যবহার করুন।
  • বেসলাইন প্রোফাইলে ডিসুগারড ক্লাস অন্তর্ভুক্ত থাকে।
৮.২
  • R8 নিয়ম পুনর্লিখন: D8 এবং R8 অ্যাপের কর্মক্ষমতা অপ্টিমাইজ করার জন্য প্রয়োজনীয় সমস্ত নিয়ম সম্পূর্ণরূপে ক্যাপচার করার জন্য মানুষের পঠনযোগ্য বেসলাইন এবং স্টার্টআপ প্রোফাইল নিয়মগুলিকে রূপান্তর করতে পারে। পদ্ধতিগুলির বেসলাইন প্রোফাইল কভারেজ ~30% বৃদ্ধি করে এবং অ্যাপের কর্মক্ষমতা ~15% বৃদ্ধি করে।
  • স্টার্টআপ প্রোফাইল: DEX-এর মধ্যে কোডের লেআউট জানাতে এই নতুন ধরণের বেসলাইন প্রোফাইল তৈরি করে। স্টার্টআপের কর্মক্ষমতা অতিরিক্ত ~15% বৃদ্ধি করে, অথবা বড় অ্যাপের জন্য উল্লেখযোগ্যভাবে বেশি।
৮.০ ন্যূনতম প্রস্তাবিত সংস্করণ: একটি একক গ্র্যাডেল টাস্ক দিয়ে বেসলাইন প্রোফাইল তৈরি করতে বেসলাইন প্রোফাইল গ্র্যাডেল প্লাগইন ব্যবহার করুন।
  • সম্পূর্ণ সোর্স সেট ডিরেক্টরি সাপোর্ট (অ্যাপ মডিউল): একাধিক বেসলাইন প্রোফাইল সোর্স ফাইল ঘোষণা করুন এবং ভেরিয়েন্ট-অ্যাওয়ার ডিরেক্টরি ব্যবহার করুন, যেমন src/free/generated/baselineProfiles/baseline-prof1.txt
৭.৪ ন্যূনতম সমর্থিত সংস্করণ: অ্যাপগুলি লাইব্রেরি থেকে বেসলাইন প্রোফাইল ব্যবহার করতে পারে এবং src/main/baseline-prof.txt ফাইলে তাদের নিজস্ব বেসলাইন প্রোফাইল সরবরাহ করতে পারে।
  • একটি অ্যাপ বান্ডেল থেকে APK তৈরি করার সময় বেসলাইন প্রোফাইলগুলি সঠিকভাবে প্যাকেজ করা হয় ( ইস্যু #230361284 )।
  • একাধিক .dex ফাইল আছে এমন অ্যাপের জন্য, বেসলাইন প্রোফাইলগুলি প্রাথমিক .dex ফাইলের জন্য সঠিকভাবে প্যাকেজ করা হয়েছে।

প্রোফাইল তৈরির উদাহরণ

অ্যাপ স্টার্টআপের জন্য একটি বেসলাইন প্রোফাইল তৈরি করার জন্য একটি উদাহরণ ক্লাস নিচে দেওয়া হল, সেইসাথে প্রস্তাবিত ম্যাক্রোবেঞ্চমার্ক লাইব্রেরি ব্যবহার করে বেশ কয়েকটি নেভিগেশন এবং স্ক্রোল ইভেন্টও দেওয়া হল:

@OptIn(ExperimentalBaselineProfilesApi::class)
class BaselineProfileGenerator {
    @get:Rule
    val baselineProfileRule = BaselineProfileRule()

    @Test
    fun appStartupAndUserJourneys() {
        baselineProfileRule.collect(packageName = PACKAGE_NAME) {
            // App startup journey.
            startActivityAndWait()

            device.findObject(By.text("COMPOSE LAZYLIST")).clickAndWait(Until.newWindow(), 1_000)
            device.findObject(By.res("myLazyColumn")).also {
                it.fling(Direction.DOWN)
                it.fling(Direction.UP)
            }
            device.pressBack()
        }
    }
}

GitHub-এ আমাদের পারফরম্যান্স নমুনার অংশ হিসেবে আপনি এই কোডটি সম্পূর্ণ প্রসঙ্গে এবং আরও বিস্তারিতভাবে দেখতে পাবেন।

কী অন্তর্ভুক্ত করবেন

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

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

লাইব্রেরিগুলি তাদের নিজস্ব বেসলাইন প্রোফাইল সরবরাহ করতে পারে এবং অ্যাপের কর্মক্ষমতা উন্নত করার জন্য রিলিজ সহ পাঠাতে পারে। উদাহরণস্বরূপ, জেটপ্যাক কম্পোজ কর্মক্ষমতা বিভাগে "একটি বেসলাইন প্রোফাইল ব্যবহার করুন" বিভাগটি দেখুন।

বেসলাইন প্রোফাইল কীভাবে কাজ করে

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

  1. আপনার অ্যাপের জন্য মানুষের পঠনযোগ্য প্রোফাইল নিয়ম তৈরি করা হয় এবং অ্যাপের মধ্যে বাইনারি আকারে কম্পাইল করা হয়। আপনি এগুলি assets/dexopt/baseline.prof এ খুঁজে পেতে পারেন। তারপর আপনি যথারীতি Google Play তে AAB আপলোড করতে পারেন।

  2. গুগল প্লে প্রোফাইলটি প্রক্রিয়া করে এবং APK সহ সরাসরি ব্যবহারকারীদের কাছে পাঠায়। ইনস্টলেশনের সময়, ART প্রোফাইলে থাকা পদ্ধতিগুলির AOT সংকলন সম্পাদন করে, যার ফলে সেই পদ্ধতিগুলি দ্রুত কার্যকর হয়। যদি প্রোফাইলে অ্যাপ লঞ্চে বা ফ্রেম রেন্ডারিংয়ের সময় ব্যবহৃত পদ্ধতি থাকে, তাহলে ব্যবহারকারী দ্রুত লঞ্চের সময় এবং কম জ্যাঙ্ক অনুভব করতে পারেন।

  3. এই প্রবাহটি সময়ের সাথে সাথে অ্যাপের প্রকৃত ব্যবহারের উপর ভিত্তি করে কর্মক্ষমতা উন্নত করতে ক্লাউড প্রোফাইল সমষ্টির সাথে সহযোগিতা করে।

চিত্র ১. এই চিত্রটি আপলোড থেকে শেষ-ব্যবহারকারী ডেলিভারি পর্যন্ত বেসলাইন প্রোফাইল ওয়ার্কফ্লো এবং সেই ওয়ার্কফ্লো কীভাবে ক্লাউড প্রোফাইলের সাথে সম্পর্কিত তা প্রদর্শন করে।

ক্লাউড প্রোফাইল

ক্লাউড প্রোফাইলগুলি বেসলাইন প্রোফাইলের সাথে PGO-এর একটি অতিরিক্ত রূপ অফার করে—গুগল প্লে স্টোর দ্বারা একত্রিত এবং ইনস্টল সময় সংকলনের জন্য বিতরণ করা হয়।

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

অ্যান্ড্রয়েড সংস্করণ জুড়ে সংকলন আচরণ

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

অ্যান্ড্রয়েড সংস্করণ সংকলন পদ্ধতি অপ্টিমাইজেশন পদ্ধতি
৫ থেকে ৬ পর্যন্ত (এপিআই লেভেল ২১ থেকে ২৩ পর্যন্ত) সম্পূর্ণ AOT সম্পূর্ণ অ্যাপটি ইনস্টলেশনের সময় অপ্টিমাইজ করা হয়, যার ফলে অ্যাপটি ব্যবহার করতে দীর্ঘ অপেক্ষার সময় লাগে, RAM এবং ডিস্কের স্থানের ব্যবহার বৃদ্ধি পায় এবং ডিস্ক থেকে কোড লোড করতে দীর্ঘ সময় লাগে, যার ফলে কোল্ড স্টার্টআপের সময় বৃদ্ধি পায়।
৭ থেকে ৮.১ পর্যন্ত (এপিআই লেভেল ২৪ থেকে ২৭ পর্যন্ত) আংশিক AOT (বেসলাইন প্রোফাইল) অ্যাপ মডিউল যখন এই নির্ভরতা নির্ধারণ করে তখন প্রথমবারের মতো androidx.profileinstaller দ্বারা বেসলাইন প্রোফাইল ইনস্টল করা হয়। অ্যাপ ব্যবহারের সময় অতিরিক্ত প্রোফাইল নিয়ম যোগ করে এবং ডিভাইসটি নিষ্ক্রিয় থাকা অবস্থায় সেগুলি সংকলন করে ART এটিকে আরও উন্নত করতে পারে। এটি ডিস্কের স্থান এবং ডিস্ক থেকে কোড লোড করার সময় অপ্টিমাইজ করে, যার ফলে অ্যাপের জন্য অপেক্ষার সময় হ্রাস পায়।
৯ (এপিআই লেভেল ২৮) এবং তার বেশি আংশিক AOT (বেসলাইন + ক্লাউড প্রোফাইল) অ্যাপ ইনস্টলের সময় প্লে বেসলাইন প্রোফাইল ব্যবহার করে APK এবং ক্লাউড প্রোফাইল অপ্টিমাইজ করে—যদি পাওয়া যায়। ইনস্টলেশনের পরে, ART প্রোফাইলগুলি Play তে আপলোড করা হয়, একত্রিত করা হয় এবং তারপর অন্যান্য ব্যবহারকারীদের অ্যাপ ইনস্টল বা আপডেট করার সময় ক্লাউড প্রোফাইল হিসাবে সরবরাহ করা হয়।

জ্ঞাত সমস্যা

নিম্নলিখিত সম্ভাব্য সমস্যা এবং সমাধানগুলি, অথবা যে সমস্যাগুলির সমাধানের জন্য চলমান উন্নয়ন চলছে:

  • OnePlus ডিভাইস সহ কিছু ডিভাইসে অনুমতি সেটিংসের কারণে বেসলাইন প্রোফাইল তৈরি ব্যর্থ হতে পারে। এই সমস্যা সমাধানের জন্য, ডেভেলপার অপশন সেটিংসে অনুমতি পর্যবেক্ষণ বন্ধ করুন বিকল্পটি বন্ধ করুন।

  • গ্রেডল-পরিচালিত টেস্ট ল্যাব ডিভাইসগুলি সহ ( ইস্যু #285187547 ) ফায়ারবেস টেস্ট ল্যাব ডিভাইসগুলিতে বেসলাইন প্রোফাইল তৈরি সমর্থিত নয়।

  • লাইব্রেরিগুলির জন্য বেসলাইন প্রোফাইল সফলভাবে প্রদান করতে, কমপক্ষে বেসলাইন প্রোফাইল গ্রেডল প্লাগইন 1.2.3 অথবা AGP 8.3 ব্যবহার করুন ( ইস্যু #313992099 )।

  • যদি আপনি ./gradlew app:generateBaselineProfile কমান্ড ব্যবহার করে বেসলাইন প্রোফাইল তৈরি করেন, তাহলে পরীক্ষার মডিউলের বেঞ্চমার্কগুলিও চলবে এবং ফলাফলগুলি বাতিল করা হবে। যদি এটি ঘটে, তাহলে আপনি -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile কমান্ড ব্যবহার করে শুধুমাত্র বেসলাইন প্রোফাইল তৈরি করতে পারবেন। এই সমস্যাটি AGP 8.2 এ সমাধান করা হয়েছে।

  • সকল বিল্ড টাইপের জন্য বেসলাইন প্রোফাইল তৈরি করার কমান্ড— ./gradlew app:generateBaselineProfile শুধুমাত্র রিলিজ বিল্ড টাইপের জন্য বেসলাইন প্রোফাইল তৈরি করে। এই সমস্যাটি AGP 8.1 এ সমাধান করা হয়েছে।

  • গুগল-প্লে-স্টোরের বাইরের অ্যাপ বিতরণ চ্যানেলগুলি ইনস্টলেশনের সময় বেসলাইন প্রোফাইল ব্যবহার সমর্থন নাও করতে পারে। এই চ্যানেলগুলির মাধ্যমে ইনস্টল করা অ্যাপগুলির ব্যবহারকারীরা ব্যাকগ্রাউন্ড ডেক্সোপ্ট না চালানো পর্যন্ত সুবিধাগুলি দেখতে পান না - যা সম্ভবত রাতারাতি।

  • প্লে স্টোরের অভ্যন্তরীণ অ্যাপ শেয়ারিং বেসলাইন প্রোফাইল সমর্থন করে না; তবে, অভ্যন্তরীণ পরীক্ষার ট্র্যাকটি করে।

  • কিছু ডিভাইসে, যেমন Huawei ডিভাইসে ব্যাটারি অপ্টিমাইজেশন, প্রোফাইল ইনস্টলেশনে হস্তক্ষেপ করতে পারে। আপনার প্রোফাইলগুলি কার্যকরভাবে ইনস্টল করা হয়েছে তা নিশ্চিত করতে, আপনার বেঞ্চমার্ক ডিভাইসগুলিতে যেকোনো ব্যাটারি অপ্টিমাইজেশন অক্ষম করুন।

অতিরিক্ত সম্পদ

{% অক্ষরে অক্ষরে %} {% এন্ডভারব্যাটিম %} {% অক্ষরে অক্ষরে %} {% এন্ডভারব্যাটিম %}