স্টার্টআপ প্রোফাইল হল বেসলাইন প্রোফাইলের সাবসেট। স্টার্টআপ প্রোফাইলগুলি বিল্ড সিস্টেম দ্বারা ব্যবহার করা হয় আপনার APK-এর DEX ফাইলে কোডের লেআউট উন্নত করে এতে থাকা ক্লাস এবং পদ্ধতিগুলিকে আরও অপ্টিমাইজ করতে। স্টার্টআপ প্রোফাইলের মাধ্যমে, আপনার অ্যাপ স্টার্টআপ সাধারণত শুধু বেসলাইন প্রোফাইলের তুলনায় ১৫% থেকে ৩০% দ্রুত হয়।
আরও তথ্যের জন্য, স্টার্টআপ প্রোফাইলের ওভারভিউ দেখুন।
প্রয়োজনীয়তা
আমরা নিম্নলিখিত টুল সহ স্টার্টআপ প্রোফাইল ব্যবহার করার সাজেশন দিই:
- Jetpack Macrobenchmark 1.2.0 বা তার পরবর্তী ভার্সন
- Android Gradle Plugin (AGP) 8.2 বা তার পরবর্তী যেকোনও ভার্সন
- Android Studio Iguana বা এর পরের যেকোনও ভার্সন
এছাড়াও, আপনার অ্যাপে নিম্নলিখিত সেটিংস থাকতে হবে:
- R8 চালু করা হয়েছে। আপনার রিলিজ বিল্ডের জন্য,
isMinifyEnabled = trueসেট করুন। - DEX লেআউট অপ্টিমাইজেশন চালু করা হয়েছে। এটি শুধুমাত্র AGP 8.1 থেকে উপলভ্য এবং AGP 8.3 থেকে ডিফল্ট হিসেবে চালু করা হয়েছে। AGP ভার্সন 8.1 থেকে 8.2-এর জন্য,
অ্যাপ মডিউলের বিল্ড ফাইলের
baselineProfile {}ব্লকে,dexLayoutOptimization = trueসেট করুন।
স্টার্টআপ প্রোফাইল তৈরি করুন
আপনি ডিফল্ট বেসলাইন প্রোফাইল জেনারেটর টেমপ্লেট ব্যবহার করলে, Android Studio বেসলাইন প্রোফাইলের পাশাপাশি একটি স্টার্টআপ প্রোফাইল তৈরি করে।
স্টার্টআপ প্রোফাইল তৈরি ও জেনারেট করার সাধারণ ধাপগুলি বেসলাইন প্রোফাইল তৈরি করার ধাপগুলির মতোই।
স্টার্টআপ প্রোফাইল তৈরি করার ডিফল্ট উপায় হল Android Studio-এর মধ্যে থেকে বেসলাইন প্রোফাইল
জেনারেটর মডিউল টেমপ্লেট ব্যবহার করা। এর মধ্যে স্টার্ট-আপের সাথে
ইন্টার্যাকশন অন্তর্ভুক্ত যা একটি প্রাথমিক স্টার্ট-আপ প্রোফাইল তৈরি করে। আরও ক্রিটিক্যাল ইউজার জার্নি (CUJ) সহ এই স্টার্টআপ প্রোফাইল
অগমেন্ট করতে, rule ব্লকে আপনার অ্যাপ স্টার্টআপ CUJ যোগ করুন
যেখানে includeInStartupProfile-কে true-এ সেট করা আছে। সহজ অ্যাপের ক্ষেত্রে, অ্যাপের 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")
})
}
}
}
অ্যাপের জন্য বেসলাইন প্রোফাইল তৈরি করুন কনফিগারেশন রান করুন এবং
src/<variant>/generated/baselineProfiles/startup-prof.txt-এ স্টার্টআপ প্রোফাইল নিয়ম খুঁজুন, যেখানে সেগুলি
AGP দ্বারা অটোমেটিক ব্যবহার করা হয়।
স্টার্টআপ প্রোফাইল তৈরি করার সময় যেসব বিষয় বিবেচনা করতে হবে
স্টার্টআপ প্রোফাইল তৈরি করার সময় কোন ব্যবহারকারীর অভিজ্ঞতা কভার করবেন তা ঠিক করতে, বেশিরভাগ ব্যবহারকারী কোথায় অ্যাপ্লিকেশন শুরু করেন তা বিবেচনা করুন। সাধারণত, লঞ্চার থেকে এবং লগ-ইন করার পরে এটি করা হয়। এটি সবচেয়ে প্রাথমিক বেসলাইন প্রোফাইল জার্নি।
প্রথম ব্যবহারের কেস কভার করার পরে, অ্যাপ স্টার্টআপের জন্য ব্যবহারকারীর ফানেল অনুসরণ করুন। অনেক ক্ষেত্রে, অ্যাপ স্টার্টআপ ফানেল এই তালিকা অনুসরণ করে:
- প্রধান লঞ্চার অ্যাক্টিভিটি
- অ্যাপ স্টার্টআপ ট্রিগার করে এমন বিজ্ঞপ্তি
- ঐচ্ছিক লঞ্চার অ্যাক্টিভিটি
এই তালিকার উপর থেকে কাজ শুরু করুন এবং classes.dex সম্পূর্ণ হওয়ার আগে থামুন। পরে আরও
জার্নি কভার করতে, স্টার্টআপ পাথ থেকে কোড সরিয়ে আরও জার্নি যোগ করুন। স্টার্টআপ
পাথ থেকে কোড সরাতে, অ্যাপ স্টার্টআপের সময় Perfetto ট্রেস দেখুন
এবং দীর্ঘ সময় ধরে চলা অপারেশন খুঁজুন। অ্যাপ স্টার্টআপের সময় মেথড কলের অটোমেটেবল ও সম্পূর্ণ ভিউয়ের জন্য আপনি মেথড ট্রেসিং চালু করা সহ ম্যাক্রোবেঞ্চমার্ক ব্যবহার করতে পারেন।
আপনার জন্য সাজেস্ট করা হয়েছে
- মনে রাখবেন: জাভাস্ক্রিপ্ট বন্ধ থাকলে লিঙ্ক টেক্সট দেখানো হয়
- বেসলাইন প্রোফাইল তৈরি করা {:#creating-profile-rules}
- বেসলাইন প্রোফাইল {:#baseline-profiles}
- মাইক্রোবেঞ্চমার্ক লেখা