Skip to Content
പ്രധാന ആശയങ്ങൾOEM പവർ മാനേജ്മെൻ്റ്

OEM പവർ മാനേജ്മെൻ്റ്

അഗ്രസീവ് ബാറ്ററി സേവറുകൾ മെരുക്കുന്നു

നിങ്ങൾ എല്ലാം കൃത്യമായി കോൺഫിഗർ ചെയ്യുകയും POST_NOTIFICATIONS ഉപയോഗിച്ച് ഒരു ഫോർഗ്രൗണ്ട് സേവനം അഭ്യർത്ഥിക്കുകയും ചെയ്‌താൽ പോലും, ചില Android നിർമ്മാതാക്കൾ (OEM-കൾ) അവരുടെ ഇഷ്‌ടാനുസൃത Android ഫോർക്കുകളിലേക്ക് (MIUI, EMUI, ColorOS പോലുള്ളവ) കുത്തകയുള്ള, വളരെ ആക്രമണാത്മക “ബാറ്ററി സേവർ” എഞ്ചിനുകൾ നിർമ്മിച്ചിട്ടുണ്ട്.

സ്റ്റാൻഡേർഡ് ആൻഡ്രോയിഡ് API നിയമങ്ങൾ പരിഗണിക്കാതെ തന്നെ ഈ ആക്രമണാത്മക ടാസ്‌ക് കില്ലറുകൾ കുറച്ച് മിനിറ്റ് സ്‌ക്രീൻ ഓഫ് സമയത്തിന് ശേഷം നിങ്ങളുടെ ആപ്പ് അവസാനിപ്പിക്കും. Tracelet-ൻ്റെ ക്രമീകരണ ആരോഗ്യ API ഈ ഉപകരണങ്ങൾ കണ്ടെത്തുന്നതിനും നിങ്ങളുടെ ആപ്പ് വൈറ്റ്‌ലിസ്റ്റ് ചെയ്യുന്നതിനായി ശരിയായ മറഞ്ഞിരിക്കുന്ന ക്രമീകരണ മെനുവിലേക്ക് ഉപയോക്താവിനെ സ്വയമേവ റൂട്ട് ചെയ്യുന്നതിനും ഒരു സമഗ്രമായ സ്യൂട്ട് നൽകുന്നു.

പിന്തുണയ്ക്കുന്ന നിർമ്മാതാക്കളും പെരുമാറ്റങ്ങളും

100-ലധികം ഒഇഎം-നിർദ്ദിഷ്‌ട ഉദ്ദേശ ഘടനകളുടെ ആന്തരിക രജിസ്‌ട്രി ട്രേസ്‌ലെറ്റ് പരിപാലിക്കുന്നു. നിങ്ങൾ Tracelet.showPowerManager() എന്ന് വിളിക്കുമ്പോൾ, എഞ്ചിൻ യാന്ത്രികമായി ഉപകരണ ബ്രാൻഡ് കണ്ടെത്തുകയും ശരിയായ ഡീപ്-ലിങ്ക് ഫയർ ചെയ്യുകയും ചെയ്യുന്നു.

ഞങ്ങൾ പിന്തുണയ്ക്കുന്ന പ്രാഥമിക OEM-കളും showPowerManager() തുറക്കുന്നതും ഇതാ:

📱 Xiaomi / POCO / Redmi (MIUI / HyperOS)

  • പ്രശ്നം: MIUI-ക്ക് കുപ്രസിദ്ധമായ ഒരു കർശനമായ “ഓട്ടോസ്റ്റാർട്ട്” മാനേജറും 5 മിനിറ്റ് ഉറക്കത്തിന് ശേഷം പശ്ചാത്തല സേവനങ്ങളെ നശിപ്പിക്കുന്ന “ബാറ്ററി സേവറും” ഉണ്ട്.
  • എന്ത് ട്രേസ്‌ലെറ്റ് തുറക്കുന്നു:
  1. മറഞ്ഞിരിക്കുന്ന ഓട്ടോസ്റ്റാർട്ട് മെനു (ഉപയോക്താവ് നിങ്ങളുടെ ആപ്പ് ഓൺ ചെയ്യണം).
  2. നിർദ്ദിഷ്ട ആപ്പ് ബാറ്ററി സേവർ മെനു (ഉപയോക്താവ് “നിയന്ത്രണങ്ങളൊന്നുമില്ല” തിരഞ്ഞെടുക്കണം).

📱 Huawei / Honor (EMUI)

  • പ്രശ്നം: EMUI-യുടെ “ആപ്പ് ലോഞ്ച്” മാനേജർ, ആപ്പുകളെ നേരിട്ട് കൈകാര്യം ചെയ്യാൻ സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ അവ ഇല്ലാതാക്കുന്നു.
  • എന്താണ് ട്രേസ്‌ലെറ്റ് തുറക്കുന്നത്: ആപ്പ് ലോഞ്ച് ക്രമീകരണ സ്‌ക്രീൻ. ഉപയോക്താവ് നിങ്ങളുടെ ആപ്പ് അൺചെക്ക് ചെയ്യുകയും “ഓട്ടോ-ലോഞ്ച്”, “സെക്കൻഡറി ലോഞ്ച്”, “റൺ ഇൻ ബാക്ക്ഗ്രൗണ്ട്” എന്നിവയെല്ലാം പ്രവർത്തനക്ഷമമാണെന്ന് ഉറപ്പാക്കുകയും വേണം.

📱 സാംസങ് (OneUI)

  • പ്രശ്നം: ഏതാനും ദിവസങ്ങൾക്കുള്ളിൽ തുറന്നിട്ടില്ലെങ്കിൽ, എല്ലാ ബാക്ക്ഗ്രൗണ്ട് എക്സിക്യൂഷനും ശാശ്വതമായി വിച്ഛേദിക്കുന്ന ആപ്പുകളെ സാംസങ് അതിൻ്റെ “ഡീപ് സ്ലീപ്പിംഗ് ആപ്പുകൾ” ലിസ്റ്റിലേക്ക് ആക്രമണാത്മകമായി ചേർക്കുന്നു.
  • എന്താണ് ട്രേസ്‌ലെറ്റ് തുറക്കുന്നത്: നിരീക്ഷണമില്ലാത്ത / ഒരിക്കലും ഉറങ്ങാത്ത ആപ്പുകൾ മെനു, സ്ഥിരമായ വൈറ്റ്‌ലിസ്റ്റിലേക്ക് നിങ്ങളുടെ ആപ്പ് ചേർക്കാൻ ഉപയോക്താവിനെ അനുവദിക്കുന്നു.

📱 OnePlus / Oppo (OxygenOS / ColorOS)

  • പ്രശ്നം: പശ്ചാത്തല ടാസ്ക്കുകൾ സ്വയമേവ ഒപ്റ്റിമൈസ് ചെയ്യുന്ന “ആപ്പ് ബാറ്ററി മാനേജ്മെൻ്റ്”.
  • എന്താണ് ട്രേസ്‌ലെറ്റ് തുറക്കുന്നത്: ആപ്പ് ഓട്ടോ-ലോഞ്ച്, ബാറ്ററി ഒപ്റ്റിമൈസേഷൻ സ്‌ക്രീനുകൾ.

📱 Vivo (Funtouch OS)

  • പ്രശ്നം: പശ്ചാത്തലത്തിൽ ഉയർന്ന പവർ ഉപയോഗിക്കുന്നതിൽ നിന്ന് അപ്ലിക്കേഷനുകളെ നിയന്ത്രിക്കുന്നു.
  • എന്താണ് ട്രേസ്‌ലെറ്റ് തുറക്കുന്നത്: ഉയർന്ന പശ്ചാത്തല പവർ ഉപഭോഗം വൈറ്റ്‌ലിസ്റ്റ് മെനു.

🌐 മറ്റ് ഉപകരണങ്ങളും DontKillMyApp

Tracelet-ൻ്റെ ഡീപ്-ലിങ്ക് എഞ്ചിൻ വ്യക്തമായി ഉൾക്കൊള്ളാത്ത ഉപകരണങ്ങൾക്കായി അല്ലെങ്കിൽ നിർദ്ദിഷ്ട നിർമ്മാതാക്കൾ ഏർപ്പെടുത്തിയ കൃത്യമായ സാങ്കേതിക നിയന്ത്രണങ്ങൾ നിങ്ങൾക്ക് മനസിലാക്കണമെങ്കിൽ, DontKillMyApp.com  പരിശോധിക്കാൻ ഞങ്ങൾ വളരെ ശുപാർശ ചെയ്യുന്നു. സ്‌മാർട്ട്‌ഫോണുകളെ അവയുടെ പശ്ചാത്തല ടാസ്‌ക് ആക്രമണാത്മകത അനുസരിച്ച് റാങ്ക് ചെയ്യുകയും മിക്കവാറും എല്ലാ Android ഉപകരണത്തിനും മാനുവൽ കോൺഫിഗറേഷൻ ഘട്ടങ്ങൾ നൽകുകയും ചെയ്യുന്ന അവിശ്വസനീയമായ കമ്മ്യൂണിറ്റി-പ്രേരിതമായ ഉറവിടമാണിത്.


മിറ്റിഗേഷൻ ഫ്ലോ നടപ്പിലാക്കുന്നു

നിങ്ങളുടെ ആപ്പിൻ്റെ ഓൺബോർഡിംഗ് ഫ്ലോയ്‌ക്കിടയിലോ പ്രധാന ഡാഷ്‌ബോർഡിലോ നിങ്ങൾ ഈ പരിശോധന നടത്തണം:

import 'package:tracelet/tracelet.dart' as tl; // 1. Check the device health // Returns a Map<String, dynamic> containing the boolean flags final health = await tl.Tracelet.getSettingsHealth(); // 2. Check if the device is a known aggressive OEM if (health['isAggressiveOem'] == true) { // 3. Check if the user has already whitelisted your app if (health['isIgnoringBatteryOptimizations'] == false) { // 4. Show a custom Flutter dialog explaining WHY they need to do this showDialog( context: context, builder: (context) => AlertDialog( title: Text("Background Tracking Required"), content: Text("To ensure your route is recorded, please select 'No Restrictions' on the next screen."), actions: [ TextButton( onPressed: () async { Navigator.pop(context); // 5. Open the specific manufacturer's hidden power menu // Returns true if the intent successfully launched the screen, false otherwise. final success = await tl.Tracelet.showPowerManager(); if (!success) { // Fallback: Open standard Android battery settings await tl.Tracelet.openBatterySettings(); } }, child: Text("Configure"), ) ] ) ); } }

UX ബെസ്റ്റ് പ്രാക്ടീസ്: ഒരിക്കലും ആപ്പ് ലോഞ്ച് ചെയ്യുമ്പോൾ ക്രമരഹിതമായോ ഉടനടിയോ showPowerManager()-ലേക്ക് വിളിക്കരുത്. വളരെ സാന്ദർഭികമായ ഫ്ലട്ടർ യുഐ ഡയലോഗ് ഉപയോഗിച്ച് എല്ലായ്പ്പോഴും അതിന് മുമ്പായി പറയുക. സന്ദർഭം കൂടാതെ ഭയപ്പെടുത്തുന്ന “ബാറ്ററി ഒപ്റ്റിമൈസേഷൻ” സിസ്റ്റം സ്‌ക്രീനിലേക്ക് ഉപയോക്താവ് പെട്ടെന്ന് ടെലിപോർട്ട് ചെയ്യപ്പെടുകയാണെങ്കിൽ, അവർ പരിഭ്രാന്തരായി നിങ്ങളുടെ ആപ്പ് അൺഇൻസ്റ്റാൾ ചെയ്യും.


തത്സമയ ഡ്രൈവർ / ഫ്ലീറ്റ് ട്രാക്കിംഗ് വിശ്വാസ്യത

ടാക്സി, ഡെലിവറി, ഫ്ലീറ്റ് ആപ്പുകൾ എന്നിവ നിർമ്മിക്കുന്ന ടീമുകളിൽ നിന്നുള്ള ഏറ്റവും സാധാരണമായ ചോദ്യം ഇതാണ്: “Xiaomi, Poco, Infinix, Tecno എന്നിവയിലും മറ്റ് ആക്രമണാത്മക OEM-കളിലും Tracelet-ന് ദിവസം മുഴുവൻ ട്രാക്ക് ചെയ്യാമോ?” സത്യസന്ധവും പ്രായോഗികവുമായ ഉത്തരം ഇതാ.

എന്താണ് Tracelet സ്വയമേവ കൈകാര്യം ചെയ്യുന്നത്

ഈ ലഘൂകരണങ്ങൾ നിങ്ങൾക്കായി പ്രയോഗിക്കുന്നു - കോൺഫിഗറേഷൻ ആവശ്യമില്ല:

  • FOREGROUND_SERVICE_TYPE_LOCATION ഉള്ള ഫോർഗ്രൗണ്ട് സേവനം — ഏറ്റവും ഉയർന്ന പശ്ചാത്തല മുൻഗണനയുള്ള Android ഗ്രാൻ്റുകൾ.
  • START_STICKY — മെമ്മറി-പ്രഷർ കില്ലിന് ശേഷം OS സേവനം പുനഃസൃഷ്ടിക്കുന്നു.
  • OEM-സേഫ് വേക്ക്‌ലോക്കുകൾ — Huawei-യിൽ, PowerGenie വൈറ്റ്‌ലിസ്റ്റ് ചെയ്‌ത ഒരു വേക്ക്‌ലോക്ക് ടാഗ്, അതിനാൽ “അജ്ഞാത” വേക്ക്‌ലോക്ക് കൈവശം വച്ചതിന് പ്രക്രിയ നശിപ്പിക്കപ്പെടില്ല.
  • ബൂട്ട്-റിസീവർ വേക്ക്‌ലോക്ക് - BOOT_COMPLETED സമയത്ത് ഒരു ചെറിയ വേക്ക്‌ലോക്ക്, അതിനാൽ റീബൂട്ടിന് ശേഷം ഫോർഗ്രൗണ്ട് സേവനം സ്ഥാപിക്കുന്നത് വരെ പ്രക്രിയ നിലനിൽക്കുന്നു.
  • ഉപഭോക്തൃ പ്രോഗാർഡ്/R8 നിയമങ്ങൾ — സ്ട്രിപ്പിംഗ് സേവനങ്ങൾ, റിസീവറുകൾ, റൂം എൻ്റിറ്റികൾ എന്നിവയിൽ നിന്ന് റിലീസ് ബിൽഡുകൾ തടയുന്നു.

ഒഴിവാക്കാനാവാത്ത മാനുവൽ ഘട്ടം

ഉപയോക്താവ് ആപ്പ് വൈറ്റ്‌ലിസ്റ്റ് ചെയ്യാതെ ഒരു OEM കില്ലിനും പശ്ചാത്തല-ലൊക്കേഷൻ ലൈബ്രറിക്ക് അസാധുവാക്കാൻ കഴിയില്ല. MIUI, EMUI, ColorOS, HiOS/XOS എന്നിവയും സമാനമായ റോമുകളും സ്റ്റാൻഡേർഡ് Android നിയമങ്ങൾ മനഃപൂർവം അവഗണിക്കുന്നു. ഈ ഉപകരണങ്ങളിൽ, ബാറ്ററി-ഒപ്റ്റിമൈസേഷൻ ഒഴിവാക്കൽ + ഓട്ടോസ്റ്റാർട്ട് എന്നത് മുഴുവൻ ദിവസത്തെ വിശ്വാസ്യതയ്‌ക്ക് വേണ്ടിയുള്ള കഠിനമായ ആവശ്യകതകളാണ് — ഓപ്‌ഷണൽ എക്‌സ്‌ട്രാകളല്ല, ആവശ്യമായ ഓൺബോർഡിംഗ് ഘട്ടങ്ങളായി അവയെ പരിഗണിക്കുക.

ഇളവിലെ ഡ്രൈവറുടെ ഷിഫ്റ്റിൻ്റെ ആരംഭം ഗേറ്റ് ചെയ്യുക:

final ignoring = await tl.Tracelet.isIgnoringBatteryOptimizations(); final health = await tl.Tracelet.getSettingsHealth(); if (health['isAggressiveOem'] == true && !ignoring) { // Walk the user through showPowerManager() + battery-optimization exemption // BEFORE letting them go "on shift". }

OEM ട്രാക്കിംഗ് ത്രോട്ടിലാക്കിയതോ നശിപ്പിക്കപ്പെട്ടതോ എപ്പോൾ കണ്ടെത്തുന്നു

  • Tracelet.getHealth() — ഒരു കോൾ ട്രാക്കിംഗ് അവസ്ഥ, ദാതാവിൻ്റെ അവസ്ഥ, അനുമതി/അംഗീകാരം, പവർ-സേവ് മോഡ്, ബാറ്ററി-ഒപ്റ്റിമൈസേഷൻ ഒഴിവാക്കൽ, തീർച്ചപ്പെടുത്താത്ത സമന്വയിപ്പിക്കാത്ത എണ്ണം, സ്വയമേവ കണ്ടെത്തിയ മുന്നറിയിപ്പുകൾ എന്നിവ നൽകുന്നു. “ഡിവൈസ് ഹെൽത്ത്” ഡാഷ്‌ബോർഡിന് അനുയോജ്യമാണ്.
  • onProviderChange ഇവൻ്റുകൾ — ലൊക്കേഷൻ സേവനങ്ങൾ / ജിപിഎസ് നില മാറുമ്പോൾ തീ.
  • ബാക്ക്എൻഡ് സ്‌റ്റാലെനസ് വാച്ച്‌ഡോഗ് - ഓരോ ഫിക്സും ടൈംസ്റ്റാമ്പ് ചെയ്യുകയും നിലനിൽക്കുകയും ചെയ്യുന്നു, അതിനാൽ ഓരോ ഉപകരണത്തിൻ്റെയും അവസാന ഫിക്സ് ടൈം നിങ്ങളുടെ സെർവറിൽ പ്രതീക്ഷിക്കുന്ന കാഡൻസുമായി താരതമ്യം ചെയ്ത് മിനിറ്റുകൾക്കുള്ളിൽ സ്ട്രീം നിശബ്ദമായ ഒരു ഉപകരണം ഫ്ലാഗ് ചെയ്യുക (OEM കില്ലിൻ്റെ ക്ലാസിക് സിഗ്നേച്ചർ).

ദിവസം മുഴുവൻ ട്രാക്കുചെയ്യുന്നതിന് ശുപാർശചെയ്‌ത സജ്ജീകരണ ചെക്ക്‌ലിസ്റ്റ്

  1. വ്യക്തമായ യുക്തിസഹമായ ഒഴുക്കോടെ Always / പശ്ചാത്തല ലൊക്കേഷൻ അനുമതി അഭ്യർത്ഥിക്കുക.
  2. ഒരു ഫോർഗ്രൗണ്ട് സേവനം നിലവിലുള്ള അറിയിപ്പ് ഉപയോഗിച്ച് പ്രവർത്തിപ്പിക്കുക — തുടർച്ചയായ ട്രാക്കിംഗിന് വിലപേശാനാകില്ല.
  3. stopOnTerminate: false, startOnBoot: true എന്നിവ സജ്ജമാക്കുക, അങ്ങനെ ട്രാക്കിംഗ് ആപ്പ് അടച്ച് റീബൂട്ട് ചെയ്യുന്നതിനെ അതിജീവിക്കും.
  4. ഓൺബോർഡിംഗ് സമയത്ത്, getSettingsHealth()-ലേക്ക് വിളിക്കുക; isAggressiveOem ശരിയാണെങ്കിൽ, showPowerManager() കൂടാതെ ബാറ്ററി-ഒപ്റ്റിമൈസേഷൻ ഇളവിലൂടെ ഉപയോക്താവിനെ നടത്തുക. isIgnoringBatteryOptimizations()-ൽ ഗേറ്റ് ഷിഫ്റ്റ്-ആരംഭം.
  5. HTTP സമന്വയം (ബാച്ച് ചെയ്ത അപ്‌ലോഡുകൾ) ഉപയോഗിക്കുക, അതിനാൽ ഹ്രസ്വമായ നെറ്റ്‌വർക്ക് വിടവുകൾ ഒരിക്കലും ഡാറ്റ നഷ്‌ടമാകില്ല.
  6. ഒരു ബാക്കെൻഡ് സ്‌റ്റാലെനസ് വാച്ച്‌ഡോഗ് ചേർക്കുക, അതുവഴി ഒരു ഉപകരണം പെട്ടെന്ന് ഇരുണ്ടുപോകുന്നത് പ്രവർത്തനങ്ങൾക്ക് കാണാം.
  7. ഒരു മറഞ്ഞിരിക്കുന്ന പിന്തുണ സ്ക്രീനിൽ tracelet_doctor (അല്ലെങ്കിൽ getHealth()) അയയ്‌ക്കുക, അതിനാൽ യഥാർത്ഥ ഉപകരണങ്ങളിൽ ഫീൽഡ് പ്രശ്‌നങ്ങൾ കണ്ടെത്താനാകും.

പശ്ചാത്തല വിശ്വാസ്യത എന്നത് ഉപകരണവും റോം പതിപ്പും ആയതിനാൽ, ഏറ്റവും വിശ്വസനീയമായ “കേസ് സ്റ്റഡി” നിങ്ങളുടെ യഥാർത്ഥ ടാർഗെറ്റ് ഉപകരണ മിക്സിൽ ഒരു ദിവസത്തേക്ക് ഉദാഹരണ ആപ്പ് + tracelet_doctor പ്രവർത്തിപ്പിക്കുന്നു - ഇത് ഏതൊരു ബ്ലാങ്കറ്റ് ക്ലെയിമിനേക്കാളും മികച്ച രീതിയിൽ യഥാർത്ഥ ലോക സ്വഭാവത്തെ പ്രതിഫലിപ്പിക്കുന്നു.

Last updated on