সিস্টেমটি ডিভাইসের অবস্থা, অ্যাপের অবস্থা এবং অ্যাপের স্ট্যান্ডবাই বাকেটের উপর ভিত্তি করে সংস্থানগুলির জন্য অ্যাপের অনুরোধকে অগ্রাধিকার দেয়।
অ্যান্ড্রয়েড সিস্টেম দুটি ভিন্ন উপায়ে সম্পদ সীমা প্রয়োগ করতে পারে। রিসোর্স ইউটিলাইজেশন অপ্টিমাইজ করার একটি উপায় হল কাজ সম্পাদনকে পিছিয়ে দেওয়া যতক্ষণ না ডিভাইসটি কম শক্তির ডিভাইসের অবস্থা যেমন ডোজ মোড ছেড়ে না দেয়। উদাহরণস্বরূপ, নিয়মিত কাজ এবং অযৌক্তিক অ্যালার্মগুলি পিছিয়ে দেওয়া হয় তাই ডিভাইসটি ডোজ মোড ছেড়ে যাওয়ার পরে সেগুলি কার্যকর করে৷
আরেকটি উপায় হল অ্যাপটির বর্তমান স্ট্যান্ডবাই বাকেটের উপর ভিত্তি করে অ্যাপটি ডিভাইসটিকে কতটা জাগিয়ে তুলতে পারে এবং কাজ করতে পারে তা হ্রাস করা। সিস্টেমটি ফ্রিকোয়েন্সি (কত ঘন ঘন অ্যাপটি ডিভাইসটিকে জাগিয়ে তোলে) এবং মোট সময়কাল (ডিভাইসটি জেগে থাকার পরিমাণ) উভয়ই কমাতে পারে। উদাহরণস্বরূপ, যদি অ্যাপটি বিরল স্ট্যান্ডবাই বাকেটের মধ্যে থাকে, তাহলে অ্যাপটি 24 ঘন্টার মধ্যে মোট 10 মিনিটের জন্য নির্ধারিত কাজ চালাতে পারে।
মনে রাখবেন যে যখন অ্যাপটি দৃশ্যমান হয় না এবং কর্মীরা এইভাবে কাজের সংস্থান সীমা দ্বারা প্রভাবিত হয় তখন কাজের সময় নির্ধারণ করতে WorkManager JobScheduler ব্যবহার করে।
আপনি আরও পড়ার মাধ্যমে সীমাবদ্ধতাগুলি বুঝতে পারেন:
- ডিভাইসের অবস্থার উপর ভিত্তি করে সম্পদের সীমা
- অ্যাপের অবস্থার উপর ভিত্তি করে সম্পদের সীমা
- অ্যাপ স্ট্যান্ডবাই বাকেটের উপর ভিত্তি করে সংস্থান সীমা
মনে রাখবেন যে ডিভাইসের অবস্থা এবং অ্যাপের অবস্থা অ্যাপ স্ট্যান্ডবাই বালতি সীমাকে ছাড়িয়ে যেতে পারে। উদাহরণস্বরূপ, যদি ডিভাইসটি চার্জ করা হয়, সিস্টেমটি বিরল স্ট্যান্ডবাই বালতিতে থাকা অ্যাপগুলিকে 24-ঘন্টা সময়ের মধ্যে 10 মিনিটের বেশি সময় ধরে কাজ চালানোর অনুমতি দেয়।
আচরণের পরিবর্তন হয়েছে যা সম্পদের সীমাকেও প্রভাবিত করেছে। আরও জানতে Android আচরণের পরিবর্তনগুলি দেখুন যা সম্পদের সীমাকে প্রভাবিত করে ৷
ডিভাইসের অবস্থার উপর ভিত্তি করে সম্পদের সীমা
সিস্টেমটি ডিভাইসের অবস্থার উপর ভিত্তি করে সংস্থান সীমা ছাড় দিতে বা প্রয়োগ করতে পারে। উদাহরণস্বরূপ, চার্জিং অবস্থায় থাকা একটি ডিভাইসকে তার অ্যাপ স্ট্যান্ডবাই বালতি নির্বিশেষে সীমাবদ্ধ সম্পদ অ্যাক্সেস দেওয়া হয়।
ডিভাইসের অবস্থা | চাকরি | অ্যালার্ম | নেটওয়ার্ক অ্যাক্সেস | ফায়ারবেস ক্লাউড মেসেজিং |
চার্জিং | সীমাবদ্ধ স্ট্যান্ডবাই বালতি ছাড়া কোন মৃত্যুদন্ডের সীমা নেই | সমস্ত স্ট্যান্ডবাই বালতি এবং প্রসেস স্টেটের জন্য কোনও এক্সিকিউশন সীমা নেই, ব্যবহারকারী ম্যানুয়ালি অ্যাপের ব্যাটারি সীমাবদ্ধ করলে | কোন সীমাবদ্ধতা নেই | কোন সীমাবদ্ধতা নেই |
স্ক্রীন অন | স্ট্যান্ডবাই বাকেটের উপর ভিত্তি করে মৃত্যুদন্ডের সীমা প্রয়োগ করা হয় | অ্যাপ্লিকেশান প্রক্রিয়া এবং স্ট্যান্ডবাই বাকেটের উপর ভিত্তি করে কার্যকর করার সীমা প্রয়োগ করা হয় | অ্যাক্সেস স্ট্যান্ডবাই বালতি বা অ্যাপ প্রক্রিয়া অবস্থার উপর নির্ভর করে | কোন সীমাবদ্ধতা নেই |
স্ক্রীন অফ এবং ডোজ সক্রিয় | এক্সিকিউশন লিমিট স্ট্যান্ডবাই বাকেটের উপর ভিত্তি করে বলবৎ করা হয়, এবং রক্ষণাবেক্ষণ উইন্ডোটি ডোজ করার জন্য কার্যকর করা স্থগিত করা হয় | স্ট্যান্ডবাই বাকেটের উপর ভিত্তি করে মৃত্যুদন্ডের সীমা প্রয়োগ করা হয়। নিয়মিত অ্যালার্ম: রক্ষণাবেক্ষণ উইন্ডোটি ডোজ করতে বিলম্বিত নিষ্ক্রিয় থাকাকালীন অ্যালার্ম: প্রতি ঘন্টায় 7 পর্যন্ত সীমিত | ঘুমের সময় সীমাবদ্ধ | উচ্চ অগ্রাধিকার: কোন মৃত্যুদন্ড সীমা সাধারণ অগ্রাধিকার: ডোজ রক্ষণাবেক্ষণ উইন্ডোতে বিলম্বিত |
অ্যাপের অবস্থার উপর ভিত্তি করে সম্পদের সীমা
সিস্টেমটি অ্যাপ স্ট্যান্ডবাই বাকেটের সংস্থান সীমাগুলি প্রয়োগ করে কিনা তা অ্যাপ প্রক্রিয়ার গুরুত্বের উপর নির্ভর করে। বিভিন্ন স্তরের প্রক্রিয়ার গুরুত্ব বোঝার জন্য ActivityManager.RunningAppProcessInfo.importance
দেখুন।
ডিভাইস ব্যবহারকারী অ্যাপ পাওয়ার ম্যানেজমেন্ট অপ্টিমাইজেশানগুলিকে ম্যানুয়ালি ওভাররাইড করতেও বেছে নিতে পারেন, যা অ্যাপ স্ট্যান্ডবাই বাকেট সীমাকে ছাড়িয়ে যায়।
অ্যাপের অবস্থা | চাকরি | অ্যালার্ম | নেটওয়ার্ক |
অ্যাপ প্রক্রিয়া দৃশ্যমান বা ফোরগ্রাউন্ড অবস্থায় আছে | মৃত্যুদন্ডের কোন সীমা নেই | কোন ফ্রিকোয়েন্সি সীমা নেই | কোন সীমাবদ্ধতা নেই |
অ্যাপ প্রক্রিয়া একটি ফোরগ্রাউন্ড পরিষেবা চালাচ্ছে | স্ট্যান্ডবাই বাকেটের উপর ভিত্তি করে কার্যকর করার সীমা কার্যকর করা হয় *** | ফ্রিকোয়েন্সি সীমা স্ট্যান্ডবাই বালতি উপর ভিত্তি করে বলবৎ করা হয় | কোন সীমাবদ্ধতা নেই |
ব্যবহারকারী ম্যানুয়ালি অ্যাপের ব্যাটারি সীমাবদ্ধ করে | মৃত্যুদন্ড সীমাবদ্ধ | মৃত্যুদন্ড সীমাবদ্ধ | অ্যাক্সেস স্ট্যান্ডবাই বালতি আচরণের উপর নির্ভর করে |
ব্যবহারকারী ম্যানুয়ালি অ্যাপের ব্যাটারি সীমাবদ্ধ করে না | সম্পাদন সীমা উদার *** | মৃত্যুদন্ডের কোন সীমা নেই | ডিভাইস ডেটা সেভার মোডে না থাকলে অনিয়ন্ত্রিত |
*** Android 16-এ চাকরির জন্য এক্সিকিউশন কোটার আচরণ পরিবর্তিত হয়েছে । অ্যান্ড্রয়েড 16-এর আগে যখন অ্যাপটি একটি ফোরগ্রাউন্ড পরিষেবা চালাচ্ছিল বা ব্যবহারকারী অ্যাপের ব্যাটারিকে সীমাবদ্ধ রাখত তখন কোনও কার্যকরী সীমা ছিল না।
অ্যাপ স্ট্যান্ডবাই বাকেটের উপর ভিত্তি করে সংস্থান সীমা
দ্রষ্টব্য : এই টেবিলের মানগুলি কার্যকর করার সময়কালের গ্যারান্টি নয়, কারণ অন্যান্য ডিভাইসের অবস্থা বা বালতি পরিবর্তনগুলি সম্পদের সীমাবদ্ধতাকে প্রভাবিত করতে পারে। ভবিষ্যতের অ্যান্ড্রয়েড রিলিজেও মানগুলি পরিবর্তন হতে পারে৷
অ্যাপ স্ট্যান্ডবাই বাকেটের উপর ভিত্তি করে নিয়মিত কাজ, দ্রুত কাজ, অ্যালার্ম এবং নেটওয়ার্ক অ্যাক্সেস সীমিত করা যেতে পারে। একটি নির্দেশিকা হিসাবে এই আনুমানিক শক্তি ব্যবস্থাপনা সীমাবদ্ধতাগুলি ব্যবহার করে অ্যাপ স্ট্যান্ডবাই বাকেটগুলি কীভাবে আপনার অ্যাপকে প্রভাবিত করে তা বুঝুন। সর্বোত্তম কর্মক্ষমতার জন্য, অ্যাপ স্ট্যান্ডবাই সেরা অনুশীলনগুলি মেনে চলুন এবং টাস্ক শিডিউলিং API-এর জন্য ব্যাটারি ব্যবহার অপ্টিমাইজ করুন ৷
মনে রাখবেন যে Android 13 থেকে শুরু করে, অ্যাপটির স্ট্যান্ডবাই বাকেট আর নির্ধারণ করে না যে একটি অ্যাপ কতগুলি উচ্চ অগ্রাধিকার FCM ব্যবহার করতে পারে।
অ্যাপ স্ট্যান্ডবাই বালতি | নিয়মিত চাকরি* | দ্রুত কাজ** | অ্যালার্ম | নেটওয়ার্ক |
সক্রিয়: | একটি ঘূর্ণায়মান 60 মিনিটের মধ্যে 20 মিনিট পর্যন্ত *** | একটি ঘূর্ণায়মান 24 ঘন্টা সময়ের মধ্যে 30 মিনিট পর্যন্ত *** | মৃত্যুদন্ডের কোন সীমা নেই | কোন সীমাবদ্ধতা নেই |
কাজের সেট: | একটি ঘূর্ণায়মান 4 ঘন্টা সময়ের মধ্যে 10 মিনিট পর্যন্ত | একটি ঘূর্ণায়মান 24 ঘন্টা সময়ের মধ্যে 15 মিনিট পর্যন্ত | 10 প্রতি ঘন্টা সীমিত | কোন সীমাবদ্ধতা নেই |
ঘন ঘন | একটি ঘূর্ণায়মান 12 ঘন্টা সময়ের মধ্যে 10 মিনিট পর্যন্ত | একটি ঘূর্ণায়মান 24 ঘন্টা সময়ের মধ্যে 10 মিনিট পর্যন্ত | 2 প্রতি ঘন্টা সীমিত | কোন সীমাবদ্ধতা নেই |
বিরল: | একটি ঘূর্ণায়মান 24 ঘন্টা সময়ের মধ্যে 10 মিনিট পর্যন্ত | একটি ঘূর্ণায়মান 24 ঘন্টা সময়ের মধ্যে 10 মিনিট পর্যন্ত | 1 প্রতি ঘন্টা সীমিত | অক্ষম |
সীমাবদ্ধ: | দিনে একবার 10 মিনিট পর্যন্ত | একটি ঘূর্ণায়মান 24 ঘন্টা উইন্ডোতে 5 মিনিট পর্যন্ত | প্রতিদিন একটি অ্যালার্ম, হয় একটি সঠিক অ্যালার্ম বা একটি সঠিক অ্যালার্ম | অক্ষম |
* নিয়মিত কাজগুলি এমন কাজের বর্ণনা করে যেগুলি JobScheduler-এ setUserInitiated(true)
বা setExpedited(true)
ফ্ল্যাগ ব্যবহার করছে না বা WorkManager-এ দ্রুত করা কর্মী ।
** ত্বরান্বিত চাকরির নিয়মিত কাজের তুলনায় একটি পৃথক সম্পাদনের সীমা থাকে, ত্বরান্বিত সীমা শেষ হয়ে গেলে নিয়মিত কাজ সম্পাদনের সীমা ব্যবহার করে চালিয়ে যাওয়ার জন্য সেগুলিকে WorkManager-এ কনফিগার করা যেতে পারে।
*** Android 16-এ চাকরির জন্য এক্সিকিউশন কোটার আচরণ পরিবর্তিত হয়েছে । অ্যানড্রয়েড 16-এর আগে অ্যাপ্লিকেশানটি সক্রিয় স্ট্যান্ডবাই বালতিতে থাকলে কার্যকর করার কোনও সীমা ছিল না।
Android আচরণের পরিবর্তন যা সম্পদের সীমাকে প্রভাবিত করে
নিম্নলিখিত Android আপডেটগুলি অ্যাপ সংস্থান সীমাতে পরিবর্তন করেছে৷
অ্যান্ড্রয়েড 16
JobScheduler কোটা অপ্টিমাইজেশান আচরণ পরিবর্তন
অ্যান্ড্রয়েড নিম্নলিখিত বিষয়গুলির উপর ভিত্তি করে নিয়মিত এবং দ্রুত কাজ সম্পাদনের রানটাইম কোটা সমন্বয় করেছে:
- অ্যাপটি কোন অ্যাপ স্ট্যান্ডবাই বাকেটের মধ্যে রয়েছে
- অ্যাপটি শীর্ষ অবস্থায় থাকাকালীন কাজটি কার্যকর করা শুরু করলে
- একটি ফোরগ্রাউন্ড পরিষেবা চালানোর সময় যদি কাজটি কার্যকর হয়
অ্যান্ড্রয়েড 13
উচ্চ অগ্রাধিকার ফায়ারবেস ক্লাউড মেসেজ (FCM) কোটা আচরণ পরিবর্তন
- অ্যাপ স্ট্যান্ডবাই বাকেটগুলি আর কতগুলি উচ্চ অগ্রাধিকারের FCM ব্যবহার করতে পারে তা নির্ধারণ করে না৷
- সিস্টেম এখন উচ্চ অগ্রাধিকারের বার্তাগুলিকে ডাউনগ্রেড করে যদি এটি একটি অ্যাপ সনাক্ত করে যা ধারাবাহিকভাবে উচ্চ-অগ্রাধিকার বার্তা পাঠায় যার ফলে কোনও বিজ্ঞপ্তি আসে না
- উচ্চ অগ্রাধিকার বার্তাগুলির বর্তমান নির্দেশিকাগুলির জন্য, সেটে ফায়ারবেস ডকুমেন্টেশন পড়ুন এবং বার্তা অগ্রাধিকার পরিচালনা করুন ৷
অ্যান্ড্রয়েড 9
অ্যাপ স্ট্যান্ডবাই বাকেট বৈশিষ্ট্য চালু করা হয়েছে
অ্যান্ড্রয়েড 9 একটি নতুন ব্যাটারি ব্যবস্থাপনা বৈশিষ্ট্য, অ্যাপ স্ট্যান্ডবাই বাকেট প্রবর্তন করেছে। অ্যাপ স্ট্যান্ডবাই বাকেটগুলি সম্প্রতি এবং কত ঘন ঘন অ্যাপগুলি ব্যবহার করা হয়েছে তার উপর ভিত্তি করে সংস্থানগুলির জন্য অ্যাপ্লিকেশনগুলির অনুরোধগুলিকে অগ্রাধিকার দিতে সিস্টেমকে সহায়তা করে৷ অ্যাপ ব্যবহারের ধরণগুলির উপর ভিত্তি করে, প্রতিটি অ্যাপ পাঁচটি অগ্রাধিকার বালতির একটিতে স্থাপন করা হয়। অ্যাপটি কোন বালতিতে রয়েছে তার উপর ভিত্তি করে সিস্টেমটি প্রতিটি অ্যাপে উপলব্ধ ডিভাইস সংস্থানগুলিকে সীমাবদ্ধ করে।