بیٹری کا زیادہ استعمال — موبائل ایپلیکیشن استعمال کرنے والوں کی سب سے عام شکایات میں سے ایک ہے۔ ایپلیکیشن غیر معمولی طور پر زیادہ توانائی استعمال کرنے لگتی ہے، جس سے ڈیوائس بیک گراؤنڈ میں بھی تیزی سے ڈسچارج ہوتی ہے۔ Google I/O 2023 کے مطابق، Google Play پر 30% تک ایپلیکیشنز میں توانائی کی کھپت کے مسائل ہیں جو براہ راست صارفین کو برقرار رکھنے پر اثر انداز ہوتے ہیں۔ اس مضمون میں ہم وجوہات، تشخیص اور اصلاح کے طریقوں پر غور کریں گے۔
اہم نکات
بیٹری کا زیادہ استعمال ایک ایسی حالت ہے جس میں موبائل ایپلیکیشن عام استعمال کے منظرناموں میں متوقع سے کہیں زیادہ توانائی استعمال کرتی ہے۔ صارف دیکھتا ہے کہ ایپلیکیشن انسٹال یا اپ ڈیٹ کرنے کے بعد ڈیوائس 20-30% تیزی سے ڈسچارج ہوتی ہے۔
جدید موبائل OS — Android اور iOS — میں توانائی کی کھپت پر قابو پانے کے لیے بلٹ ان میکانزم موجود ہیں۔ Android Battery Optimization استعمال کرتا ہے، اور iOS Background Modes استعمال کرتا ہے۔ تاہم، API کا غلط استعمال ان میکانزم کو نظرانداز کر سکتا ہے۔
Purdue University کی تحقیق (2021) کے مطابق، تقریباً 60% ایپلیکیشنز بغیر واضح ضرورت کے بیک گراؤنڈ کاموں کے لیے توانائی استعمال کرتی ہیں۔ یہ خاص طور پر اشتہارات، تجزیات اور مستقل نیٹ ورک کنکشن والی ایپلیکیشنز میں عام ہے۔
توانائی کی کھپت mA·h (ملی ایمپیئر گھنٹے) میں ناپی جاتی ہے۔ Android BatteryManager API کے ذریعے ڈیٹا فراہم کرتا ہے، جو ہر جزو کی کھپت کو ٹریک کرتا ہے: CPU، ریڈیو ماڈیول، GPS، ڈسپلے اور سینسر۔
val batteryManager = getSystemService(Context.BATTERY_SERVICE) as BatteryManager
val chargeCounter = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER)
val capacity = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY)
// chargeCounter / capacity * 100 = current charge percentage
BatteryManager API موجودہ چارج اور بیٹری کی گنجائش حاصل کرنے کی اجازت دیتا ہے، لیکن فی ایپلیکیشن تفصیلات فراہم نہیں کرتا — اس کے لیے سسٹم یوٹیلیٹیز درکار ہیں۔
WakeLock — بیٹری کے لیے سب سے خطرناک میکانزم ہے۔ اگر ایپلیکیشن WakeLock کو جاری کیے بغیر رکھے تو ڈیوائس نیند کے موڈ میں نہیں جاتی۔ WakeLock کو ایک گھنٹہ رکھنے سے تقریباً 50-80 mA·h خرچ ہوتا ہے۔
بغیر بیچنگ کے نیٹ ورک کی درخواستیں دوسری سب سے عام وجہ ہیں۔ جب بھی ایپلیکیشن نیٹ ورک کنکشن قائم کرتی ہے، ریڈیو ماڈیول توانائی بچت کے موڈ سے فعال موڈ میں جاتا ہے۔ 5 منٹ سے کم وقفے پر بار بار چھوٹی درخواستیں ریڈیو ماڈیول کو مسلسل فعال رکھتی ہیں۔
اعلیٰ درستگی والا GPS مقام (GPS_PROVIDER) تخمینی مقام (NETWORK_PROVIDER) سے 10-15 گنا زیادہ توانائی استعمال کرتا ہے۔ بیک گراؤنڈ میں مسلسل مقام کی اپ ڈیٹس صارفین کی سب سے عام شکایات میں سے ایک ہیں۔
Android Developers Blog کے مطابق، اوسط ایپلیکیشن ڈیوائس کی کل بیٹری کھپت کا تقریباً 15% استعمال کرتی ہے۔ اس سطح سے تجاوز کرنے پر توانائی کی کھپت کا لازمی آڈٹ ضروری ہے۔
Battery Historian — توانائی کی کھپت کے تجزیہ کے لیے Google کا سرکاری ٹول ہے۔ یہ ADB سے BatteryStats ڈمپ لیتا ہے اور جزو کے مطابق کھپت کو بصری شکل دیتا ہے: CPU، نیٹ ورک، GPS، WakeLock اور ڈسپلے۔
ڈمپ بنانے کے لیے کمانڈ چلائیں: adb shell dumpsys batterystats. 2-3 گھنٹے عام استعمال کے بعد ڈیٹا اکٹھا کرکے، آپ تجزیہ کے لیے رپورٹ Battery Historian میں اپ لوڈ کر سکتے ہیں۔
Android Energy Profiler Android Studio میں حقیقی وقت میں توانائی کی کھپت کو ٹریک کرتا ہے۔ یہ ہر ایپلیکیشن آپریشن کے لیے CPU، نیٹ ورک، GPS اور ڈسپلے کی کھپت دکھاتا ہے۔
# Reset battery stats before test
adb shell dumpsys batterystats --reset
# Use the app for 2-3 hours
# Export dump for Battery Historian
adb shell dumpsys batterystats > batterystats_dump.txt
iOS کے لیے Xcode Instruments کے ذریعے Energy Log استعمال کیا جاتا ہے۔ یہ ماڈیول کے مطابق توانائی کی کھپت کا ڈیٹا اکٹھا کرتا ہے: CPU، نیٹ ورک، GPU، ڈسپلے، مقام۔ پڑھنے کا وقت: ایک سیشن کے تجزیہ کے لیے 15-30 منٹ۔
فزیکل iOS ڈیوائس پر، توانائی کی کھپت کے اعدادوشمار Settings > Battery میں بھی دکھائے جاتے ہیں۔ اگر ایپلیکیشن کھپت میں ٹاپ 10 میں ہے — تو یہ اصلاح کا اشارہ ہے۔
WorkManager — بیک گراؤنڈ کاموں کے لیے معیاری API جو بیٹری کی حالت، نیٹ ورک اور Doze موڈ کو مدنظر رکھتا ہے۔ یہ فوری طور پر نہیں بلکہ بہترین حالات میں کام کی تکمیل کو یقینی بناتا ہے، جس سے بیک گراؤنڈ آپریشنز پر 40% توانائی تک بچت ہوتی ہے۔
val workRequest = OneTimeWorkRequestBuilder<SyncWorker>()
.setConstraints(
Constraints.Builder()
.setRequiresCharging(true)
.setRequiresBatteryNotLow(true)
.setRequiresNetworkType(NetworkType.CONNECTED)
.build()
)
.build()
WorkManager.getInstance(this).enqueue(workRequest)
درخواستوں کی بیچنگ — متعدد نیٹ ورک آپریشنز کو ایک مواصلاتی سیشن میں جمع کرنا ہے۔ 10 علیحدہ درخواستوں کے بجائے، ایپلیکیشن ایک بیچ درخواست کرتی ہے، جس سے ریڈیو ماڈیول کا فعال وقت 30 سیکنڈ سے کم ہوکر 2-3 سیکنڈ ہو جاتا ہے۔
Google Play Services کا FusedLocationProviderClient مطلوبہ درستگی کے مطابق بہترین مقام کا ذریعہ منتخب کرتا ہے۔ بیک گراؤنڈ کاموں کے لیے PRIORITY_BALANCED_POWER_ACCURACY ترجیح استعمال کریں — یہ کم سے کم بیٹری کھپت کے ساتھ 100 میٹر تک درستگی فراہم کرتا ہے۔
iOS میں، Continuous Location کے بجائے Significant Location Change استعمال کریں۔ یہ ہر چند سیکنڈ کے بجائے صرف اہم حرکت (500 میٹر سے زیادہ) پر اپ ڈیٹس حاصل کرنے کی اجازت دیتا ہے۔
Android Battery Historian — Google کا BatteryStats ڈیٹا ویژولائزیشن کا ویب ٹول ہے۔ ڈمپ درآمد، رنگ کوڈڈ اجزاء اور سیشن موازنہ کو سپورٹ کرتا ہے۔ اہم میٹرکس: WakeLock ہولڈ ٹائم، ریڈیو ماڈیول سرگرمی، GPS سیشن۔
Xcode Energy Organizer TestFlight اور App Store کے ذریعے پروڈکشن صارفین سے توانائی کی کھپت کا ڈیٹا اکٹھا کرتا ہے۔ آپ مختلف آلات اور iOS ورژنز پر اوسط کھپت کی رپورٹ حاصل کرتے ہیں۔ یہ اپ ڈیٹس کے بعد تنزلی کو ٹریک کرنے کی اجازت دیتا ہے۔
PerfDog (Tencent) — ایک کراس پلیٹ فارم کارکردگی جانچ کا ٹول ہے جس میں توانائی کی کھپت کی پیمائش شامل ہے۔ iOS اور Android کو سپورٹ کرتا ہے، فی سیکنڈ 1-10 فریم پر میٹرکس ریکارڈ کرنے کی اجازت دیتا ہے۔
| ٹول | پلیٹ فارم | میٹرکس |
|---|---|---|
| Battery Historian | Android | WakeLock، نیٹ ورک، GPS، CPU، ڈسپلے |
| Energy Profiler | Android Studio | حقیقی وقت میں CPU، نیٹ ورک، GPS، ریڈیو |
| Energy Log | iOS (Xcode) | CPU، نیٹ ورک، GPU، ڈسپلے، مقام |
| PerfDog | iOS + Android | توانائی، FPS، CPU، میموری (سب ایک ساتھ) |
Apple WWDC 2023 کے مطابق، Energy Organizer کا استعمال App Store پر اپ ڈیٹ جاری کرنے سے پہلے تنزلی کی نشاندہی اور اصلاح کرکے اوسط ایپلیکیشن توانائی کی کھپت کو 15-25% کم کرتا ہے۔
اکثر پوچھے گئے سوالات
سوشل نیٹ ورکس اور میسنجر (Facebook، Instagram، WhatsApp، Telegram) روایتی طور پر توانائی کی کھپت میں سرفہرست ہیں۔ یہ مسلسل ڈیٹا مطابقت پذیر کرتے ہیں، فیڈ کو اپ ڈیٹ کرتے ہیں، push اطلاعیں وصول کرتے ہیں اور GPS استعمال کرتے ہیں۔ دوسرے نمبر پر 3D گرافکس والے گیمز ہیں جو GPU اور CPU کو بیک وقت لوڈ کرتے ہیں، فعال گیمنگ کے فی گھنٹہ 400-600 mA·h تک استعمال کرتے ہیں۔
ہاں، براہ راست۔ اسکرین اسمارٹ فون کا سب سے زیادہ توانائی استعمال کرنے والا جزو ہے۔ فریکوئنسی کو 60 Hz سے 120 Hz تک بڑھانے سے ڈسپلے کی توانائی کی کھپت 30-50% بڑھ جاتی ہے۔ تاہم، LTPO ٹیکنالوجی والی جدید اسکرینیں مواد کے لحاظ سے فریکوئنسی کو 1 سے 120 Hz تک متحرک طور پر تبدیل کرتی ہیں، جس سے بیٹری پر اثر کم ہوتا ہے۔
اعلیٰ درستگی والا GPS مسلسل آپریشن کے فی گھنٹہ تقریباً 200-300 mA·h استعمال کرتا ہے۔ موازنہ کے لیے، Wi-Fi اور سیل ٹاورز (NETWORK_PROVIDER) کے ذریعے مقام کا تعین اسی مدت میں صرف 20-40 mA·h استعمال کرتا ہے۔ مخصوص علاقے میں داخل ہونے پر GPS کو فعال کرنے کے لیے Geofencing API استعمال کریں۔
نہیں۔ جدید OS (Android اور iOS) بیک گراؤنڈ پروسیسز کو خود بہتر بناتے ہیں۔ ایپلیکیشن کو زبردستی بند کرکے دوبارہ شروع کرنا اس سے زیادہ توانائی استعمال کرتا ہے جتنا کہ ایپلیکیشن بیک گراؤنڈ میں رہنے سے۔ استثنا — وہ ایپلیکیشنز جو واضح طور پر مسائل پیدا کرتی ہیں (سیٹنگز میں بیٹری کے اعدادوشمار کے ذریعے طے کیا جاتا ہے)۔
Settings > Battery > Battery Usage کھولیں۔ سسٹم کھپت کے فیصد کے ساتھ ایپلیکیشنز کی فہرست دکھائے گا۔ تفصیلی تجزیہ کے لیے ADB استعمال کریں: adb shell dumpsys batterystats اور ڈمپ کو Battery Historian میں اپ لوڈ کریں۔ یہ نہ صرف کل کھپت بلکہ اجزاء (WakeLock، نیٹ ورک، GPS) کے مطابق تقسیم بھی دکھائے گا۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں