অ্যাপ অপ্টিমাইজেশানের জন্য সর্বোত্তম অনুশীলন

নিম্নোক্ত সর্বোত্তম অনুশীলনগুলি গুণমানকে ত্যাগ না করে আপনার অ্যাপটিকে অপ্টিমাইজ করতে সহায়তা করে৷

বেসলাইন প্রোফাইল ব্যবহার করুন

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

একটি স্টার্টআপ প্রোফাইল ব্যবহার করুন

একটি স্টার্টআপ প্রোফাইল একটি বেসলাইন প্রোফাইলের অনুরূপ, তবে এটি দ্রুত অ্যাপ স্টার্টআপের জন্য DEX লেআউটকে অপ্টিমাইজ করার জন্য কম্পাইলের সময় চালানো হয়।

অ্যাপ স্টার্টআপ লাইব্রেরি ব্যবহার করুন

অ্যাপ স্টার্টআপ লাইব্রেরি আপনাকে কম্পোনেন্ট ইনিশিয়ালাইজারগুলিকে সংজ্ঞায়িত করতে দেয় যা একটি একক সামগ্রী প্রদানকারীকে ভাগ করে, প্রতিটি উপাদানের জন্য পৃথক সামগ্রী প্রদানকারীকে সংজ্ঞায়িত করার পরিবর্তে আপনাকে আরম্ভ করতে হবে। এটি অ্যাপ শুরুর সময়কে উল্লেখযোগ্যভাবে উন্নত করতে পারে।

অলসভাবে লাইব্রেরি লোড করুন বা স্বয়ংক্রিয়-সূচনা অক্ষম করুন

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

ViewStubs ব্যবহার করুন

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

আপনি যদি জেটপ্যাক কম্পোজ ব্যবহার করেন তবে আপনি কিছু উপাদান লোড করা পিছিয়ে দেওয়ার জন্য রাজ্য ব্যবহার করে ViewStub অনুরূপ আচরণ পেতে পারেন:

var shouldLoad by remember {mutableStateOf(false)}

if (shouldLoad) {
   MyComposable()
}

shouldLoad পরিবর্তন করে কন্ডিশনাল ব্লকের ভিতরে কম্পোজেবল লোড করুন:

LaunchedEffect(Unit) {
   shouldLoad = true
}

এটি একটি পুনর্গঠন ট্রিগার করে যা প্রথম স্নিপেটে কন্ডিশনাল ব্লকের ভিতরে কোডটি অন্তর্ভুক্ত করে।

আপনার স্প্ল্যাশ পর্দা অপ্টিমাইজ করুন

স্প্ল্যাশ স্ক্রিনগুলি অ্যাপ স্টার্টআপের একটি প্রধান অংশ এবং একটি ভালভাবে ডিজাইন করা স্প্ল্যাশ স্ক্রিন ব্যবহার করে সামগ্রিক অ্যাপ স্টার্টআপ অভিজ্ঞতা উন্নত করতে সাহায্য করতে পারে। Android 12 (API স্তর 31) এবং পরবর্তীতে কর্মক্ষমতা উন্নত করার জন্য ডিজাইন করা একটি স্প্ল্যাশ স্ক্রিন অন্তর্ভুক্ত। আরও তথ্যের জন্য, স্প্ল্যাশ স্ক্রিন দেখুন।

স্কেলযোগ্য চিত্রের ধরন ব্যবহার করুন

আমরা ইমেজের জন্য ভেক্টর অঙ্কনযোগ্য ব্যবহার করার পরামর্শ দিই। যেখানে এটি সম্ভব নয়, সেখানে WebP ছবি ব্যবহার করুন। WebP হল একটি ইমেজ ফরম্যাট যা ওয়েবে ইমেজের জন্য উচ্চতর ক্ষতিহীন এবং ক্ষতিকর কম্প্রেশন প্রদান করে। আপনি Android স্টুডিও ব্যবহার করে বিদ্যমান BMP, JPG, PNG বা স্ট্যাটিক GIF ছবিগুলিকে WebP ফর্ম্যাটে রূপান্তর করতে পারেন। আরও তথ্যের জন্য, WebP ছবি তৈরি করুন দেখুন।

উপরন্তু, স্টার্টআপের সময় লোড হওয়া ছবির সংখ্যা এবং আকার ছোট করুন।

পারফরম্যান্স API ব্যবহার করুন

মিডিয়া প্লেব্যাকের জন্য পারফরম্যান্স API Android 12 (API স্তর 31) এবং পরবর্তীতে উপলব্ধ। আপনি ডিভাইসের ক্ষমতা বুঝতে এবং সেই অনুযায়ী অপারেশন করতে এই API ব্যবহার করতে পারেন।

কোল্ড স্টার্টআপ ট্রেসকে অগ্রাধিকার দিন

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

{% শব্দার্থে %} {% endverbatim %} {% শব্দার্থে %} {% endverbatim %}