স্টার্টআপ প্রোফাইল তৈরি করুন

স্টার্টআপ প্রোফাইল হল বেসলাইন প্রোফাইলের একটি উপসেট। স্টার্টআপ প্রোফাইলগুলি বিল্ড সিস্টেম দ্বারা ব্যবহৃত হয় যাতে আপনার APK এর DEX ফাইলগুলিতে কোডের লেআউট উন্নত করে ক্লাস এবং পদ্ধতিগুলিকে আরও অপ্টিমাইজ করা যায়। স্টার্টআপ প্রোফাইলের মাধ্যমে, আপনার অ্যাপের স্টার্টআপ সাধারণত বেসলাইন প্রোফাইলের তুলনায় 15% থেকে 30% দ্রুত হয়।

চিত্র ১. DEX লেআউট অপ্টিমাইজেশন থেকে কোড লোকালটির উন্নতি।

আবশ্যকতা

আমরা নিম্নলিখিত সরঞ্জামগুলির সাথে স্টার্টআপ প্রোফাইল ব্যবহার করার পরামর্শ দিচ্ছি:

  • জেটপ্যাক ম্যাক্রোবেঞ্চমার্ক ১.২.০ বা তার বেশি
  • অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.২ বা তার বেশি
  • অ্যান্ড্রয়েড স্টুডিও ইগুয়ানা বা উচ্চতর

এছাড়াও, আপনার অ্যাপে নিম্নলিখিত সেটিংস প্রয়োজন:

  • R8 সক্ষম। আপনার রিলিজ বিল্ডের জন্য, isMinifyEnabled = true সেট করুন।
  • DEX লেআউট অপ্টিমাইজেশন সক্ষম করা হয়েছে। অ্যাপ মডিউলের বিল্ড ফাইলের baselineProfile {} ব্লকে, dexLayoutOptimization = true সেট করুন।

একটি স্টার্টআপ প্রোফাইল তৈরি করুন

যখন আপনি ডিফল্ট বেসলাইন প্রোফাইল জেনারেটর টেমপ্লেট ব্যবহার করেন তখন অ্যান্ড্রয়েড স্টুডিও একটি বেসলাইন প্রোফাইলের পাশাপাশি একটি স্টার্টআপ প্রোফাইল তৈরি করে।

একটি স্টার্টআপ প্রোফাইল তৈরি এবং তৈরি করার সাধারণ ধাপগুলি একটি বেসলাইন প্রোফাইল তৈরি করার ধাপগুলির মতোই।

একটি স্টার্টআপ প্রোফাইল তৈরি করার ডিফল্ট উপায় হল অ্যান্ড্রয়েড স্টুডিওর মধ্যে থেকে বেসলাইন প্রোফাইল জেনারেটর মডিউল টেমপ্লেট ব্যবহার করা। এর মধ্যে স্টার্টআপ ইন্টারঅ্যাকশন অন্তর্ভুক্ত যা একটি মৌলিক স্টার্টআপ প্রোফাইল তৈরি করে। আরও গুরুত্বপূর্ণ ব্যবহারকারীর জার্নি (CUJ) সহ এই স্টার্টআপ প্রোফাইলটি উন্নত করতে, আপনার অ্যাপ স্টার্টআপ CUJ গুলিকে includeInStartupProfile কে true তে সেট করে একটি rule ব্লকে যুক্ত করুন। সাধারণ অ্যাপের জন্য, অ্যাপের MainActivity চালু করা যথেষ্ট হতে পারে। আরও জটিল অ্যাপের জন্য, আপনার অ্যাপে সবচেয়ে সাধারণ এন্ট্রি পয়েন্টগুলি যোগ করার কথা বিবেচনা করুন, যেমন হোম স্ক্রিন থেকে অ্যাপটি শুরু করা বা একটি গভীর লিঙ্কে চালু করা।

নিচের কোড স্নিপেটটি একটি বেসলাইন প্রোফাইল জেনারেটর (ডিফল্টরূপে BaselineProfileGenerator.kt ফাইল) দেখায় যার মধ্যে একটি ডিপ লিঙ্কে লঞ্চ করা অন্তর্ভুক্ত। ডিপ লিঙ্কটি সরাসরি অ্যাপের নিউজ ফিডে যায়, অ্যাপের হোম স্ক্রিনে নয়।

@RunWith(AndroidJUnit4::class)
@LargeTest
class BaselineProfileGenerator {

    @get:Rule
    val rule = BaselineProfileRule()

    @Test
    fun generate() {
        rule.collect(
            packageName = "com.example.app",
            includeInStartupProfile = true
        ) {
            uiAutomator {
                // Launch directly into the NEWS_FEED using startActivityIntent
                startIntent(Intent().apply {
                    setPackage(packageName)
                    setAction("com.example.app.NEWS_FEED")
                })
            }
        }
    }
}

অ্যাপ কনফিগারেশনের জন্য Generate Baseline Profile চালান এবং src/<variant>/generated/baselineProfiles/startup-prof.txt এ Startup Profile নিয়মগুলি খুঁজুন।

স্টার্টআপ প্রোফাইল তৈরির বিবেচ্য বিষয়গুলি

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

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

  1. প্রধান লঞ্চার কার্যকলাপ
  2. অ্যাপ স্টার্টআপ ট্রিগার করে এমন বিজ্ঞপ্তি
  3. ঐচ্ছিক লঞ্চার কার্যক্রম

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

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