Doze-এর মাধ্যমে প্ল্যাটফর্ম পাওয়ার ম্যানেজমেন্ট

ডিভাইসের ব্যাটারির আয়ু উন্নত করতে, Android ডিভাইসের ব্যবহার ও কতক্ষণ ডিভাইস চালু আছে তা মনিটর করে ডিভাইসের অবস্থার উপর প্রভাব ফেলতে পারে। ডিভাইস ব্যবহার না করা হলে, অ্যাক্টিভিটি পজ করতে প্ল্যাটফর্মটি স্লিপ মোডে চলে যেতে পারে।

Doze সম্পর্কে

দীর্ঘক্ষণ ডিভাইস ব্যবহার না করলে, Doze অ্যাপ ব্যাকগ্রাউন্ড CPU ও নেটওয়ার্ক অ্যাক্টিভিটি পিছিয়ে দিয়ে ব্যাটারির আয়ু বাড়ায়।

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

Android 7.0 ও তার পরের যেকোনও ভার্সনে, ব্যবহারকারী ডিভাইস স্ক্রিন বন্ধ করে দিলেই Doze ফিচারটি চালু হয়ে যায় এবং প্রতিবারই অপ্টিমাইজেশনের একটি হালকা সেট ট্রিগার করে। এমনকি, ব্যবহারকারী যদি ঘোরাফেরা করতে থাকেন, তাহলেও এটি চালু থাকে। এর ফলে ব্যাটারির আয়ু আরও বেশি হয়।

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

Doze-এর প্রয়োজনীয়তা

Doze-এর জন্য ডিভাইসে Firebase Cloud Messaging (FCM)-এর মতো ক্লাউড মেসেজিং পরিষেবা থাকতে হবে। ক্লাউড মেসেজের মতো এক্সটার্নাল ট্রিগার ইভেন্ট, ডিভাইস ডোজ মোডে থাকাকালীন কাজ করার জন্য অ্যাপকে সাময়িকভাবে জাগাতে পারে।

এছাড়াও, সম্পূর্ণ Doze সুবিধার জন্য ডিভাইসে উল্লেখযোগ্য মোশন ডিটেক্টর (SMD) থাকতে হবে; তবে, Android 7.0 ও এর পরের যেকোনও ভার্সনে লাইটওয়েট Doze মোডের জন্য SMD প্রয়োজন হয় না। কোনও ডিভাইসে Doze চালু করা থাকলে সেটি:

  • SMD আছে, সম্পূর্ণ Doze অপ্টিমাইজেশন হয় (এর মধ্যে হালকা অপ্টিমাইজেশন অন্তর্ভুক্ত)।
  • SMD নেই, শুধুমাত্র লাইটওয়েট Doze অপ্টিমাইজেশন হয়।

Doze লাইফসাইকেল

প্ল্যাটফর্ম শনাক্ত করে যে ডিভাইসটি অলস আছে এবং এক বা একাধিক এক্সিট ক্রাইটেরিয়া অ্যাক্টিভিটি ঘটলে Doze শেষ হয়ে যায়।

প্ল্যাটফর্ম শনাক্ত করে যে কোনও ডিভাইস তখনই অলস আছে যখন:

  • ডিভাইসটি স্থির (SMD ব্যবহার করে)।
  • ডিভাইসের স্ক্রিন কিছু সময়ের জন্য বন্ধ আছে।

ব্যাটারি-চালিত ডিভাইস পাওয়ার চার্জারে প্লাগ-ইন করা থাকলে, Doze মোড চালু হয় না।

Doze চলাকালীন

প্ল্যাটফর্মটি সিস্টেমকে স্লিপ স্টেটে রাখার চেষ্টা করে, পর্যায়ক্রমে রক্ষণাবেক্ষণ উইন্ডো চলাকালীন স্বাভাবিক ক্রিয়াকলাপ পুনরায় শুরু করে এবং তারপরে ডিভাইসটিকে দীর্ঘ সময়ের জন্য স্লিপ স্টেটে ফিরিয়ে দেয়। ঘুমের সময়, নিম্নলিখিত বিধিনিষেধ চালু থাকে:

  • অ্যাপকে নেটওয়ার্ক অ্যাক্সেস করার অনুমতি দেওয়া হয়নি।
  • অ্যাপের ওয়েক লক উপেক্ষা করা হয়েছে।
  • অ্যালার্ম পিছিয়ে দেওয়া হয়েছে। অ্যালার্ম ঘড়ির অ্যালার্ম এবং setAndAllowWhileIdle() ব্যবহার করে সেট করা অ্যালার্ম বাদ দেয় (ডোজ মোডে থাকাকালীন প্রতি অ্যাপের জন্য ১৫ মিনিটে ১টি করে সীমিত)। এই ছাড় সেইসব অ্যাপের (যেমন Calendar) জন্য প্রযোজ্য যেগুলিকে ইভেন্ট রিমাইন্ডার বিজ্ঞপ্তি দেখাতেই হবে।
  • ওয়াই-ফাই স্ক্যান করা হয় না।
  • পরবর্তী রক্ষণাবেক্ষণ উইন্ডো পর্যন্ত SyncAdapterটি সিঙ্ক এবং JobSchedulerটি কাজ স্থগিত করা হয়েছে।
  • এসএমএস এবং এমএমএস মেসেজ পাওয়া অ্যাপগুলিকে সাময়িক হোয়াইটলিস্টে রাখা হয় যাতে তারা প্রসেসিং সম্পূর্ণ করতে পারে।

বেরিয়ে আসুন

প্ল্যাটফর্মটি ডিভাইসটিকে ডোজ থেকে বের করে দেয় যখন এটি শনাক্ত করে:

  • ডিভাইসের সাথে ব্যবহারকারীর ইন্টার‍্যাকশন
  • ডিভাইসের মুভমেন্ট
  • ডিভাইসের স্ক্রিন চালু হয়
  • আসন্ন AlarmClock অ্যালার্ম

বিজ্ঞপ্তি এলে ডিভাইস Doze মোড থেকে বেরিয়ে আসে না।

Android 7.0 ও তার পরের যেকোনও ভার্সনে, ডিভাইস অলস হয়ে যাওয়ার আগে স্ক্রিন বন্ধ থাকাকালীন লাইটওয়েট স্লিপ মোড চালু করে Doze ফিচারকে আরও উন্নত করা হয়েছে।

ছবি ১. ননস্টেশনারি ও স্টেশনারি ডিভাইসের জন্য 'ডোজ' মোড।

অ্যাকশন ডজ করুন লাইটওয়েট ডোজ
ট্রিগার স্ক্রিন বন্ধ, ব্যাটারিতে চলছে, স্থির অবস্থায় আছে স্ক্রিন বন্ধ, ব্যাটারিতে চলছে (আনপ্লাগ করা আছে)
টাইমিং রক্ষণাবেক্ষণ সহ ক্রমশ বৃদ্ধি পাওয়া সময়সীমা মেন্টেনেন্স উইন্ডো সহ বারবার হওয়া N-মিনিটের সময়সীমা
বিধিনিষেধ নেটওয়ার্ক অ্যাক্সেস, ওয়েক লক বা GPS/ওয়াই-ফাই স্ক্যান নেই; অ্যালার্ম ও জব/সিঙ্ক ডিফার করা হয়েছে নেটওয়ার্ক অ্যাক্সেস নেই; রক্ষণাবেক্ষণের উইন্ডো ছাড়া অন্য সময় জব/সিঙ্ক ডিফার করা হয়
আচরণ শুধুমাত্র উচ্চ অগ্রাধিকারযুক্ত পুশ বিজ্ঞপ্তি মেসেজ পাওয়া রিয়েল-টাইমে পাওয়া সব মেসেজ (ইনস্ট্যান্ট মেসেজ, কল ইত্যাদি); অত্যন্ত গুরুত্বপূর্ণ পুশ বিজ্ঞপ্তি মেসেজ সাময়িক নেটওয়ার্ক অ্যাক্সেস চালু করে
বেরিয়ে আসুন মোশন, স্ক্রিন চালু থাকা বা অ্যালার্ম ক্লক অ্যালার্ম স্ক্রিন চালু

অ্যাপ স্ট্যান্ডবাইয়ের সাথে ইন্টার‍্যাকশন

  • Doze-এ কাটানো সময় অ্যাপ স্ট্যান্ডবাইয়ের জন্য গণনা করা হয় না।
  • ডিভাইস ডজ মোডে থাকাকালীন, নিষ্ক্রিয় অ্যাপগুলিকে দিনে অন্তত একবার সাধারণ অপারেশন পারফর্ম করার অনুমতি দেওয়া হয়।

Doze ইন্টিগ্রেট করা

Doze চালু করা থাকলে, যেসব ডিভাইসে SENSOR_TYPE_SIGNIFICANT_MOTION কাজ করে, সেগুলি সম্পূর্ণ Doze অপ্টিমাইজেশন (লাইটওয়েট অপ্টিমাইজেশন সহ) পারফর্ম করে; SMD ছাড়া ডিভাইস শুধুমাত্র লাইটওয়েট Doze অপ্টিমাইজেশন পারফর্ম করে। Android সঠিক Doze অপ্টিমাইজেশন অটোমেটিক বেছে নেয় এবং ভেন্ডর কনফিগারেশনের প্রয়োজন হয় না।

কোনও ডিভাইসের জন্য Doze চালু করতে:

  1. ডিভাইসে ক্লাউড মেসেজিং পরিষেবা ইনস্টল করা আছে কিনা তা কনফার্ম করুন।
  2. ডিভাইস ওভারলে কনফিগারেশন ফাইলে overlay/frameworks/base/core/res/res/values/config.xml, config_enableAutoPowerModes-কে true হিসেবে সেট করুন:
    <bool name="config_enableAutoPowerModes">true</bool>
    
    AOSP-তে, এই প্যারামিটার ডিফল্ট হিসেবে false (Doze বন্ধ করা আছে) হিসেবে সেট করা থাকে।
  3. কনফার্ম করুন যে প্রি-লোডেড অ্যাপ ও পরিষেবা:
  4. প্রয়োজনীয় পরিষেবাগুলি যে 'ডোজ' থেকে অব্যাহতি পেয়েছে তা কনফার্ম করুন।

পরামর্শ

অ্যাপ টেস্ট ও অপ্টিমাইজ করা

Doze মোডে সব অ্যাপ (বিশেষ করে আগে থেকে লোড করা অ্যাপ) টেস্ট করুন। বিস্তারিত জানতে, ডোজ ও অ্যাপ স্ট্যান্ডবাই ফিচারের মাধ্যমে পরীক্ষা করা দেখুন।