Android 9 (API লেভেল 28) এবং পরবর্তীতে অ্যাপ স্ট্যান্ডবাই বাকেট সমর্থন করে। অ্যাপ স্ট্যান্ডবাই বাকেটগুলি সম্প্রতি এবং কত ঘন ঘন অ্যাপগুলি ব্যবহার করা হয়েছে তার উপর ভিত্তি করে সংস্থানগুলির জন্য অ্যাপগুলির অনুরোধগুলিকে অগ্রাধিকার দিতে সহায়তা করে৷ অ্যাপ ব্যবহারের ধরণগুলির উপর ভিত্তি করে, প্রতিটি অ্যাপ পাঁচটি অগ্রাধিকার বালতির একটিতে স্থাপন করা হয়। অ্যাপটি কোন বালতিতে রয়েছে তার উপর ভিত্তি করে সিস্টেমটি প্রতিটি অ্যাপে উপলব্ধ ডিভাইস সংস্থানগুলিকে সীমাবদ্ধ করে।
অগ্রাধিকার বালতি
সিস্টেমটি গতিশীলভাবে প্রতিটি অ্যাপকে একটি অগ্রাধিকার বালতিতে বরাদ্দ করে, প্রয়োজন অনুসারে অ্যাপগুলিকে পুনরায় বরাদ্দ করে। সিস্টেমটি একটি প্রিলোড করা অ্যাপের উপর নির্ভর করতে পারে যা মেশিন লার্নিং ব্যবহার করে প্রতিটি অ্যাপ ব্যবহার করার সম্ভাবনা কতটা তা নির্ধারণ করে এবং অ্যাপগুলিকে উপযুক্ত বালতিতে বরাদ্দ করে।
যদি সিস্টেম অ্যাপটি একটি ডিভাইসে উপস্থিত না থাকে, তবে সিস্টেমটি অ্যাপগুলিকে কত সম্প্রতি ব্যবহার করা হয়েছে তার উপর ভিত্তি করে সাজানোর জন্য ডিফল্ট করে৷ যে অ্যাপগুলি বেশি সক্রিয় সেগুলিকে বালতিতে বরাদ্দ করা হয় যা তাদের উচ্চ অগ্রাধিকার দেয়, অ্যাপটিতে আরও সিস্টেম সংস্থান উপলব্ধ করে। বিশেষ করে, বালতি নির্ধারণ করে যে অ্যাপের কাজগুলি কত ঘনঘন চলবে এবং অ্যাপটি কত ঘন ঘন অ্যালার্ম ট্রিগার করতে পারে। এই বিধিনিষেধগুলি শুধুমাত্র তখনই প্রযোজ্য যখন ডিভাইসটি ব্যাটারি পাওয়ারে থাকে৷ ডিভাইসটি চার্জ করার সময়, সিস্টেম এই বিধিনিষেধ আরোপ করে না।
অগ্রাধিকার বালতি নিম্নরূপ:
- সক্রিয় : অ্যাপটি ব্যবহার করা হচ্ছে বা খুব সম্প্রতি ব্যবহার করা হয়েছে।
- ওয়ার্কিং সেট : অ্যাপ নিয়মিত ব্যবহার করা হয়।
- ঘন ঘন : অ্যাপটি প্রায়শই ব্যবহৃত হয় তবে প্রতিদিন নয়।
- বিরল : অ্যাপটি প্রায়শই ব্যবহার করা হয় না।
- সীমাবদ্ধ : অ্যাপ প্রচুর সিস্টেম রিসোর্স ব্যবহার করে বা অবাঞ্ছিত আচরণ প্রদর্শন করতে পারে।
এই অগ্রাধিকার বালতিগুলি ছাড়াও, এমন অ্যাপগুলির জন্য একটি বিশেষ কখনও বাকেট রয়েছে যা ইনস্টল করা আছে কিন্তু কখনও চালানো হয়নি৷ সিস্টেম এই অ্যাপগুলির উপর কঠোর বিধিনিষেধ আরোপ করে৷
নিম্নলিখিত বর্ণনা অ-ভবিষ্যদ্বাণীমূলক ক্ষেত্রে জন্য হয়. বিপরীতে, যখন ভবিষ্যদ্বাণীটি আচরণের পূর্বাভাস দিতে মেশিন লার্নিং ব্যবহার করে, তখন সাম্প্রতিক ব্যবহারের উপর ভিত্তি করে ব্যবহারকারীর পরবর্তী ক্রিয়াকলাপের প্রত্যাশায় বাকেটগুলি বেছে নেওয়া হয়। উদাহরণস্বরূপ, একটি সম্প্রতি ব্যবহৃত অ্যাপ বিরল বালতিতে শেষ হতে পারে কারণ মেশিন লার্নিং ভবিষ্যদ্বাণী করে যে অ্যাপটি কয়েক ঘন্টা ব্যবহার করা হবে না।
সক্রিয়
একটি অ্যাপ্লিকেশান সক্রিয় বালতিতে থাকে যখন এটি ব্যবহার করা হয়, খুব সম্প্রতি ব্যবহৃত হয়, বা যখন এটি নিম্নলিখিতগুলির মধ্যে যেকোনটি করে:
- একটি কার্যকলাপ চালু করে।
- একটি দীর্ঘ চলমান ফোরগ্রাউন্ড পরিষেবা চালায়।
- একটি বিজ্ঞপ্তি থেকে ব্যবহারকারী দ্বারা ট্যাপ করা হয়.
যদি একটি অ্যাপ সক্রিয় বালতিতে থাকে, সিস্টেমটি অ্যাপের কাজ বা অ্যালার্মগুলিতে ন্যূনতম সীমাবদ্ধতা রাখে:
- Android 16 (API লেভেল 36) থেকে শুরু করে, ব্যাকগ্রাউন্ড জবগুলির একটি উদার রানটাইম কোটা থাকে যদি সেগুলি সক্রিয় বালতিতে একটি অ্যাপ দ্বারা শুরু করা হয়। এর মধ্যে রয়েছে
JobScheduler
সাথে সরাসরি নির্ধারিত চাকরির পাশাপাশি WorkManager বাDownloadManager
মতো অন্যান্য লাইব্রেরি দ্বারা তৈরি করা চাকরি।
ব্যবহারকারীর মিথস্ক্রিয়া অ্যাপ্লিকেশানগুলিকে সক্রিয় হিসাবে বরাদ্দ করে৷
অ্যান্ড্রয়েড 9 (এপিআই লেভেল 28) এবং উচ্চতর, যখন ব্যবহারকারী নির্দিষ্ট উপায়ে আপনার অ্যাপের সাথে ইন্টারঅ্যাক্ট করে, সিস্টেমটি অস্থায়ীভাবে আপনার অ্যাপটিকে সক্রিয় বালতিতে রাখে। ব্যবহারকারী আপনার অ্যাপের সাথে ইন্টারঅ্যাক্ট করা বন্ধ করার পরে, সিস্টেম এটিকে ব্যবহারের ইতিহাসের উপর ভিত্তি করে একটি বালতিতে রাখে।
নিম্নলিখিত মিথস্ক্রিয়াগুলির উদাহরণ যা এই সিস্টেমের আচরণকে ট্রিগার করে:
ব্যবহারকারী আপনার অ্যাপ পাঠানো একটি বিজ্ঞপ্তিতে ট্যাপ করে।
ব্যবহারকারী একটি মিডিয়া বোতামে ট্যাপ করে আপনার অ্যাপের একটি অগ্রভাগের পরিষেবার সাথে ইন্টারঅ্যাক্ট করে৷
Android Automotive OS এর সাথে ইন্টারঅ্যাক্ট করার সময় ব্যবহারকারী আপনার অ্যাপের সাথে সংযোগ স্থাপন করে, যেখানে আপনার অ্যাপটি হয় একটি ফোরগ্রাউন্ড পরিষেবা বা
CONNECTION_TYPE_PROJECTION
ব্যবহার করে।
ওয়ার্কিং সেট
একটি অ্যাপ ওয়ার্কিং সেট বাকেটের মধ্যে থাকে যদি এটি প্রায়ই চলে কিন্তু এটি সক্রিয় না হয়। উদাহরণ স্বরূপ, একটি সোশ্যাল মিডিয়া অ্যাপ যা ব্যবহারকারী প্রায় প্রতিদিনই লঞ্চ করে সেটি কার্যকারী সেটে থাকতে পারে। অ্যাপগুলি যদি পরোক্ষভাবে ব্যবহার করা হয় তবে কাজ সেট বালতিতেও উন্নীত হয়।
যদি একটি অ্যাপ ওয়ার্কিং সেটে থাকে, তবে সিস্টেমটি কাজ চালানোর এবং অ্যালার্ম ট্রিগার করার ক্ষমতার উপর হালকা বিধিনিষেধ আরোপ করে। বিস্তারিত জানার জন্য, পাওয়ার ম্যানেজমেন্ট রিসোর্স লিমিট দেখুন।
ঘন ঘন
একটি অ্যাপ ঘন ঘন বালতিতে থাকে যদি এটি নিয়মিত ব্যবহার করা হয় তবে অগত্যা প্রতিদিন নয়। উদাহরণস্বরূপ, একটি ওয়ার্কআউট-ট্র্যাকিং অ্যাপ যা ব্যবহারকারী জিমে চালান তা ঘন ঘন বালতিতে থাকতে পারে।
যদি একটি অ্যাপ ঘন ঘন বালতিতে থাকে, তবে সিস্টেমটি কাজ চালানো এবং অ্যালার্ম ট্রিগার করার ক্ষমতার উপর শক্তিশালী বিধিনিষেধ আরোপ করে। বিস্তারিত জানার জন্য, পাওয়ার ম্যানেজমেন্ট রিসোর্স লিমিট দেখুন।
বিরল
একটি অ্যাপ বিরল বালতিতে রয়েছে যদি এটি প্রায়শই ব্যবহার না করা হয়। উদাহরণ স্বরূপ, একটি হোটেল অ্যাপ যা ব্যবহারকারী শুধুমাত্র সেই হোটেলে থাকার সময়ই চালায় সেটি বিরল বালতিতে থাকতে পারে।
যদি একটি অ্যাপ বিরল বালতিতে থাকে, তবে সিস্টেমটি কাজ চালানোর এবং অ্যালার্ম ট্রিগার করার ক্ষমতার উপর কঠোর বিধিনিষেধ আরোপ করে। সিস্টেমটি অ্যাপের ইন্টারনেটের সাথে সংযোগ করার ক্ষমতাকেও সীমাবদ্ধ করে। বিস্তারিত জানার জন্য, পাওয়ার ম্যানেজমেন্ট রিসোর্স লিমিট দেখুন।
সীমাবদ্ধ
Android 12 (API লেভেল 31) এ যোগ করা এই বালতিটির সর্বনিম্ন অগ্রাধিকার এবং সব বালতির সর্বোচ্চ সীমাবদ্ধতা রয়েছে। সিস্টেমটি আপনার অ্যাপের আচরণ বিবেচনা করে, যেমন ব্যবহারকারী কতবার এটির সাথে ইন্টারঅ্যাক্ট করে, আপনার অ্যাপটিকে সীমাবদ্ধ বালতিতে রাখবেন কিনা তা সিদ্ধান্ত নিতে।
অ্যান্ড্রয়েড 13 (API লেভেল 33) এবং উচ্চতর ক্ষেত্রে, যদি না আপনার অ্যাপটি ছাড়ের জন্য যোগ্য না হয়, সিস্টেমটি নিম্নলিখিত পরিস্থিতিতে আপনার অ্যাপটিকে সীমাবদ্ধ বালতিতে রাখে:
ব্যবহারকারী নির্দিষ্ট সংখ্যক দিনের জন্য আপনার অ্যাপের সাথে ইন্টারঅ্যাক্ট করে না। অ্যান্ড্রয়েড 12 (এপিআই লেভেল 31) এবং 12এল (এপিআই লেভেল 32) এ দিনের সংখ্যা 45। Android 13 দিনের সংখ্যা কমিয়ে 8 করে।
আপনার অ্যাপটি 24-ঘন্টার সময়কালে অত্যধিক সংখ্যক সম্প্রচার বা বাইন্ডিং আহ্বান করে।
যদি সিস্টেম আপনার অ্যাপকে সীমাবদ্ধ বালতিতে রাখে, তাহলে নিম্নলিখিত বিধিনিষেধগুলি প্রযোজ্য হবে:
- আপনি 10 মিনিটের ব্যাচড সেশনে প্রতিদিন একবার কাজ চালাতে পারেন। এই সেশনের সময়, সিস্টেমটি আপনার অ্যাপের কাজগুলিকে অন্যান্য অ্যাপের কাজের সাথে গ্রুপ করে।
- সীমাবদ্ধ কাজগুলি নিজেরাই চালায় না। একই সময়ে কমপক্ষে একটি অন্য কাজ চলমান বা মুলতুবি থাকতে হবে, যা অন্য যেকোনো চাকরি অন্তর্ভুক্ত করতে পারে।
- সিস্টেম যখন আপনার অ্যাপকে কম সীমাবদ্ধ বালতিতে রাখে তার তুলনায় আপনার অ্যাপ কম দ্রুত কাজ চালাতে পারে।
- আপনার অ্যাপ প্রতিদিন একটি অ্যালার্ম চালু করতে পারে। এই অ্যালার্মটি একটি সঠিক অ্যালার্ম বা একটি সঠিক অ্যালার্ম হতে পারে।
সীমাবদ্ধ বালতি থেকে ছাড়
নিম্নলিখিত ধরনের অ্যাপ্লিকেশানগুলি সীমাবদ্ধ বালতিতে প্রবেশ করা এবং নিষ্ক্রিয়তা ট্রিগারকে বাইপাস করা থেকে অব্যাহতি দেওয়া হয়েছে, এমনকি Android 12 এবং উচ্চতর সংস্করণেও:
- সঙ্গী ডিভাইস অ্যাপ
- ডেমো মোডে একটি ডিভাইসে চলমান অ্যাপ
- ডিভাইস মালিক অ্যাপস
- প্রোফাইল মালিক অ্যাপস
- অবিরাম অ্যাপস
- ভিপিএন অ্যাপস
-
ROLE_DIALER
ভূমিকা আছে এমন অ্যাপ - সিস্টেম সেটিংসে "অনিয়ন্ত্রিত" কার্যকারিতা প্রদানের জন্য ব্যবহারকারী স্পষ্টভাবে মনোনীত করা অ্যাপগুলি
- সক্রিয় উইজেট সহ অ্যাপ্লিকেশন
- যে অ্যাপগুলিকে নিম্নলিখিত অনুমতিগুলির মধ্যে অন্তত একটি দেওয়া হয়েছে:
অগ্রাধিকার বালতি মূল্যায়ন
আপনার অ্যাপটি কোন বালতিতে বরাদ্দ করা হয়েছে তা পরীক্ষা করতে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
getAppStandbyBucket()
কল করুন।একটি টার্মিনাল উইন্ডোতে নিম্নলিখিত কমান্ডটি চালান:
adb shell am get-standby-bucket PACKAGE_NAME
যখনই এটি একটি অ্যাপ স্ট্যান্ডবাই বাকেট যার মান STANDBY_BUCKET_ACTIVE
(10) এর চেয়ে বেশি হয় সিস্টেমটি আপনার অ্যাপটিকে থ্রোটল করে।
সর্বোত্তম অনুশীলন
যদি আপনার অ্যাপটি ডোজ এবং অ্যাপ স্ট্যান্ডবাই এর জন্য সর্বোত্তম অনুশীলনগুলি অনুসরণ করে তবে পরবর্তী পাওয়ার ম্যানেজমেন্ট বৈশিষ্ট্যগুলি কঠিন নয়। যাইহোক, কিছু অ্যাপ আচরণ যা আগে ভাল কাজ করেছিল সমস্যা হতে পারে।
- আপনার অ্যাপটিকে একটি নির্দিষ্ট বালতিতে রাখার জন্য সিস্টেমটিকে ম্যানিপুলেট করার চেষ্টা করবেন না। সিস্টেমের অগ্রাধিকার দেওয়ার পদ্ধতি পরিবর্তিত হতে পারে, এবং প্রতিটি ডিভাইস প্রস্তুতকারক তাদের নিজস্ব অ্যালগরিদম দিয়ে তাদের নিজস্ব বাকেটিং অ্যাপ লিখতে বেছে নিতে পারে। পরিবর্তে, নিশ্চিত করুন যে আপনার অ্যাপটি কোন বালতিতে থাকুক না কেন যথাযথভাবে আচরণ করছে।
- যদি কোনো অ্যাপে লঞ্চার অ্যাক্টিভিটি না থাকে, তাহলে এটি কখনোই সক্রিয় বালতিতে উন্নীত নাও হতে পারে। এই ধরনের কার্যকলাপের জন্য আপনার অ্যাপকে পুনরায় ডিজাইন করার কথা বিবেচনা করুন।
ব্যবহারকারীরা অ্যাপ বিজ্ঞপ্তির সাথে ইন্টারঅ্যাক্ট করতে না পারলে, ব্যবহারকারীরা সক্রিয় বালতিতে অ্যাপের প্রচার ট্রিগার করতে অক্ষম। এই ক্ষেত্রে, ব্যবহারকারীদের ইন্টারঅ্যাক্ট করতে দেয় এমন কিছু বিজ্ঞপ্তি পুনরায় ডিজাইন করার কথা বিবেচনা করুন৷ কিছু নির্দেশিকাগুলির জন্য, মেটেরিয়াল ডিজাইন নোটিফিকেশন ডিজাইন প্যাটার্ন দেখুন।
যদি অ্যাপটি একটি উচ্চ-অগ্রাধিকার ফায়ারবেস ক্লাউড মেসেজিং (FCM) বার্তা পাওয়ার পরে একটি বিজ্ঞপ্তি না দেখায়, তাহলে ব্যবহারকারী অ্যাপটির সাথে ইন্টারঅ্যাক্ট করতে পারবেন না এবং এইভাবে এটিকে সক্রিয় বালতিতে প্রচার করতে পারবেন। প্রকৃতপক্ষে, উচ্চ অগ্রাধিকার এফসিএম বার্তাগুলির একমাত্র উদ্দেশ্য হল ব্যবহারকারীর কাছে একটি বিজ্ঞপ্তি ঠেলে দেওয়া, তাই এই পরিস্থিতিটি ঘটবে না। 12L (API লেভেল 32) এবং তার নিচে, আপনি যদি অনুপযুক্তভাবে একটি FCM বার্তাকে উচ্চ অগ্রাধিকার হিসাবে চিহ্নিত করেন যখন এটি ব্যবহারকারীর ইন্টারঅ্যাকশন ট্রিগার না করে, তাহলে এটি ভবিষ্যতের বার্তাগুলিকে বঞ্চিত করতে পারে।
অ্যাপ্লিকেশানগুলি একাধিক প্যাকেজ জুড়ে বিভক্ত হলে, সেই প্যাকেজগুলি বিভিন্ন বালতিতে থাকতে পারে এবং বিভিন্ন অ্যাক্সেস স্তর থাকতে পারে৷ অ্যাপটি সঠিকভাবে আচরণ করছে কিনা তা নিশ্চিত করতে বিভিন্ন বালতিতে নির্ধারিত প্যাকেজগুলির সাথে এই অ্যাপগুলি পরীক্ষা করুন।
Android 9 (API লেভেল 28) এবং পরবর্তীতে অ্যাপ স্ট্যান্ডবাই বাকেট সমর্থন করে। অ্যাপ স্ট্যান্ডবাই বাকেটগুলি সম্প্রতি এবং কত ঘন ঘন অ্যাপগুলি ব্যবহার করা হয়েছে তার উপর ভিত্তি করে সংস্থানগুলির জন্য অ্যাপগুলির অনুরোধগুলিকে অগ্রাধিকার দিতে সহায়তা করে৷ অ্যাপ ব্যবহারের ধরণগুলির উপর ভিত্তি করে, প্রতিটি অ্যাপ পাঁচটি অগ্রাধিকার বালতির একটিতে স্থাপন করা হয়। অ্যাপটি কোন বালতিতে রয়েছে তার উপর ভিত্তি করে সিস্টেমটি প্রতিটি অ্যাপে উপলব্ধ ডিভাইস সংস্থানগুলিকে সীমাবদ্ধ করে।
অগ্রাধিকার বালতি
সিস্টেমটি গতিশীলভাবে প্রতিটি অ্যাপকে একটি অগ্রাধিকার বালতিতে বরাদ্দ করে, প্রয়োজন অনুসারে অ্যাপগুলিকে পুনরায় বরাদ্দ করে। সিস্টেমটি একটি প্রিলোড করা অ্যাপের উপর নির্ভর করতে পারে যা মেশিন লার্নিং ব্যবহার করে প্রতিটি অ্যাপ ব্যবহার করার সম্ভাবনা কতটা তা নির্ধারণ করে এবং অ্যাপগুলিকে উপযুক্ত বালতিতে বরাদ্দ করে।
যদি সিস্টেম অ্যাপটি একটি ডিভাইসে উপস্থিত না থাকে, তবে সিস্টেমটি অ্যাপগুলিকে কত সম্প্রতি ব্যবহার করা হয়েছে তার উপর ভিত্তি করে সাজানোর জন্য ডিফল্ট করে৷ যে অ্যাপগুলি বেশি সক্রিয় সেগুলিকে বালতিতে বরাদ্দ করা হয় যা তাদের উচ্চ অগ্রাধিকার দেয়, অ্যাপটিতে আরও সিস্টেম সংস্থান উপলব্ধ করে। বিশেষ করে, বালতি নির্ধারণ করে যে অ্যাপের কাজগুলি কত ঘনঘন চলবে এবং অ্যাপটি কত ঘন ঘন অ্যালার্ম ট্রিগার করতে পারে। এই বিধিনিষেধগুলি শুধুমাত্র তখনই প্রযোজ্য যখন ডিভাইসটি ব্যাটারি পাওয়ারে থাকে৷ ডিভাইসটি চার্জ করার সময়, সিস্টেম এই বিধিনিষেধ আরোপ করে না।
অগ্রাধিকার বালতি নিম্নরূপ:
- সক্রিয় : অ্যাপটি ব্যবহার করা হচ্ছে বা খুব সম্প্রতি ব্যবহার করা হয়েছে।
- ওয়ার্কিং সেট : অ্যাপ নিয়মিত ব্যবহার করা হয়।
- ঘন ঘন : অ্যাপটি প্রায়শই ব্যবহৃত হয় তবে প্রতিদিন নয়।
- বিরল : অ্যাপটি প্রায়শই ব্যবহার করা হয় না।
- সীমাবদ্ধ : অ্যাপ প্রচুর সিস্টেম রিসোর্স ব্যবহার করে বা অবাঞ্ছিত আচরণ প্রদর্শন করতে পারে।
এই অগ্রাধিকার বালতিগুলি ছাড়াও, এমন অ্যাপগুলির জন্য একটি বিশেষ কখনও বাকেট রয়েছে যা ইনস্টল করা আছে কিন্তু কখনও চালানো হয়নি৷ সিস্টেম এই অ্যাপগুলির উপর কঠোর বিধিনিষেধ আরোপ করে৷
নিম্নলিখিত বর্ণনা অ-ভবিষ্যদ্বাণীমূলক ক্ষেত্রে জন্য হয়. বিপরীতে, যখন ভবিষ্যদ্বাণীটি আচরণের পূর্বাভাস দিতে মেশিন লার্নিং ব্যবহার করে, তখন সাম্প্রতিক ব্যবহারের উপর ভিত্তি করে ব্যবহারকারীর পরবর্তী ক্রিয়াকলাপের প্রত্যাশায় বাকেটগুলি বেছে নেওয়া হয়। উদাহরণস্বরূপ, একটি সম্প্রতি ব্যবহৃত অ্যাপ বিরল বালতিতে শেষ হতে পারে কারণ মেশিন লার্নিং ভবিষ্যদ্বাণী করে যে অ্যাপটি কয়েক ঘন্টা ব্যবহার করা হবে না।
সক্রিয়
একটি অ্যাপ্লিকেশান সক্রিয় বালতিতে থাকে যখন এটি ব্যবহার করা হয়, খুব সম্প্রতি ব্যবহৃত হয়, বা যখন এটি নিম্নলিখিতগুলির মধ্যে যেকোনটি করে:
- একটি কার্যকলাপ চালু করে।
- একটি দীর্ঘ চলমান ফোরগ্রাউন্ড পরিষেবা চালায়।
- একটি বিজ্ঞপ্তি থেকে ব্যবহারকারী দ্বারা ট্যাপ করা হয়.
যদি একটি অ্যাপ সক্রিয় বালতিতে থাকে, সিস্টেমটি অ্যাপের কাজ বা অ্যালার্মগুলিতে ন্যূনতম সীমাবদ্ধতা রাখে:
- Android 16 (API লেভেল 36) থেকে শুরু করে, ব্যাকগ্রাউন্ড জবগুলির একটি উদার রানটাইম কোটা থাকে যদি সেগুলি সক্রিয় বালতিতে একটি অ্যাপ দ্বারা শুরু করা হয়। এর মধ্যে রয়েছে
JobScheduler
সাথে সরাসরি নির্ধারিত চাকরির পাশাপাশি WorkManager বাDownloadManager
মতো অন্যান্য লাইব্রেরি দ্বারা তৈরি করা চাকরি।
ব্যবহারকারীর মিথস্ক্রিয়া অ্যাপ্লিকেশানগুলিকে সক্রিয় হিসাবে বরাদ্দ করে৷
অ্যান্ড্রয়েড 9 (এপিআই লেভেল 28) এবং উচ্চতর, যখন ব্যবহারকারী নির্দিষ্ট উপায়ে আপনার অ্যাপের সাথে ইন্টারঅ্যাক্ট করে, সিস্টেমটি অস্থায়ীভাবে আপনার অ্যাপটিকে সক্রিয় বালতিতে রাখে। ব্যবহারকারী আপনার অ্যাপের সাথে ইন্টারঅ্যাক্ট করা বন্ধ করার পরে, সিস্টেম এটিকে ব্যবহারের ইতিহাসের উপর ভিত্তি করে একটি বালতিতে রাখে।
নিম্নলিখিত মিথস্ক্রিয়াগুলির উদাহরণ যা এই সিস্টেমের আচরণকে ট্রিগার করে:
ব্যবহারকারী আপনার অ্যাপ পাঠানো একটি বিজ্ঞপ্তিতে ট্যাপ করে।
ব্যবহারকারী একটি মিডিয়া বোতামে ট্যাপ করে আপনার অ্যাপের একটি অগ্রভাগের পরিষেবার সাথে ইন্টারঅ্যাক্ট করে৷
Android Automotive OS এর সাথে ইন্টারঅ্যাক্ট করার সময় ব্যবহারকারী আপনার অ্যাপের সাথে সংযোগ স্থাপন করে, যেখানে আপনার অ্যাপটি হয় একটি ফোরগ্রাউন্ড পরিষেবা বা
CONNECTION_TYPE_PROJECTION
ব্যবহার করে।
ওয়ার্কিং সেট
একটি অ্যাপ ওয়ার্কিং সেট বাকেটের মধ্যে থাকে যদি এটি প্রায়ই চলে কিন্তু এটি সক্রিয় না হয়। উদাহরণ স্বরূপ, একটি সোশ্যাল মিডিয়া অ্যাপ যা ব্যবহারকারী প্রায় প্রতিদিনই লঞ্চ করে সেটি কার্যকারী সেটে থাকতে পারে। অ্যাপগুলি যদি পরোক্ষভাবে ব্যবহার করা হয় তবে কাজ সেট বালতিতেও উন্নীত হয়।
যদি একটি অ্যাপ ওয়ার্কিং সেটে থাকে, তবে সিস্টেমটি কাজ চালানোর এবং অ্যালার্ম ট্রিগার করার ক্ষমতার উপর হালকা বিধিনিষেধ আরোপ করে। বিস্তারিত জানার জন্য, পাওয়ার ম্যানেজমেন্ট রিসোর্স লিমিট দেখুন।
ঘন ঘন
একটি অ্যাপ ঘন ঘন বালতিতে থাকে যদি এটি নিয়মিত ব্যবহার করা হয় তবে অগত্যা প্রতিদিন নয়। উদাহরণস্বরূপ, একটি ওয়ার্কআউট-ট্র্যাকিং অ্যাপ যা ব্যবহারকারী জিমে চালান তা ঘন ঘন বালতিতে থাকতে পারে।
যদি একটি অ্যাপ ঘন ঘন বালতিতে থাকে, তবে সিস্টেমটি কাজ চালানো এবং অ্যালার্ম ট্রিগার করার ক্ষমতার উপর শক্তিশালী বিধিনিষেধ আরোপ করে। বিস্তারিত জানার জন্য, পাওয়ার ম্যানেজমেন্ট রিসোর্স লিমিট দেখুন।
বিরল
একটি অ্যাপ বিরল বালতিতে রয়েছে যদি এটি প্রায়শই ব্যবহার না করা হয়। উদাহরণ স্বরূপ, একটি হোটেল অ্যাপ যা ব্যবহারকারী শুধুমাত্র সেই হোটেলে থাকার সময়ই চালায় সেটি বিরল বালতিতে থাকতে পারে।
যদি একটি অ্যাপ বিরল বালতিতে থাকে, তবে সিস্টেমটি কাজ চালানোর এবং অ্যালার্ম ট্রিগার করার ক্ষমতার উপর কঠোর বিধিনিষেধ আরোপ করে। সিস্টেমটি অ্যাপের ইন্টারনেটের সাথে সংযোগ করার ক্ষমতাকেও সীমাবদ্ধ করে। বিস্তারিত জানার জন্য, পাওয়ার ম্যানেজমেন্ট রিসোর্স লিমিট দেখুন।
সীমাবদ্ধ
Android 12 (API লেভেল 31) এ যোগ করা এই বালতিটির সর্বনিম্ন অগ্রাধিকার এবং সব বালতির সর্বোচ্চ সীমাবদ্ধতা রয়েছে। সিস্টেমটি আপনার অ্যাপের আচরণ বিবেচনা করে, যেমন ব্যবহারকারী কতবার এটির সাথে ইন্টারঅ্যাক্ট করে, আপনার অ্যাপটিকে সীমাবদ্ধ বালতিতে রাখবেন কিনা তা সিদ্ধান্ত নিতে।
অ্যান্ড্রয়েড 13 (API লেভেল 33) এবং উচ্চতর ক্ষেত্রে, যদি না আপনার অ্যাপটি ছাড়ের জন্য যোগ্য না হয়, সিস্টেমটি নিম্নলিখিত পরিস্থিতিতে আপনার অ্যাপটিকে সীমাবদ্ধ বালতিতে রাখে:
ব্যবহারকারী নির্দিষ্ট সংখ্যক দিনের জন্য আপনার অ্যাপের সাথে ইন্টারঅ্যাক্ট করে না। অ্যান্ড্রয়েড 12 (এপিআই লেভেল 31) এবং 12এল (এপিআই লেভেল 32) এ দিনের সংখ্যা 45। Android 13 দিনের সংখ্যা কমিয়ে 8 করে।
আপনার অ্যাপটি 24-ঘন্টার সময়কালে অত্যধিক সংখ্যক সম্প্রচার বা বাইন্ডিং আহ্বান করে।
যদি সিস্টেম আপনার অ্যাপকে সীমাবদ্ধ বালতিতে রাখে, তাহলে নিম্নলিখিত বিধিনিষেধগুলি প্রযোজ্য হবে:
- আপনি 10 মিনিটের ব্যাচড সেশনে প্রতিদিন একবার কাজ চালাতে পারেন। এই সেশনের সময়, সিস্টেমটি আপনার অ্যাপের কাজগুলিকে অন্যান্য অ্যাপের কাজের সাথে গ্রুপ করে।
- সীমাবদ্ধ কাজগুলি নিজেরাই চালায় না। একই সময়ে কমপক্ষে একটি অন্য কাজ চলমান বা মুলতুবি থাকতে হবে, যা অন্য যেকোনো চাকরি অন্তর্ভুক্ত করতে পারে।
- সিস্টেম যখন আপনার অ্যাপকে কম সীমাবদ্ধ বালতিতে রাখে তার তুলনায় আপনার অ্যাপ কম দ্রুত কাজ চালাতে পারে।
- আপনার অ্যাপ প্রতিদিন একটি অ্যালার্ম চালু করতে পারে। এই অ্যালার্মটি একটি সঠিক অ্যালার্ম বা একটি সঠিক অ্যালার্ম হতে পারে।
সীমাবদ্ধ বালতি থেকে ছাড়
নিম্নলিখিত ধরনের অ্যাপ্লিকেশানগুলি সীমাবদ্ধ বালতিতে প্রবেশ করা এবং নিষ্ক্রিয়তা ট্রিগারকে বাইপাস করা থেকে অব্যাহতি দেওয়া হয়েছে, এমনকি Android 12 এবং উচ্চতর সংস্করণেও:
- সঙ্গী ডিভাইস অ্যাপ
- ডেমো মোডে একটি ডিভাইসে চলমান অ্যাপ
- ডিভাইস মালিক অ্যাপস
- প্রোফাইল মালিক অ্যাপস
- অবিরাম অ্যাপস
- ভিপিএন অ্যাপস
-
ROLE_DIALER
ভূমিকা আছে এমন অ্যাপ - সিস্টেম সেটিংসে "অনিয়ন্ত্রিত" কার্যকারিতা প্রদানের জন্য ব্যবহারকারী স্পষ্টভাবে মনোনীত করা অ্যাপগুলি
- সক্রিয় উইজেট সহ অ্যাপ্লিকেশন
- যে অ্যাপগুলিকে নিম্নলিখিত অনুমতিগুলির মধ্যে অন্তত একটি দেওয়া হয়েছে:
অগ্রাধিকার বালতি মূল্যায়ন
আপনার অ্যাপটি কোন বালতিতে বরাদ্দ করা হয়েছে তা পরীক্ষা করতে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
getAppStandbyBucket()
কল করুন।একটি টার্মিনাল উইন্ডোতে নিম্নলিখিত কমান্ডটি চালান:
adb shell am get-standby-bucket PACKAGE_NAME
যখনই এটি একটি অ্যাপ স্ট্যান্ডবাই বাকেট যার মান STANDBY_BUCKET_ACTIVE
(10) এর চেয়ে বেশি হয় সিস্টেমটি আপনার অ্যাপটিকে থ্রোটল করে।
সর্বোত্তম অনুশীলন
যদি আপনার অ্যাপটি ডোজ এবং অ্যাপ স্ট্যান্ডবাই এর জন্য সর্বোত্তম অনুশীলনগুলি অনুসরণ করে তবে পরবর্তী পাওয়ার ম্যানেজমেন্ট বৈশিষ্ট্যগুলি কঠিন নয়। যাইহোক, কিছু অ্যাপ আচরণ যা আগে ভাল কাজ করেছিল সমস্যা হতে পারে।
- আপনার অ্যাপটিকে একটি নির্দিষ্ট বালতিতে রাখার জন্য সিস্টেমটিকে ম্যানিপুলেট করার চেষ্টা করবেন না। সিস্টেমের অগ্রাধিকার দেওয়ার পদ্ধতি পরিবর্তিত হতে পারে, এবং প্রতিটি ডিভাইস প্রস্তুতকারক তাদের নিজস্ব অ্যালগরিদম দিয়ে তাদের নিজস্ব বাকেটিং অ্যাপ লিখতে বেছে নিতে পারে। পরিবর্তে, নিশ্চিত করুন যে আপনার অ্যাপটি কোন বালতিতে থাকুক না কেন যথাযথভাবে আচরণ করছে।
- যদি কোনো অ্যাপে লঞ্চার অ্যাক্টিভিটি না থাকে, তাহলে এটি কখনোই সক্রিয় বালতিতে উন্নীত নাও হতে পারে। এই ধরনের কার্যকলাপের জন্য আপনার অ্যাপকে পুনরায় ডিজাইন করার কথা বিবেচনা করুন।
ব্যবহারকারীরা অ্যাপ বিজ্ঞপ্তির সাথে ইন্টারঅ্যাক্ট করতে না পারলে, ব্যবহারকারীরা সক্রিয় বালতিতে অ্যাপের প্রচার ট্রিগার করতে অক্ষম। এই ক্ষেত্রে, ব্যবহারকারীদের ইন্টারঅ্যাক্ট করতে দেয় এমন কিছু বিজ্ঞপ্তি পুনরায় ডিজাইন করার কথা বিবেচনা করুন৷ কিছু নির্দেশিকাগুলির জন্য, মেটেরিয়াল ডিজাইন নোটিফিকেশন ডিজাইন প্যাটার্ন দেখুন।
যদি অ্যাপটি একটি উচ্চ-অগ্রাধিকার ফায়ারবেস ক্লাউড মেসেজিং (FCM) বার্তা পাওয়ার পরে একটি বিজ্ঞপ্তি না দেখায়, তাহলে ব্যবহারকারী অ্যাপটির সাথে ইন্টারঅ্যাক্ট করতে পারবেন না এবং এইভাবে এটিকে সক্রিয় বালতিতে প্রচার করতে পারবেন। প্রকৃতপক্ষে, উচ্চ অগ্রাধিকার এফসিএম বার্তাগুলির একমাত্র উদ্দেশ্য হল ব্যবহারকারীর কাছে একটি বিজ্ঞপ্তি ঠেলে দেওয়া, তাই এই পরিস্থিতিটি ঘটবে না। 12L (API লেভেল 32) এবং তার নিচে, আপনি যদি অনুপযুক্তভাবে একটি FCM বার্তাকে উচ্চ অগ্রাধিকার হিসাবে চিহ্নিত করেন যখন এটি ব্যবহারকারীর ইন্টারঅ্যাকশন ট্রিগার না করে, তাহলে এটি ভবিষ্যতের বার্তাগুলিকে বঞ্চিত করতে পারে।
অ্যাপ্লিকেশানগুলি একাধিক প্যাকেজ জুড়ে বিভক্ত হলে, সেই প্যাকেজগুলি বিভিন্ন বালতিতে থাকতে পারে এবং বিভিন্ন অ্যাক্সেস স্তর থাকতে পারে৷ অ্যাপটি সঠিকভাবে আচরণ করছে কিনা তা নিশ্চিত করতে বিভিন্ন বালতিতে নির্ধারিত প্যাকেজগুলির সাথে এই অ্যাপগুলি পরীক্ষা করুন।
Android 9 (API লেভেল 28) এবং পরবর্তীতে অ্যাপ স্ট্যান্ডবাই বাকেট সমর্থন করে। অ্যাপ স্ট্যান্ডবাই বাকেটগুলি সম্প্রতি এবং কত ঘন ঘন অ্যাপগুলি ব্যবহার করা হয়েছে তার উপর ভিত্তি করে সংস্থানগুলির জন্য অ্যাপগুলির অনুরোধগুলিকে অগ্রাধিকার দিতে সহায়তা করে৷ অ্যাপ ব্যবহারের ধরণগুলির উপর ভিত্তি করে, প্রতিটি অ্যাপ পাঁচটি অগ্রাধিকার বালতির একটিতে স্থাপন করা হয়। অ্যাপটি কোন বালতিতে রয়েছে তার উপর ভিত্তি করে সিস্টেমটি প্রতিটি অ্যাপে উপলব্ধ ডিভাইস সংস্থানগুলিকে সীমাবদ্ধ করে।
অগ্রাধিকার বালতি
সিস্টেমটি গতিশীলভাবে প্রতিটি অ্যাপকে একটি অগ্রাধিকার বালতিতে বরাদ্দ করে, প্রয়োজন অনুসারে অ্যাপগুলিকে পুনরায় বরাদ্দ করে। সিস্টেমটি একটি প্রিলোড করা অ্যাপের উপর নির্ভর করতে পারে যা মেশিন লার্নিং ব্যবহার করে প্রতিটি অ্যাপ ব্যবহার করার সম্ভাবনা কতটা তা নির্ধারণ করে এবং অ্যাপগুলিকে উপযুক্ত বালতিতে বরাদ্দ করে।
যদি সিস্টেম অ্যাপটি একটি ডিভাইসে উপস্থিত না থাকে, তবে সিস্টেমটি অ্যাপগুলিকে কত সম্প্রতি ব্যবহার করা হয়েছে তার উপর ভিত্তি করে সাজানোর জন্য ডিফল্ট করে৷ যে অ্যাপগুলি বেশি সক্রিয় সেগুলিকে বালতিতে বরাদ্দ করা হয় যা তাদের উচ্চ অগ্রাধিকার দেয়, অ্যাপটিতে আরও সিস্টেম সংস্থান উপলব্ধ করে। বিশেষ করে, বালতি নির্ধারণ করে যে অ্যাপের কাজগুলি কত ঘনঘন চলবে এবং অ্যাপটি কত ঘন ঘন অ্যালার্ম ট্রিগার করতে পারে। এই বিধিনিষেধগুলি শুধুমাত্র তখনই প্রযোজ্য যখন ডিভাইসটি ব্যাটারি পাওয়ারে থাকে৷ ডিভাইসটি চার্জ করার সময়, সিস্টেম এই বিধিনিষেধ আরোপ করে না।
অগ্রাধিকার বালতি নিম্নরূপ:
- সক্রিয় : অ্যাপটি ব্যবহার করা হচ্ছে বা খুব সম্প্রতি ব্যবহার করা হয়েছে।
- ওয়ার্কিং সেট : অ্যাপ নিয়মিত ব্যবহার করা হয়।
- ঘন ঘন : অ্যাপটি প্রায়শই ব্যবহৃত হয় তবে প্রতিদিন নয়।
- বিরল : অ্যাপটি প্রায়শই ব্যবহার করা হয় না।
- সীমাবদ্ধ : অ্যাপ প্রচুর সিস্টেম রিসোর্স ব্যবহার করে বা অবাঞ্ছিত আচরণ প্রদর্শন করতে পারে।
এই অগ্রাধিকার বালতিগুলি ছাড়াও, এমন অ্যাপগুলির জন্য একটি বিশেষ কখনও বাকেট রয়েছে যা ইনস্টল করা আছে কিন্তু কখনও চালানো হয়নি৷ সিস্টেম এই অ্যাপগুলির উপর কঠোর বিধিনিষেধ আরোপ করে৷
নিম্নলিখিত বর্ণনা অ-ভবিষ্যদ্বাণীমূলক ক্ষেত্রে জন্য হয়. বিপরীতে, যখন ভবিষ্যদ্বাণীটি আচরণের পূর্বাভাস দিতে মেশিন লার্নিং ব্যবহার করে, তখন সাম্প্রতিক ব্যবহারের উপর ভিত্তি করে ব্যবহারকারীর পরবর্তী ক্রিয়াকলাপের প্রত্যাশায় বাকেটগুলি বেছে নেওয়া হয়। উদাহরণস্বরূপ, একটি সম্প্রতি ব্যবহৃত অ্যাপ বিরল বালতিতে শেষ হতে পারে কারণ মেশিন লার্নিং ভবিষ্যদ্বাণী করে যে অ্যাপটি কয়েক ঘন্টা ব্যবহার করা হবে না।
সক্রিয়
একটি অ্যাপ্লিকেশান সক্রিয় বালতিতে থাকে যখন এটি ব্যবহার করা হয়, খুব সম্প্রতি ব্যবহৃত হয়, বা যখন এটি নিম্নলিখিতগুলির মধ্যে যেকোনটি করে:
- একটি কার্যকলাপ চালু করে।
- একটি দীর্ঘ চলমান ফোরগ্রাউন্ড পরিষেবা চালায়।
- একটি বিজ্ঞপ্তি থেকে ব্যবহারকারী দ্বারা ট্যাপ করা হয়.
যদি একটি অ্যাপ সক্রিয় বালতিতে থাকে, সিস্টেমটি অ্যাপের কাজ বা অ্যালার্মগুলিতে ন্যূনতম সীমাবদ্ধতা রাখে:
- Android 16 (API লেভেল 36) থেকে শুরু করে, ব্যাকগ্রাউন্ড জবগুলির একটি উদার রানটাইম কোটা থাকে যদি সেগুলি সক্রিয় বালতিতে একটি অ্যাপ দ্বারা শুরু করা হয়। এর মধ্যে রয়েছে
JobScheduler
সাথে সরাসরি নির্ধারিত চাকরির পাশাপাশি WorkManager বাDownloadManager
মতো অন্যান্য লাইব্রেরি দ্বারা তৈরি করা চাকরি।
ব্যবহারকারীর মিথস্ক্রিয়া অ্যাপ্লিকেশানগুলিকে সক্রিয় হিসাবে বরাদ্দ করে৷
অ্যান্ড্রয়েড 9 (এপিআই লেভেল 28) এবং উচ্চতর, যখন ব্যবহারকারী নির্দিষ্ট উপায়ে আপনার অ্যাপের সাথে ইন্টারঅ্যাক্ট করে, সিস্টেমটি অস্থায়ীভাবে আপনার অ্যাপটিকে সক্রিয় বালতিতে রাখে। ব্যবহারকারী আপনার অ্যাপের সাথে ইন্টারঅ্যাক্ট করা বন্ধ করার পরে, সিস্টেম এটিকে ব্যবহারের ইতিহাসের উপর ভিত্তি করে একটি বালতিতে রাখে।
নিম্নলিখিত মিথস্ক্রিয়াগুলির উদাহরণ যা এই সিস্টেমের আচরণকে ট্রিগার করে:
ব্যবহারকারী আপনার অ্যাপ পাঠানো একটি বিজ্ঞপ্তিতে ট্যাপ করে।
ব্যবহারকারী একটি মিডিয়া বোতামে ট্যাপ করে আপনার অ্যাপের একটি অগ্রভাগের পরিষেবার সাথে ইন্টারঅ্যাক্ট করে৷
Android Automotive OS এর সাথে ইন্টারঅ্যাক্ট করার সময় ব্যবহারকারী আপনার অ্যাপের সাথে সংযোগ স্থাপন করে, যেখানে আপনার অ্যাপটি হয় একটি ফোরগ্রাউন্ড পরিষেবা বা
CONNECTION_TYPE_PROJECTION
ব্যবহার করে।
ওয়ার্কিং সেট
একটি অ্যাপ ওয়ার্কিং সেট বাকেটের মধ্যে থাকে যদি এটি প্রায়ই চলে কিন্তু এটি সক্রিয় না হয়। উদাহরণ স্বরূপ, একটি সোশ্যাল মিডিয়া অ্যাপ যা ব্যবহারকারী প্রায় প্রতিদিনই লঞ্চ করে সেটি কার্যকারী সেটে থাকতে পারে। অ্যাপগুলি যদি পরোক্ষভাবে ব্যবহার করা হয় তবে কাজ সেট বালতিতেও উন্নীত হয়।
যদি একটি অ্যাপ ওয়ার্কিং সেটে থাকে, তবে সিস্টেমটি কাজ চালানোর এবং অ্যালার্ম ট্রিগার করার ক্ষমতার উপর হালকা বিধিনিষেধ আরোপ করে। বিস্তারিত জানার জন্য, পাওয়ার ম্যানেজমেন্ট রিসোর্স লিমিট দেখুন।
ঘন ঘন
একটি অ্যাপ ঘন ঘন বালতিতে থাকে যদি এটি নিয়মিত ব্যবহার করা হয় তবে অগত্যা প্রতিদিন নয়। উদাহরণস্বরূপ, একটি ওয়ার্কআউট-ট্র্যাকিং অ্যাপ যা ব্যবহারকারী জিমে চালান তা ঘন ঘন বালতিতে থাকতে পারে।
যদি একটি অ্যাপ ঘন ঘন বালতিতে থাকে, তবে সিস্টেমটি কাজ চালানো এবং অ্যালার্ম ট্রিগার করার ক্ষমতার উপর শক্তিশালী বিধিনিষেধ আরোপ করে। বিস্তারিত জানার জন্য, পাওয়ার ম্যানেজমেন্ট রিসোর্স লিমিট দেখুন।
বিরল
একটি অ্যাপ বিরল বালতিতে রয়েছে যদি এটি প্রায়শই ব্যবহার না করা হয়। উদাহরণ স্বরূপ, একটি হোটেল অ্যাপ যা ব্যবহারকারী শুধুমাত্র সেই হোটেলে থাকার সময়ই চালায় সেটি বিরল বালতিতে থাকতে পারে।
যদি একটি অ্যাপ বিরল বালতিতে থাকে, তবে সিস্টেমটি কাজ চালানোর এবং অ্যালার্ম ট্রিগার করার ক্ষমতার উপর কঠোর বিধিনিষেধ আরোপ করে। সিস্টেমটি অ্যাপের ইন্টারনেটের সাথে সংযোগ করার ক্ষমতাকেও সীমাবদ্ধ করে। বিস্তারিত জানার জন্য, পাওয়ার ম্যানেজমেন্ট রিসোর্স লিমিট দেখুন।
সীমাবদ্ধ
Android 12 (API লেভেল 31) এ যোগ করা এই বালতিটির সর্বনিম্ন অগ্রাধিকার এবং সব বালতির সর্বোচ্চ সীমাবদ্ধতা রয়েছে। সিস্টেমটি আপনার অ্যাপের আচরণ বিবেচনা করে, যেমন ব্যবহারকারী কতবার এটির সাথে ইন্টারঅ্যাক্ট করে, আপনার অ্যাপটিকে সীমাবদ্ধ বালতিতে রাখবেন কিনা তা সিদ্ধান্ত নিতে।
অ্যান্ড্রয়েড 13 (API লেভেল 33) এবং উচ্চতর ক্ষেত্রে, যদি না আপনার অ্যাপটি ছাড়ের জন্য যোগ্য না হয়, সিস্টেমটি নিম্নলিখিত পরিস্থিতিতে আপনার অ্যাপটিকে সীমাবদ্ধ বালতিতে রাখে:
ব্যবহারকারী নির্দিষ্ট সংখ্যক দিনের জন্য আপনার অ্যাপের সাথে ইন্টারঅ্যাক্ট করে না। অ্যান্ড্রয়েড 12 (এপিআই লেভেল 31) এবং 12এল (এপিআই লেভেল 32) এ দিনের সংখ্যা 45। Android 13 দিনের সংখ্যা কমিয়ে 8 করে।
আপনার অ্যাপটি 24-ঘন্টার সময়কালে অত্যধিক সংখ্যক সম্প্রচার বা বাইন্ডিং আহ্বান করে।
যদি সিস্টেম আপনার অ্যাপকে সীমাবদ্ধ বালতিতে রাখে, তাহলে নিম্নলিখিত বিধিনিষেধগুলি প্রযোজ্য হবে:
- আপনি 10 মিনিটের ব্যাচড সেশনে প্রতিদিন একবার কাজ চালাতে পারেন। এই সেশনের সময়, সিস্টেমটি আপনার অ্যাপের কাজগুলিকে অন্যান্য অ্যাপের কাজের সাথে গ্রুপ করে।
- সীমাবদ্ধ কাজগুলি নিজেরাই চালায় না। একই সময়ে কমপক্ষে একটি অন্য কাজ চলমান বা মুলতুবি থাকতে হবে, যা অন্য যেকোনো চাকরি অন্তর্ভুক্ত করতে পারে।
- সিস্টেম যখন আপনার অ্যাপকে কম সীমাবদ্ধ বালতিতে রাখে তার তুলনায় আপনার অ্যাপ কম দ্রুত কাজ চালাতে পারে।
- আপনার অ্যাপ প্রতিদিন একটি অ্যালার্ম চালু করতে পারে। এই অ্যালার্মটি একটি সঠিক অ্যালার্ম বা একটি সঠিক অ্যালার্ম হতে পারে।
সীমাবদ্ধ বালতি থেকে ছাড়
নিম্নলিখিত ধরনের অ্যাপ্লিকেশানগুলি সীমাবদ্ধ বালতিতে প্রবেশ করা এবং নিষ্ক্রিয়তা ট্রিগারকে বাইপাস করা থেকে অব্যাহতি দেওয়া হয়েছে, এমনকি Android 12 এবং উচ্চতর সংস্করণেও:
- সঙ্গী ডিভাইস অ্যাপ
- ডেমো মোডে একটি ডিভাইসে চলমান অ্যাপ
- ডিভাইস মালিক অ্যাপস
- প্রোফাইল মালিক অ্যাপস
- অবিরাম অ্যাপস
- ভিপিএন অ্যাপস
-
ROLE_DIALER
ভূমিকা আছে এমন অ্যাপ - সিস্টেম সেটিংসে "অনিয়ন্ত্রিত" কার্যকারিতা প্রদানের জন্য ব্যবহারকারী স্পষ্টভাবে মনোনীত করা অ্যাপগুলি
- সক্রিয় উইজেট সহ অ্যাপ্লিকেশন
- যে অ্যাপগুলিকে নিম্নলিখিত অনুমতিগুলির মধ্যে অন্তত একটি দেওয়া হয়েছে:
অগ্রাধিকার বালতি মূল্যায়ন
আপনার অ্যাপটি কোন বালতিতে বরাদ্দ করা হয়েছে তা পরীক্ষা করতে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
getAppStandbyBucket()
কল করুন।একটি টার্মিনাল উইন্ডোতে নিম্নলিখিত কমান্ডটি চালান:
adb shell am get-standby-bucket PACKAGE_NAME
যখনই এটি একটি অ্যাপ স্ট্যান্ডবাই বাকেট যার মান STANDBY_BUCKET_ACTIVE
(10) এর চেয়ে বেশি হয় সিস্টেমটি আপনার অ্যাপটিকে থ্রোটল করে।
সর্বোত্তম অনুশীলন
যদি আপনার অ্যাপটি ডোজ এবং অ্যাপ স্ট্যান্ডবাই এর জন্য সর্বোত্তম অনুশীলনগুলি অনুসরণ করে তবে পরবর্তী পাওয়ার ম্যানেজমেন্ট বৈশিষ্ট্যগুলি কঠিন নয়। যাইহোক, কিছু অ্যাপ আচরণ যা আগে ভাল কাজ করেছিল সমস্যা হতে পারে।
- আপনার অ্যাপটিকে একটি নির্দিষ্ট বালতিতে রাখার জন্য সিস্টেমটিকে ম্যানিপুলেট করার চেষ্টা করবেন না। সিস্টেমের অগ্রাধিকার দেওয়ার পদ্ধতি পরিবর্তিত হতে পারে, এবং প্রতিটি ডিভাইস প্রস্তুতকারক তাদের নিজস্ব অ্যালগরিদম দিয়ে তাদের নিজস্ব বাকেটিং অ্যাপ লিখতে বেছে নিতে পারে। পরিবর্তে, নিশ্চিত করুন যে আপনার অ্যাপটি কোন বালতিতে থাকুক না কেন যথাযথভাবে আচরণ করছে।
- যদি কোনো অ্যাপে লঞ্চার অ্যাক্টিভিটি না থাকে, তাহলে এটি কখনোই সক্রিয় বালতিতে উন্নীত নাও হতে পারে। এই ধরনের কার্যকলাপের জন্য আপনার অ্যাপকে পুনরায় ডিজাইন করার কথা বিবেচনা করুন।
ব্যবহারকারীরা অ্যাপ বিজ্ঞপ্তির সাথে ইন্টারঅ্যাক্ট করতে না পারলে, ব্যবহারকারীরা সক্রিয় বালতিতে অ্যাপের প্রচার ট্রিগার করতে অক্ষম। এই ক্ষেত্রে, ব্যবহারকারীদের ইন্টারঅ্যাক্ট করতে দেয় এমন কিছু বিজ্ঞপ্তি পুনরায় ডিজাইন করার কথা বিবেচনা করুন৷ কিছু নির্দেশিকাগুলির জন্য, মেটেরিয়াল ডিজাইন নোটিফিকেশন ডিজাইন প্যাটার্ন দেখুন।
যদি অ্যাপটি একটি উচ্চ-অগ্রাধিকার ফায়ারবেস ক্লাউড মেসেজিং (FCM) বার্তা পাওয়ার পরে একটি বিজ্ঞপ্তি না দেখায়, তাহলে ব্যবহারকারী অ্যাপটির সাথে ইন্টারঅ্যাক্ট করতে পারবেন না এবং এইভাবে এটিকে সক্রিয় বালতিতে প্রচার করতে পারবেন। প্রকৃতপক্ষে, উচ্চ অগ্রাধিকার এফসিএম বার্তাগুলির একমাত্র উদ্দেশ্য হল ব্যবহারকারীর কাছে একটি বিজ্ঞপ্তি পাঠানো, তাই এই পরিস্থিতিটি ঘটতে হবে না। 12L (API লেভেল 32) এবং তার নিচে, আপনি যদি অনুপযুক্তভাবে একটি FCM বার্তাকে উচ্চ অগ্রাধিকার হিসাবে চিহ্নিত করেন যখন এটি ব্যবহারকারীর ইন্টারঅ্যাকশন ট্রিগার না করে, তাহলে এটি ভবিষ্যতের বার্তাগুলিকে বঞ্চিত করতে পারে।
অ্যাপ্লিকেশানগুলি একাধিক প্যাকেজ জুড়ে বিভক্ত হলে, সেই প্যাকেজগুলি বিভিন্ন বালতিতে থাকতে পারে এবং বিভিন্ন অ্যাক্সেস স্তর থাকতে পারে৷ অ্যাপটি সঠিকভাবে আচরণ করছে কিনা তা নিশ্চিত করতে বিভিন্ন বালতিতে নির্ধারিত প্যাকেজগুলির সাথে এই অ্যাপগুলি পরীক্ষা করুন।
Android 9 (API লেভেল 28) এবং পরবর্তীতে অ্যাপ স্ট্যান্ডবাই বাকেট সমর্থন করে। অ্যাপ স্ট্যান্ডবাই বাকেটগুলি সম্প্রতি এবং কত ঘন ঘন অ্যাপগুলি ব্যবহার করা হয়েছে তার উপর ভিত্তি করে সংস্থানগুলির জন্য অ্যাপগুলির অনুরোধগুলিকে অগ্রাধিকার দিতে সহায়তা করে৷ অ্যাপ ব্যবহারের ধরণগুলির উপর ভিত্তি করে, প্রতিটি অ্যাপ পাঁচটি অগ্রাধিকার বালতির একটিতে স্থাপন করা হয়। অ্যাপটি কোন বালতিতে রয়েছে তার উপর ভিত্তি করে সিস্টেমটি প্রতিটি অ্যাপে উপলব্ধ ডিভাইস সংস্থানগুলিকে সীমাবদ্ধ করে।
অগ্রাধিকার বালতি
সিস্টেমটি গতিশীলভাবে প্রতিটি অ্যাপকে একটি অগ্রাধিকার বালতিতে বরাদ্দ করে, প্রয়োজন অনুসারে অ্যাপগুলিকে পুনরায় বরাদ্দ করে। সিস্টেমটি একটি প্রিলোড করা অ্যাপের উপর নির্ভর করতে পারে যা মেশিন লার্নিং ব্যবহার করে প্রতিটি অ্যাপ ব্যবহার করার সম্ভাবনা কতটা তা নির্ধারণ করে এবং অ্যাপগুলিকে উপযুক্ত বালতিতে বরাদ্দ করে।
যদি সিস্টেম অ্যাপটি একটি ডিভাইসে উপস্থিত না থাকে, তবে সিস্টেমটি অ্যাপগুলিকে কত সম্প্রতি ব্যবহার করা হয়েছে তার উপর ভিত্তি করে সাজানোর জন্য ডিফল্ট করে৷ যে অ্যাপগুলি বেশি সক্রিয় সেগুলিকে বালতিতে বরাদ্দ করা হয় যা তাদের উচ্চ অগ্রাধিকার দেয়, অ্যাপটিতে আরও সিস্টেম সংস্থান উপলব্ধ করে। বিশেষ করে, বালতি নির্ধারণ করে যে অ্যাপের কাজগুলি কত ঘনঘন চলবে এবং অ্যাপটি কত ঘন ঘন অ্যালার্ম ট্রিগার করতে পারে। এই বিধিনিষেধগুলি শুধুমাত্র তখনই প্রযোজ্য যখন ডিভাইসটি ব্যাটারি পাওয়ারে থাকে৷ ডিভাইসটি চার্জ করার সময়, সিস্টেম এই বিধিনিষেধ আরোপ করে না।
অগ্রাধিকার বালতি নিম্নরূপ:
- সক্রিয় : অ্যাপটি ব্যবহার করা হচ্ছে বা খুব সম্প্রতি ব্যবহার করা হয়েছে।
- ওয়ার্কিং সেট : অ্যাপ নিয়মিত ব্যবহার করা হয়।
- ঘন ঘন : অ্যাপটি প্রায়শই ব্যবহৃত হয় তবে প্রতিদিন নয়।
- বিরল : অ্যাপটি প্রায়শই ব্যবহার করা হয় না।
- সীমাবদ্ধ : অ্যাপ প্রচুর সিস্টেম রিসোর্স ব্যবহার করে বা অবাঞ্ছিত আচরণ প্রদর্শন করতে পারে।
এই অগ্রাধিকার বালতিগুলি ছাড়াও, এমন অ্যাপগুলির জন্য একটি বিশেষ কখনও বাকেট রয়েছে যা ইনস্টল করা আছে কিন্তু কখনও চালানো হয়নি৷ সিস্টেম এই অ্যাপগুলির উপর কঠোর বিধিনিষেধ আরোপ করে৷
নিম্নলিখিত বর্ণনা অ-ভবিষ্যদ্বাণীমূলক ক্ষেত্রে জন্য হয়. বিপরীতে, যখন ভবিষ্যদ্বাণীটি আচরণের পূর্বাভাস দিতে মেশিন লার্নিং ব্যবহার করে, তখন সাম্প্রতিক ব্যবহারের উপর ভিত্তি করে ব্যবহারকারীর পরবর্তী ক্রিয়াকলাপের প্রত্যাশায় বাকেটগুলি বেছে নেওয়া হয়। উদাহরণস্বরূপ, একটি সম্প্রতি ব্যবহৃত অ্যাপ বিরল বালতিতে শেষ হতে পারে কারণ মেশিন লার্নিং ভবিষ্যদ্বাণী করে যে অ্যাপটি কয়েক ঘন্টা ব্যবহার করা হবে না।
সক্রিয়
একটি অ্যাপ্লিকেশান সক্রিয় বালতিতে থাকে যখন এটি ব্যবহার করা হয়, খুব সম্প্রতি ব্যবহৃত হয়, বা যখন এটি নিম্নলিখিতগুলির মধ্যে যেকোনটি করে:
- একটি কার্যকলাপ চালু করে।
- একটি দীর্ঘ চলমান ফোরগ্রাউন্ড পরিষেবা চালায়।
- একটি বিজ্ঞপ্তি থেকে ব্যবহারকারী দ্বারা ট্যাপ করা হয়.
যদি একটি অ্যাপ সক্রিয় বালতিতে থাকে, সিস্টেমটি অ্যাপের কাজ বা অ্যালার্মগুলিতে ন্যূনতম সীমাবদ্ধতা রাখে:
- অ্যান্ড্রয়েড 16 (এপিআই স্তর 36) দিয়ে শুরু করে, ব্যাকগ্রাউন্ড জবসের একটি উদার রানটাইম কোটা থাকে যদি তারা সক্রিয় বালতিতে কোনও অ্যাপ্লিকেশন দ্বারা শুরু করে। এর মধ্যে সরাসরি
JobScheduler
সহ নির্ধারিত চাকরি, পাশাপাশি ওয়ার্কম্যানেজার বাDownloadManager
মতো অন্যান্য লাইব্রেরি দ্বারা নির্মিত চাকরি অন্তর্ভুক্ত রয়েছে।
ব্যবহারকারীর মিথস্ক্রিয়া সক্রিয় হিসাবে অ্যাপ্লিকেশনগুলিকে বরাদ্দ করে
অ্যান্ড্রয়েড 9 (এপিআই স্তর 28) এবং উচ্চতর, যখন ব্যবহারকারী আপনার অ্যাপ্লিকেশনটির সাথে নির্দিষ্ট উপায়ে ইন্টারঅ্যাক্ট করে, সিস্টেমটি অস্থায়ীভাবে আপনার অ্যাপ্লিকেশনটিকে সক্রিয় বালতিতে রাখে। ব্যবহারকারী আপনার অ্যাপ্লিকেশনটির সাথে ইন্টারঅ্যাক্ট করা বন্ধ করার পরে, সিস্টেমটি ব্যবহারের ইতিহাসের ভিত্তিতে এটি একটি বালতিতে রাখে।
নিম্নলিখিত ইন্টারঅ্যাকশনগুলির উদাহরণগুলি যা এই সিস্টেমের আচরণকে ট্রিগার করে:
ব্যবহারকারী আপনার অ্যাপ্লিকেশনটি প্রেরণ করে এমন একটি বিজ্ঞপ্তিতে ট্যাপ করে।
ব্যবহারকারী একটি মিডিয়া বোতামটি আলতো চাপিয়ে আপনার অ্যাপ্লিকেশনটিতে একটি অগ্রভাগ পরিষেবার সাথে যোগাযোগ করে।
অ্যান্ড্রয়েড অটোমোটিভ ওএসের সাথে ইন্টারঅ্যাক্ট করার সময় ব্যবহারকারী আপনার অ্যাপ্লিকেশনটির সাথে সংযোগ স্থাপন করে, যেখানে আপনার অ্যাপ্লিকেশনটি একটি অগ্রভাগ পরিষেবা বা
CONNECTION_TYPE_PROJECTION
ব্যবহার করে।
ওয়ার্কিং সেট
একটি অ্যাপ্লিকেশন যদি প্রায়শই চালিত হয় তবে এটি কার্যকর নয় তবে এটি সক্রিয় নয়। উদাহরণস্বরূপ, ব্যবহারকারী প্রায় প্রতিদিন চালু করে এমন একটি সামাজিক মিডিয়া অ্যাপ্লিকেশন সম্ভবত কার্যকরী সেটে থাকবে। অ্যাপ্লিকেশনগুলি যদি অপ্রত্যক্ষভাবে ব্যবহার করা হয় তবে ওয়ার্কিং সেট বালতিতেও প্রচার করা হয়।
যদি কোনও অ্যাপ্লিকেশন কার্যকরী সেটে থাকে তবে সিস্টেমটি চাকরি চালানোর এবং ট্রিগার অ্যালার্মগুলি চালানোর ক্ষমতার উপর হালকা বিধিনিষেধ আরোপ করে। বিশদের জন্য, পাওয়ার ম্যানেজমেন্ট রিসোর্স সীমা দেখুন।
ঘন ঘন
একটি অ্যাপ্লিকেশন ঘন ঘন বালতিতে থাকে যদি এটি নিয়মিত ব্যবহৃত হয় তবে প্রতিদিন প্রয়োজন হয় না। উদাহরণস্বরূপ, ব্যবহারকারী জিমে চালানো একটি ওয়ার্কআউট-ট্র্যাকিং অ্যাপ্লিকেশন ঘন ঘন বালতিতে থাকতে পারে।
যদি কোনও অ্যাপ্লিকেশন ঘন ঘন বালতিতে থাকে তবে সিস্টেমটি চাকরি চালানোর এবং ট্রিগার অ্যালার্মগুলি চালানোর ক্ষমতার উপর আরও শক্তিশালী বিধিনিষেধ আরোপ করে। বিশদের জন্য, পাওয়ার ম্যানেজমেন্ট রিসোর্স সীমা দেখুন।
বিরল
একটি অ্যাপ্লিকেশন বিরল বালতিতে থাকে যদি এটি প্রায়শই ব্যবহৃত হয় না। উদাহরণস্বরূপ, একটি হোটেল অ্যাপ্লিকেশন যা ব্যবহারকারী কেবল সেই হোটেলে থাকার সময় চালায় বিরল বালতিতে থাকতে পারে।
যদি কোনও অ্যাপ্লিকেশন বিরল বালতিতে থাকে তবে সিস্টেমটি চাকরি চালানোর এবং ট্রিগার অ্যালার্মগুলি চালানোর ক্ষমতার উপর কঠোর বিধিনিষেধ আরোপ করে। সিস্টেমটি ইন্টারনেটে সংযোগের অ্যাপ্লিকেশনটির ক্ষমতাও সীমাবদ্ধ করে। বিশদের জন্য, পাওয়ার ম্যানেজমেন্ট রিসোর্স সীমা দেখুন।
সীমাবদ্ধ
অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এ যুক্ত এই বালতিটিতে সর্বনিম্ন অগ্রাধিকার এবং সমস্ত বালতিগুলির সর্বোচ্চ বিধিনিষেধ রয়েছে। সিস্টেমটি আপনার অ্যাপ্লিকেশনটির আচরণকে বিবেচনা করে, যেমন ব্যবহারকারী কতবার এটির সাথে ইন্টারঅ্যাক্ট করে, আপনার অ্যাপটিকে সীমাবদ্ধ বালতিতে রাখবেন কিনা তা সিদ্ধান্ত নিতে।
অ্যান্ড্রয়েড 13 (এপিআই স্তর 33) এবং আরও উচ্চতর, যদি না আপনার অ্যাপ্লিকেশনটি ছাড়ের জন্য যোগ্যতা অর্জন না করে, সিস্টেমটি আপনার অ্যাপ্লিকেশনটিকে নিম্নলিখিত পরিস্থিতিতে সীমাবদ্ধ বালতিতে রাখে:
ব্যবহারকারী নির্দিষ্ট সংখ্যক দিনের জন্য আপনার অ্যাপ্লিকেশনটির সাথে ইন্টারঅ্যাক্ট করে না। অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) এবং 12 এল (এপিআই স্তর 32) এ, দিনগুলির সংখ্যা 45। অ্যান্ড্রয়েড 13 দিনগুলির সংখ্যা হ্রাস করে 8 থেকে।
আপনার অ্যাপ্লিকেশনটি 24 ঘন্টা সময়কালে অতিরিক্ত সংখ্যক সম্প্রচার বা বাইন্ডিংয়ের আহ্বান জানায়।
যদি সিস্টেমটি আপনার অ্যাপ্লিকেশনটিকে সীমাবদ্ধ বালতিতে রাখে তবে নিম্নলিখিত বিধিনিষেধগুলি প্রয়োগ করুন:
- আপনি 10 মিনিটের ব্যাচ সেশনে প্রতিদিন একবার কাজ চালাতে পারেন। এই অধিবেশন চলাকালীন, সিস্টেমটি আপনার অ্যাপের কাজগুলিকে অন্যান্য অ্যাপ্লিকেশনগুলির কাজের সাথে গ্রুপ করে।
- সীমাবদ্ধ কাজগুলি নিজেরাই চালিত হয় না। একই সময়ে কমপক্ষে অন্য একটি কাজ চলমান বা মুলতুবি থাকতে হবে, যার মধ্যে অন্য কোনও কাজ অন্তর্ভুক্ত থাকতে পারে।
- আপনার অ্যাপ্লিকেশনটি যখন আপনার অ্যাপটিকে কম সীমাবদ্ধ বালতিতে রাখে তখন তার তুলনায় আপনার অ্যাপটি কম দ্রুত কাজ চালাতে পারে।
- আপনার অ্যাপ্লিকেশনটি প্রতিদিন একটি অ্যালার্ম প্রার্থনা করতে পারে। এই অ্যালার্ম হয় একটি সঠিক অ্যালার্ম বা একটি অনিচ্ছাকৃত অ্যালার্ম হতে পারে।
সীমাবদ্ধ বালতি থেকে ছাড়
নিম্নলিখিত ধরণের অ্যাপ্লিকেশনগুলি সীমাবদ্ধ বালতিতে প্রবেশ করা থেকে অব্যাহতিপ্রাপ্ত এবং অ্যান্ড্রয়েড 12 এবং উচ্চতর ক্ষেত্রেও নিষ্ক্রিয়তা ট্রিগার বাইপাস করে:
- সঙ্গী ডিভাইস অ্যাপ্লিকেশন
- ডেমো মোডে একটি ডিভাইসে চলমান অ্যাপস
- ডিভাইস মালিক অ্যাপ্লিকেশন
- প্রোফাইল মালিক অ্যাপ্লিকেশন
- অবিচ্ছিন্ন অ্যাপ্লিকেশন
- ভিপিএন অ্যাপস
- যে অ্যাপ্লিকেশনগুলি
ROLE_DIALER
ভূমিকা আছে - অ্যাপ্লিকেশনগুলি যা ব্যবহারকারী সিস্টেম সেটিংসে "সীমাহীন" কার্যকারিতা সরবরাহ করার জন্য স্পষ্টভাবে মনোনীত করেছেন
- সক্রিয় উইজেট সহ অ্যাপ্লিকেশন
- অ্যাপ্লিকেশনগুলি যা নিম্নলিখিত অনুমতিগুলির মধ্যে কমপক্ষে একটি মঞ্জুর করা হয়:
অগ্রাধিকার বালতি মূল্যায়ন
আপনার অ্যাপটিতে কোন বালতি বরাদ্দ করা হয়েছে তা যাচাই করতে নিম্নলিখিতগুলির মধ্যে একটি করুন:
getAppStandbyBucket()
কল করুন।একটি টার্মিনাল উইন্ডোতে নিম্নলিখিত কমান্ডটি চালান:
adb shell am get-standby-bucket PACKAGE_NAME
সিস্টেমটি আপনার অ্যাপ্লিকেশনটিকে যখনই কোনও অ্যাপ স্ট্যান্ডবাই বালতিতে রাখে যার মান STANDBY_BUCKET_ACTIVE
(10) এর চেয়ে বেশি।
সর্বোত্তম অনুশীলন
যদি আপনার অ্যাপ্লিকেশনটি ডোজ এবং অ্যাপ স্ট্যান্ডবাইয়ের জন্য সেরা অনুশীলনগুলি অনুসরণ করে থাকে তবে পরবর্তী শক্তি পরিচালনার বৈশিষ্ট্যগুলি কঠিন নয়। যাইহোক, কিছু অ্যাপ্লিকেশন আচরণ যা আগে ভাল কাজ করেছে তারা সমস্যার কারণ হতে পারে।
- আপনার অ্যাপ্লিকেশনটিকে একটি নির্দিষ্ট বালতিতে রাখার জন্য সিস্টেমটি পরিচালনা করার চেষ্টা করবেন না। অগ্রাধিকার স্থাপনের সিস্টেমের পদ্ধতিটি পরিবর্তন হতে পারে এবং প্রতিটি ডিভাইস প্রস্তুতকারক নিজস্ব অ্যালগরিদম দিয়ে তাদের নিজস্ব বালতি অ্যাপ্লিকেশন লিখতে পছন্দ করতে পারেন। পরিবর্তে, নিশ্চিত করুন যে আপনার অ্যাপ্লিকেশনটি কোন বালতিতে রয়েছে তা বিবেচনা করেই যথাযথ আচরণ করে।
- যদি কোনও অ্যাপ্লিকেশনটিতে কোনও লঞ্চার ক্রিয়াকলাপ না থাকে তবে এটি কখনই সক্রিয় বালতিতে প্রচার করা যেতে পারে না। এই জাতীয় ক্রিয়াকলাপের জন্য আপনার অ্যাপ্লিকেশনটিকে নতুন করে ডিজাইন করার বিষয়টি বিবেচনা করুন।
যদি ব্যবহারকারীরা অ্যাপ্লিকেশন বিজ্ঞপ্তিগুলির সাথে ইন্টারঅ্যাক্ট করতে না পারে তবে ব্যবহারকারীরা সক্রিয় বালতিতে অ্যাপটির প্রচারকে ট্রিগার করতে অক্ষম। এই ক্ষেত্রে, এমন কিছু বিজ্ঞপ্তিগুলি নতুন করে ডিজাইন করার বিষয়টি বিবেচনা করুন যা ব্যবহারকারীদের ইন্টারঅ্যাক্ট করতে দেয়। কিছু নির্দেশিকাগুলির জন্য, উপাদানগুলির নকশা বিজ্ঞপ্তিগুলি ডিজাইনের নিদর্শনগুলি দেখুন।
যদি অ্যাপটি উচ্চ-অগ্রাধিকার ফায়ারবেস ক্লাউড মেসেজিং (এফসিএম) বার্তা পাওয়ার পরে কোনও বিজ্ঞপ্তি না দেখায় তবে ব্যবহারকারী অ্যাপটির সাথে ইন্টারঅ্যাক্ট করতে পারে না এবং এভাবে এটি সক্রিয় বালতিতে প্রচার করতে পারে। প্রকৃতপক্ষে, উচ্চ অগ্রাধিকার এফসিএম বার্তাগুলির জন্য একমাত্র উদ্দেশ্যযুক্ত ব্যবহার হ'ল ব্যবহারকারীর কাছে একটি বিজ্ঞপ্তি ঠেকানো, সুতরাং এই পরিস্থিতিটি অবশ্যই ঘটবে না। 12 এল (এপিআই স্তর 32) এবং কম, আপনি যদি কোনও এফসিএম বার্তাটিকে উচ্চ অগ্রাধিকার হিসাবে চিহ্নিত করেন যখন এটি ব্যবহারকারীর মিথস্ক্রিয়াকে ট্রিগার না করে তবে এটি ভবিষ্যতের বার্তাগুলি বিক্ষিপ্ত হতে পারে।
যদি অ্যাপ্লিকেশনগুলি একাধিক প্যাকেজগুলিতে বিভক্ত হয় তবে সেই প্যাকেজগুলি বিভিন্ন বালতিতে থাকতে পারে এবং বিভিন্ন অ্যাক্সেসের স্তর থাকতে পারে। অ্যাপ্লিকেশনটি সঠিকভাবে আচরণ করে তা নিশ্চিত করার জন্য বিভিন্ন বালতিগুলিতে নির্ধারিত প্যাকেজগুলির সাথে এই অ্যাপ্লিকেশনগুলি পরীক্ষা করুন।