স্টার্টআপ লেটেন্সি উন্নত করুন
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
প্রারম্ভিক লেটেন্সি হল একটি গুরুত্বপূর্ণ মেট্রিক যা প্রতিদিনের সক্রিয় ব্যবহারকারীদের ধরে রাখতে এবং প্রথম ইন্টারঅ্যাকশন থেকে একটি নিরবচ্ছিন্ন ব্যবহারকারীর অভিজ্ঞতা নিশ্চিত করতে পারে। এটি বিশেষত কম RAM পরিবেশে সত্য যেখানে কর্মক্ষমতা ট্রেডঅফ বিবেচনা করা যেতে পারে। যাইহোক, অ্যাপ স্টার্টআপ উন্নত করতে শুরু করার আগে, স্টার্টআপে অবদান রাখে এমন অন্তর্নিহিত দিকগুলি বোঝা গুরুত্বপূর্ণ।
সেরা অনুশীলন
একটি বেসলাইন প্রোফাইল সঙ্গে জাহাজ
বেসলাইন প্রোফাইলগুলি অন্তর্ভুক্ত কোড পাথগুলির জন্য ব্যাখ্যা এবং জাস্ট-ইন-টাইম (JIT) সংকলন পদক্ষেপগুলি এড়িয়ে প্রথম লঞ্চ থেকে প্রায় 30% কোড এক্সিকিউশন গতি উন্নত করে৷ একটি অ্যাপে একটি বেসলাইন প্রোফাইল পাঠানোর মাধ্যমে, অ্যান্ড্রয়েড রানটাইম (ART) এহেড অফ টাইম (AOT) সংকলনের মাধ্যমে অন্তর্ভুক্ত কোড পাথগুলিকে অপ্টিমাইজ করতে পারে, প্রতিটি নতুন ব্যবহারকারীর জন্য এবং প্রতিটি অ্যাপ আপডেটে কর্মক্ষমতা বৃদ্ধি প্রদান করে৷
উদগ্রীব শুরু এড়িয়ে চলুন
আপনার অ্যাপের স্টার্টআপ সিকোয়েন্সে প্রয়োজন নাও হতে পারে এমন আগ্রহের কাজ করা এড়িয়ে চলুন। আপনার অ্যাপটি একটি প্রক্রিয়া শুরু করার সবচেয়ে সম্ভাবনাময় দৃশ্য হল অ্যাপটি চালু করার মাধ্যমে। যাইহোক, WorkManager , JobScheduler , BroadcastReceiver , আবদ্ধ পরিষেবা এবং AndroidX স্টার্টআপ লাইব্রেরিও ব্যাকগ্রাউন্ডে অ্যাপ প্রক্রিয়া শুরু করতে পারে। যদি সম্ভব হয়, আপনার Application
ক্লাসে অপ্রয়োজনীয়ভাবে কিছু শুরু করা এড়িয়ে চলুন। অনেক লাইব্রেরি অন-ডিমান্ড ইনিশিয়ালাইজেশন অফার করে, যা আপনাকে প্রয়োজন হলেই সেগুলিকে আহ্বান করতে দেয়।
UI থ্রেড থেকে ব্যাকগ্রাউন্ড থ্রেডে কাজগুলি সরান
যদি এমন কিছু কাজ থাকে যা বেশি সময় নিচ্ছে এবং মূল থ্রেড ব্লক করছে, সেগুলিকে একটি পটভূমি থ্রেডে নিয়ে যান বা কার্যকারিতা নিশ্চিত করতে WorkManager ব্যবহার করুন৷ বড় টাইম ফ্রেম দখল করে বা প্রত্যাশিত সময়ের চেয়ে বেশি সময় ব্যয় করে এমন ক্রিয়াকলাপগুলি সনাক্ত করুন৷ এই কাজগুলি অপ্টিমাইজ করা স্টার্টআপ লেটেন্সিকে ব্যাপকভাবে উন্নত করতে সাহায্য করতে পারে।
বিশ্লেষণ এবং গুরুতর ডিস্ক পড়া বিতর্ক ঠিক করুন
StrictMode হল একটি ডেভেলপার টুল যা অ্যাপের প্রধান থ্রেডে দুর্ঘটনাজনিত ডিস্ক বা নেটওয়ার্ক অ্যাক্সেসের ব্যবহার সনাক্ত করতে সাহায্য করতে পারে, যেখানে UI অপারেশনগুলি প্রাপ্ত হয় এবং অ্যানিমেশনগুলি সঞ্চালিত হয়। একবার টুলটি উন্নতির একটি সম্ভাব্য ক্ষেত্র সনাক্ত করে, আপনি স্বয়ংক্রিয়ভাবে অ্যাপটি বন্ধ করতে পারেন বা পরবর্তী সময়ে আরও পরিদর্শনের জন্য লঙ্ঘনটি লগ করতে পারেন।
সিঙ্ক্রোনাস আইপিসি এড়িয়ে চলুন
প্রায়শই আপনার অ্যাপের সঞ্চালনে দীর্ঘ বিরতি বাইন্ডার কল, অ্যান্ড্রয়েডে ইন্টার-প্রসেস কমিউনিকেশন (IPC) মেকানিজমের কারণে হয়। অ্যান্ড্রয়েডের সাম্প্রতিক সংস্করণগুলিতে, এটি UI থ্রেড চালানো বন্ধ করার সবচেয়ে সাধারণ কারণগুলির মধ্যে একটি। সাধারণত, ফিক্স হল কলিং ফাংশনগুলি এড়াতে যা বাইন্ডার কল করে; যদি এটি অনিবার্য হয়, তাহলে আপনার মানটি ক্যাশে করা উচিত, বা কাজটি পটভূমির থ্রেডগুলিতে সরানো উচিত। আরও তথ্যের জন্য, থ্রেড শিডিউলিং বিলম্ব দেখুন।
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।
[[["সহজে বোঝা যায়","easyToUnderstand","thumb-up"],["আমার সমস্যার সমাধান হয়েছে","solvedMyProblem","thumb-up"],["অন্যান্য","otherUp","thumb-up"]],[["এতে আমার প্রয়োজনীয় তথ্য নেই","missingTheInformationINeed","thumb-down"],["খুব জটিল / অনেক ধাপ","tooComplicatedTooManySteps","thumb-down"],["পুরনো","outOfDate","thumb-down"],["অনুবাদ সংক্রান্ত সমস্যা","translationIssue","thumb-down"],["নমুনা / কোড সংক্রান্ত সমস্যা","samplesCodeIssue","thumb-down"],["অন্যান্য","otherDown","thumb-down"]],["2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।"],[],[],null,["# Improve startup latency\n\nStartup latency is an important metric to retain daily active users and ensure\na seamless user experience from the first interaction. This is especially true\nin low-RAM environments where performance tradeoffs might be considered.\nHowever, before beginning to improve app startup, it's important to understand\nthe underlying aspects that contribute to startup itself.\n\nBest practices\n--------------\n\n### Ship with a Baseline Profile\n\nBaseline Profiles improve code execution speed by around 30% from the first\nlaunch by avoiding interpretation and\n[just-in-time (JIT)](/about/versions/nougat/android-7.0#jit_aot) compilation\nsteps for included code paths. By shipping a Baseline Profile in an app,\n[Android Runtime (ART)](https://source.android.com/docs/core/runtime)\ncan optimize included code paths through Ahead of Time (AOT) compilation,\nproviding performance enhancements for every new user and on every app update.\n\n### Avoid eager initialization\n\nAvoid doing eager work that may not be necessary in your app's startup sequence.\nThe most likely scenario for your app starting a process is through the\nlaunching of the app. However,\n[WorkManager](/reference/androidx/work/WorkManager),\n[JobScheduler](/reference/android/app/job/JobScheduler),\n[BroadcastReceiver](/reference/android/content/BroadcastReceiver), bound\nservices, and the [AndroidX startup library](/topic/libraries/app-startup)\ncan also start app processes in the background. If possible, avoid unnecessarily\ninitializing anything eagerly in your `Application` class. A lot of libraries\noffer on-demand initialization, which lets you invoke them only when necessary.\n\n### Move tasks from UI thread to background thread\n\nIf there are tasks that are taking longer and blocking the main thread, move\nthem to a background thread or use WorkManager to ensure efficiency.\nIdentify operations that occupy large time frames or consume more time\nthan expected. Optimizing these tasks can help drastically improve startup\nlatency.\n\n### Analyze and fix severe disk read contention\n\n[StrictMode](/reference/android/os/StrictMode) is a developer tool that can\nhelp detect the use of accidental disk or network access on the app's main\nthread, where UI operations are received and animations take place. Once the\ntool detects a possible area of improvement, you can automatically terminate\nthe app or log the violation for further inspection at a later time.\n\n### Avoid synchronous IPCs\n\nOften long pauses in your app's execution are caused by binder calls,\nthe inter-process communication (IPC) mechanism on Android. On recent versions\nof Android, it's one of the most common reasons for the UI Thread to stop\nrunning. Generally, the fix is to avoid calling functions that make binder\ncalls; if it's unavoidable, you should cache the value, or move work to\nbackground threads. For more information, see\n[Thread scheduling delays](/topic/performance/vitals/render#thread_scheduling_delays)."]]