Doze Mode Android کی ایک توانائی بچانے والی خصوصیت ہے، جو ورژن 6.0 Marshmallow میں متعارف کرائی گئی تھی، جو ڈیوائس کے بیکار ہونے پر ایپلی کیشنز کی پس منظر کی سرگرمی کو نمایاں طور پر محدود کرتی ہے۔ سسٹم ایپلی کیشنز کو کم توانائی استعمال کرنے والی حالت میں ڈال دیتا ہے، نیٹ ورک کی درخواستوں، مطابقت پذیری اور JobScheduler کو موخر کرکے بیٹری کی زندگی بڑھانے کے لیے۔ Android Developers, 2025 کے تجزیے کے مطابق، Doze Mode ڈیوائس کے اسٹینڈ بائی وقت کو ماڈل اور OS ورژن کے لحاظ سے 2–3 گنا تک بڑھا سکتا ہے۔
اہم نکات
Doze Mode Android میں شامل ایک توانائی بچانے کا طریقہ کار ہے جو اس وقت فعال ہوتا ہے جب ڈیوائس چارجر سے منسلک نہ ہو، اسکرین بند ہو اور صارف نے ایک مخصوص مدت تک ڈیوائس کے ساتھ تعامل نہ کیا ہو۔ Doze کا مقصد اسٹینڈ بائی موڈ میں بیٹری کی زندگی کو زیادہ سے زیادہ کرنے کے لیے ایپلیکیشنز کی پس منظر کی سرگرمی کو کم کرنا ہے۔ سسٹم JobScheduler، اکاؤنٹ کی مطابقت پذیری، AlarmManager اور نیٹ ورک کی درخواستوں کو موخر کرتا ہے۔
یہ موڈ Android 6.0 Marshmallow (API 23) میں متعارف کرایا گیا تھا اور بعد کے ورژنز میں نمایاں طور پر بہتر کیا گیا۔ Android 7.0 Nougat نے دوسرا مرحلہ (Light Doze) متعارف کرایا جو ڈیوائس کے حرکت کرنے پر فعال ہوتا ہے۔ Android 8.0 نے Doze کے ساتھ کام کرنے والی پس منظر کی خدمات پر اضافی پابندیاں لگائیں۔ Android 12+ میں، Doze کو ایک اپ ڈیٹ شدہ بیٹری مینجمنٹ سسٹم کے ساتھ ضم کیا گیا جو صارف کے رویے کا تجزیہ کرتا ہے۔
یہ سمجھنا ضروری ہے: Doze Mode ایپلیکیشنز کو مکمل طور پر غیر فعال نہیں کرتا۔ یہ انہیں موخر کاموں والی حالت میں ڈالتا ہے، لیکن عمل کو ختم نہیں کرتا۔ نوٹیفکیشن کے ساتھ Foreground Service کام جاری رکھتا ہے، اعلیٰ ترجیحی پش نوٹیفکیشنز (FCM high-priority) فراہم کی جاتی ہیں اور الارم شیڈول کے مطابق بجتے ہیں۔ Doze صرف پس منظر کے کاموں کو متاثر کرتا ہے جو صارف اس وقت نہیں دیکھتا یا توقع نہیں کرتا۔
Doze Mode اس وقت فعال ہوتا ہے جب تمام شرائط پوری ہوں: اسکرین 30 منٹ سے زیادہ بند (پہلی فعالیت)، ڈیوائس ساکن (ایکسلرومیٹر استعمال کرتے ہوئے)، اور چارجر سے منسلک نہ ہو۔ اگر صارف فون اٹھاتا ہے یا چارجر لگاتا ہے تو Doze فوری طور پر غیر فعال ہو جاتا ہے۔ Android 7+ میں، Light Doze ڈیوائس کے حرکت کرنے پر بھی صرف 5 منٹ کی بے عملی کے بعد فعال ہوتا ہے۔
Doze Mode سسٹم سروس DeviceIdleController کے ذریعے پس منظر کی سرگرمی کا انتظام کرتا ہے، جو سینسرز، اسکرین اور چارجر کی حالت کا تجزیہ کرتی ہے۔ جب فعالیت کی تمام شرائط پوری ہو جاتی ہیں، سسٹم ایپلیکیشنز کو اسٹینڈ بائی موڈ میں ڈال دیتا ہے، ان کی درخواستوں کو دیکھ بھال کی ونڈوز میں گروپ کرتا ہے۔ ان ونڈوز کے اندر، تمام موخر کام — نیٹ ورک کالز، مطابقت پذیری، AlarmManager — ایک بیچ میں انجام پاتے ہیں۔
سسٹم PowerManager کنٹرول کرتا ہے کہ کون سی ایپلیکیشنز Doze سے باہر نکل سکتی ہیں۔ اعلیٰ ترجیحی پش نوٹیفکیشنز (FCM high-priority) پیغام پہنچانے کے لیے ڈیوائس کو بیدار کر سکتی ہیں۔ سسٹم ان ایپلیکیشنز کے لیے Doze کو نظرانداز کرتا ہے جنہیں صارف نے بیٹری آپٹیمائزیشن Whitelist میں شامل کیا ہے۔ دیگر تمام ایپلیکیشنز کو اگلی دیکھ بھال کی ونڈو کا انتظار کرنا ہوگا۔
Deep Doze میں دیکھ بھال کی ونڈوز کی مدت تیزی سے بڑھتی ہے: پہلی ونڈو 1 گھنٹے بعد، دوسری 2 گھنٹے بعد، تیسری 4 گھنٹے بعد، اور 12 گھنٹے کے زیادہ سے زیادہ وقفے تک۔ اس کا مطلب ہے کہ ڈیوائس جتنی دیر Doze میں رہے گی، ایپلیکیشنز اتنے ہی کم پس منظر کے کام انجام دے سکتی ہیں — بیٹری کو زیادہ سے زیادہ جارحانہ طریقے سے بچایا جاتا ہے۔
Doze Mode میں، دیکھ بھال کی ونڈو کھلنے تک تمام نیٹ ورک کی درخواستیں معطل رہتی ہیں۔ واحد مستثنیات ہیں FCM اعلیٰ ترجیحی پیغامات (پے لوڈ میں “high_priority” ٹیگ کے ساتھ) اور AlarmManager سے setAndAllowWhileIdle() یا setExactAndAllowWhileIdle() فلیگ والے سگنل۔ Retrofit، OkHttp یا Volley کے ذریعے عام نیٹ ورک کالز ونڈو کھلنے تک انجام نہیں پائیں گی۔
Doze Mode دو مراحل پر مشتمل ہے: Light Doze (ہلکی نیند) اور Deep Doze (گہری نیند)۔ ہر مرحلہ اپنی پابندیاں عائد کرتا ہے اور مختلف فعالیت کی حدیں رکھتا ہے۔ مراحل کے درمیان فرق کو سمجھنا ایک ڈویلپر کے لیے ضروری ہے جو توانائی بچانے کے موڈ کے خلاف لچکدار پس منظر کے کاموں کو ڈیزائن کرتا ہے۔
Light Doze ڈیوائس کے 5–30 منٹ بے کار رہنے (اسکرین بند، کوئی حرکت نہیں) کے بعد فعال ہوتا ہے۔ اس مرحلے میں، نیٹ ورک کی درخواستیں اور مطابقت پذیری معطل ہو جاتی ہیں، لیکن AlarmManager اور JobScheduler معمولی تاخیر کے ساتھ کام کرتے رہتے ہیں۔ ایپلیکیشنز پش نوٹیفکیشن وصول کرنے یا چارجر سے منسلک ہونے پر Light Doze سے باہر نکل سکتی ہیں۔ Light Doze کو مکمل سکون کی ضرورت نہیں ہے — ڈیوائس حرکت میں ہو سکتی ہے۔
Deep Doze 60–90 منٹ کی بے عملی کے بعد ساکن ڈیوائس (ایکسلرومیٹر کوئی حرکت نہیں پکڑتا) کے ساتھ ہوتا ہے۔ Deep Doze میں، سسٹم کاموں کو موخر کرنے میں نمایاں طور پر زیادہ جارحانہ ہوتا ہے: دیکھ بھال کی ونڈوز کم کھلتی ہیں (تیزی سے بڑھتے ہوئے وقفے کے ساتھ)، AlarmManager صرف setAndAllowWhileIdle() فلیگ کے ساتھ کام کرتا ہے، اور WakeLock عام طریقے سے کام نہیں کرتا۔ Whitelist میں نہ ہونے والی ایپلیکیشنز تقریباً مکمل طور پر پس منظر کی سرگرمی سے محروم ہو جاتی ہیں۔
| پیرامیٹر | Light Doze | Deep Doze |
|---|---|---|
| فعالیت کا وقت | 5–30 منٹ | 60–90 منٹ |
| حرکت کی ضرورت | ضروری نہیں | سکون |
| ونڈو کا وقفہ | 10–60 منٹ | 1–12 گھنٹے |
| AlarmManager | تاخیر کے ساتھ کام کرتا ہے | صرف withAllowWhileIdle |
| ونڈوز میں نیٹ ورک | دستیاب | دستیاب |
Doze Mode پابندیوں کی کئی اقسام عائد کرتا ہے جنہیں ڈویلپر کو ایپلیکیشن ڈیزائن کرتے وقت مدنظر رکھنا چاہیے۔ ان پابندیوں کو نظرانداز کرنے سے پس منظر کے کام انجام نہیں پاتے اور صارف ایپلیکیشن کا غلط رویہ دیکھتا ہے — گمشدہ اپ ڈیٹس، نہ بھیجے گئے پیغامات، نامکمل مطابقت پذیری۔
تمام نیٹ ورک کی درخواستیں دیکھ بھال کی ونڈو کھلنے تک مسدود رہتی ہیں۔ یہ HTTP کالز، WebSocket کنکشنز اور فائل ڈاؤن لوڈ پر لاگو ہوتا ہے۔ مستثنیٰ FCM اعلیٰ ترجیحی پیغامات ہیں، جو Doze سے آزاد Google Play Services کے علیحدہ چینل سے گزرتے ہیں۔ اہم ڈیٹا کی مطابقت پذیری کے لیے، NetworkType.CONNECTED پالیسی کے ساتھ WorkManager استعمال کرنے کی سفارش کی جاتی ہے۔
Deep Doze میں AlarmManager setAndAllowWhileIdle() اور setExactAndAllowWhileIdle() طریقوں سے بنائے گئے الارم کے علاوہ تمام کو موخر کر دیتا ہے۔ تاہم، ان طریقوں کی بھی ایک حد ہے — فی ایپلیکیشن 9 منٹ میں 1 سے زیادہ فعالیت نہیں۔ Deep Doze میں setExact() کے ساتھ درست الارم مقررہ وقت پر فعالیت کی ضمانت نہیں دیتے۔
WakeLock Doze Mode میں غیر معمولی رویہ دکھاتا ہے: سسٹم Whitelist سے باہر کی ایپلیکیشنز کے لیے ویک لاک برقرار نہیں رکھتا۔ یہاں تک کہ اگر کسی ایپلیکیشن نے صحیح طریقے سے PARTIAL_WAKE_LOCK حاصل کیا ہو، جب Deep Doze شروع ہوتا ہے، سسٹم اسے زبردستی جاری کر سکتا ہے۔ Doze میں کام کی انجام دہی کی ضمانت کا واحد طریقہ نوٹیفکیشن کے ساتھ Foreground Service استعمال کرنا ہے۔
Doze Whitelist ان ایپلیکیشنز کی فہرست ہے جنہیں سسٹم کم سے کم پابندیوں کے ساتھ توانائی بچانے کے موڈ میں پس منظر کی سرگرمی کی اجازت دیتا ہے۔ صارف ترتیبات → بیٹری → بیٹری آپٹیمائزیشن کے ذریعے دستی طور پر ایپلیکیشنز کو فہرست میں شامل کر سکتا ہے۔ سسٹم ایپلیکیشنز، لانچرز اور Google Play Services ڈیفالٹ طور پر Whitelist میں ہوتی ہیں۔
ایک ڈویلپر Intent ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS کے ساتھ سسٹم ڈائیلاگ کے ذریعے Whitelist میں شامل ہونے کی درخواست کر سکتا ہے۔ اس کے لیے مینی فیسٹ میں REQUEST_IGNORE_BATTERY_OPTIMIZATIONS اجازت درکار ہے۔ تاہم، Google بغیر کسی معقول وجہ کے مستثنیٰ کی درخواست کرنے کی سفارش نہیں کرتا — اس صلاحیت کا غلط استعمال کرنے والی ایپلیکیشنز Google Play پر شائع ہونے پر مسترد کیے جانے کا خطرہ رکھتی ہیں۔
Whitelist کے بغیر، ایک ایپلیکیشن ڈیوائس کو Doze سے بیدار کرنے کے لیے FCM اعلیٰ ترجیح استعمال کر سکتی ہے۔ ایسا ہر پیغام ایپلیکیشن کو کام انجام دینے کے لیے ایک مختصر ونڈو (10–30 سیکنڈ) دیتا ہے۔ طویل کارروائیوں کے لیے، ایپلیکیشن کو Foreground Service شروع کرنا ہوگا، جو Doze کی دیکھ بھال کی ونڈوز کے اندر کام جاری رکھتا ہے۔ Google بعض اقسام کی ایپلیکیشنز کے لیے استثنیٰ کا طریقہ کار بھی فراہم کرتا ہے: نیویگیشن، طبی، پیغام رسانی۔
یہ چیک کرنے کے لیے کہ آیا کوئی ایپلیکیشن بیٹری آپٹیمائزیشن Whitelist میں ہے، powerManager.isIgnoringBatteryOptimizations() طریقہ استعمال کریں۔ اگر طریقہ false لوٹاتا ہے تو ایپلیکیشن Doze کی تمام پابندیوں کے تابع ہے۔ اگر true لوٹاتا ہے تو ایپلیکیشن Deep Doze میں بھی بغیر پابندیوں کے Wakelock، AlarmManager اور نیٹ ورک استعمال کر سکتی ہے۔ تاہم، اس استحقاق کا غلط استعمال صارفین کی طرف سے برے جائزوں کا باعث بنے گا۔
Doze Mode میں ایپلیکیشن کے رویے کی جانچ ایک لازمی ترقیاتی مرحلہ ہے، کیونکہ Doze پس منظر کے افعال میں خلل ڈال سکتا ہے۔ Android ڈیوائس کو زبردستی Light Doze اور Deep Doze میں منتقل کرنے کے لیے ADB کے ذریعے کمانڈ لائن ٹولز فراہم کرتا ہے۔ جانچ Android 6.0+ والے فزیکل ڈیوائس یا ایمولیٹر پر کی جانی چاہیے۔
Light Doze میں داخل ہونے کے لیے، کمانڈ adb shell dumpsys deviceidle step light استعمال کریں۔ Deep Doze کے لیے — adb shell dumpsys deviceidle step deep۔ کمانڈ adb shell dumpsys deviceidle force-idle deep معیاری ٹائم آؤٹ کا انتظار کیے بغیر فوری طور پر ڈیوائس کو Deep Doze میں منتقل کرتی ہے۔ جانچ کے بعد، کمانڈ adb shell dumpsys deviceidle unforce سے Doze سے باہر نکلیں۔
# Light Doze میں زبردستی داخل ہوں
$ adb shell dumpsys deviceidle step light
# Deep Doze میں زبردستی داخل ہوں
$ adb shell dumpsys deviceidle step deep
# فوری طور پر Deep Doze میں منتقل ہوں
$ adb shell dumpsys deviceidle force-idle deep
# Doze سے باہر نکلیں
$ adb shell dumpsys deviceidle unforce
# Doze کی حالت دیکھیں
$ adb shell dumpsys deviceidle
Doze Mode میں منتقل ہونے کے بعد، چیک کریں: کیا نیٹ ورک کی درخواستیں کام کرتی ہیں (انہیں موخر ہونا چاہیے)، کیا AlarmManager فعال ہوتا ہے، کیا FCM پیغامات فراہم ہوتے ہیں، کیا WorkManager کے کام صحیح طریقے سے انجام پاتے ہیں۔ WorkManager Doze میں کام جاری رکھتا ہے: اس کے کام دیکھ بھال کی ونڈوز میں انجام پاتے ہیں۔ تاہم، اگر کسی کام کو فوری انجام دینے کی ضرورت ہو تو setExpedited() بتائیں یا Foreground Service استعمال کریں۔
Doze Mode کے خلاف لچکدار ایپلیکیشن تیار کرنے کے لیے پس منظر کے کاموں کے نقطہ نظر پر نظر ثانی کرنے کی ضرورت ہے۔ Google سفارش کرتا ہے کہ ایپلیکیشن کو اس طرح ڈیزائن کریں کہ وہ Doze کی کسی بھی پابندی کے تحت صحیح طریقے سے کام کرے، پس منظر کے کاموں کے فوری انجام دینے پر انحصار کیے بغیر۔ بنیادی اصول ان تمام پس منظر کے کاموں کے لیے WorkManager استعمال کرنا ہے جنہیں موخر کیا جا سکتا ہے۔
WorkManager پس منظر کے کاموں کے لیے Google کی تجویز کردہ API ہے کیونکہ یہ خود بخود Doze کے مطابق ڈھل جاتا ہے۔ WorkManager پرانے ورژنز میں JobScheduler (API 23+) یا AlarmManager + BroadcastReceiver استعمال کرتا ہے۔ WorkManager کے کام قریب ترین Doze دیکھ بھال کی ونڈو میں انجام پاتے ہیں، یا ضرورت پڑنے پر Expedited Work (ہڈ کے نیچے Foreground Service) کے ذریعے فوری طور پر۔
اگر کوئی کام موخر نہیں کیا جا سکتا (میڈیا پلے بیک، نیویگیشن، VoIP)، تو لازمی نوٹیفکیشن کے ساتھ Foreground Service استعمال کریں۔ Foreground Service Doze سے استثنیٰ حاصل کرتا ہے: یہ WakeLock رکھ سکتا ہے اور نیٹ ورک کی درخواستیں انجام دے سکتا ہے۔ تاہم، Foreground Service بھی بعض اقسام کے کاموں کے لیے Deep Doze کی دیکھ بھال کی ونڈو پالیسیوں کے تابع ہے — مثال کے طور پر، dataSync۔
فوری توجہ کی ضرورت والے پیغامات (آنے والی کال، فوری نوٹیفکیشن) کی فراہمی کے لیے، FCM اعلیٰ ترجیحی پیغامات استعمال کریں۔ اس طرح کے پیغامات ڈیوائس کو Doze سے بیدار کرتے ہیں اور ایپلیکیشن کو پروسیسنگ کے لیے ایک مختصر ونڈو دیتے ہیں۔ عام نوٹیفکیشنز کے لیے اعلیٰ ترجیح استعمال نہ کریں — اس سے بیٹری تیزی سے ختم ہوگی اور Google Play کی پالیسی کی خلاف ورزی سمجھی جا سکتی ہے۔
اکثر پوچھے گئے سوالات
Doze Mode Android 6+ کا ایک توانائی بچانے والا موڈ ہے جو ڈیوائس کے استعمال میں نہ ہونے پر (اسکرین بند، کوئی حرکت نہیں) ایپلیکیشنز کی پس منظر کی سرگرمی کو محدود کرتا ہے۔ سسٹم بیٹری بچانے کے لیے نیٹ ورک کی درخواستوں، مطابقت پذیری اور JobScheduler کو موخر کرکے انہیں دیکھ بھال کی ونڈوز میں گروپ کرتا ہے۔
Doze Mode کے دو مراحل ہیں: Light Doze (ہلکی نیند) 5–30 منٹ بعد فعال ہوتا ہے اور AlarmManager کو تاخیر کے ساتھ کام کرنے دیتا ہے۔ Deep Doze (گہری نیند) 60–90 منٹ کی سکون کے بعد ہوتا ہے، 12 گھنٹے تک کی دیکھ بھال کی ونڈوز کے ساتھ پس منظر کے کاموں کو جارحانہ طور پر محدود کرتا ہے۔
Doze نیٹ ورک کی درخواستوں کو روکتا ہے، AlarmManager کو موخر کرتا ہے (setAndAllowWhileIdle کے علاوہ)، WakeLock کو زبردستی جاری کرتا ہے اور JobScheduler کو دیکھ بھال کی ونڈوز میں گروپ کرتا ہے۔ مستثنیات میں Foreground Service، FCM اعلیٰ ترجیح اور صارف کی Whitelist کی ایپلیکیشنز شامل ہیں۔
مینی فیسٹ میں REQUEST_IGNORE_BATTERY_OPTIMIZATIONS اجازت کی درخواست کریں اور ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS ایکشن کے ساتھ Intent بھیجیں۔ سسٹم صارف کو ایک ڈائیلاگ دکھائے گا۔ Whitelist میں شامل ہونا ایک استحقاق ہے جسے Google صرف انتہائی اہم ایپلیکیشنز کے لیے استعمال کرنے کی سفارش کرتا ہے۔
ADB کمانڈز استعمال کریں: Deep Doze میں داخل ہونے کے لیے adb shell dumpsys deviceidle force-idle deep، Light Doze کے لیے adb shell dumpsys deviceidle step light، باہر نکلنے کے لیے adb shell dumpsys deviceidle unforce۔ ہر موڈ میں WorkManager، AlarmManager اور FCM کو چیک کریں۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں