Pokud váš mobil s Androidem Velmi rychle vybíjí baterii, i když se nepoužívá.Pokud se vám telefon v kapse zahřívá nebo se obrazovka občas sama zapne, téměř jistě máte problém s probuzením. Není to černá magie ani vadná baterie: jsou to aplikace, které udržují procesor nebo obrazovku vzhůru, když by systém měl být v hlubokém režimu.
Pozitivní stránkou je, že veškeré toto chování lze změnit. analyzovat, pochopit a výrazně snížitV tomto článku se dozvíte, co jsou wakelocky, jaké typy existují, jak s nimi Google nakládá ze strany vývojáře, jaké nástroje můžete jako uživatel použít k jejich identifikaci (GSam, BetterBatteryStats, příkazy ADB atd.), jak fungovaly klasické nástroje jako Wakelock Detector a jaké konkrétní kroky můžete podniknout k zastavení vybíjení baterie.
Co je to wakelock v systému Android a proč tolik ovlivňuje výdrž baterie?
V Androidu je wakelock v podstatě příkaz, který aplikace dává systému, aby zabránila jeho přechodu do režimu spánkuJe součástí služby správy napájení a byla vytvořena s dobrým úmyslem: umožnit určitým úlohám pokračovat v běhu i po vypnutí obrazovky nebo přepnutí telefonu do režimu spánku.
Preferovaný stav systému je tzv. hluboký spánek nebo hluboký spánekMaximální úspory baterie dosáhnete, když je obrazovka vypnutá a procesor téměř nic nedělá. Problém nastává, když je aplikace Nedbale používá wakelocky a udržuje CPU nebo obrazovku aktivní. mnohem déle, než je nutné.
Velmi zjednodušeně řečeno, wakelocky se dělí do dvou hlavních rodin, které ovlivňují autonomii různě:
- Částečný WakelockDíky tomu procesor běží i při vypnuté obrazovce. Používá se například k dokončení stahování, zpracování dat na pozadí nebo synchronizaci informací, aniž by systém proces ukončil.
- Celoobrazovkový nebo probuzený zámek (Celoobrazovkový zámek / Probuzený zámek): kromě udržování CPU aktivního, vynutí, aby obrazovka zůstala zapnutá nebo se zapnulaJe to mnohem agresivnější, protože obrazovka je jednou z komponent, které spotřebovávají nejvíce baterie.
Klasickým případem špatně spravovaného wakelocku byl Skype na některých zařízeních NexusAplikace nechala procesy fotoaparátu běžet na pozadí a spotřeba baterie prudce vzrostla, jako byste neustále nahrávali video, i když jste se telefonu nedotýkali.
Aplikace, která vyžaduje wakelock, není sama o sobě špatná; ve skutečnosti na ní závisí mnoho funkcí. Například při sledování videa YouTube nechává obrazovku zapnutou takže se nevypne uprostřed přehrávání. Problém nastává, když vývojář Neuvolní wakelock včas. nebo jej udržuje bez zjevného přínosu pro uživatele.
Příznaky, že máte wakelocky způsobující vybíjení baterie
Váš telefon obvykle dává poměrně jasné indicie, když něco drží systém vzhůru déle, než je nutné. Mezi typické chování spojené s problematickými wakelocky patří:
- Vypnutí obrazovky trvá dlouho I když je nakonfigurován krátký časový limit, panel zůstává svítit, i když se telefonu nedotýkáte.
- Telefon si sám zapne obrazovku.Vytáhnete ho z kapsy a zjistíte, že obrazovka je aktivní, nebo dokonce s otevřenou aplikací nebo omylem vytočeným hovorem.
- Velmi silné vybíjení baterie v klidovém stavuNecháte telefon hodinu na stole s vypnutou obrazovkou a když se na něj podíváte, vidíte vybíjení baterie, které nedává smysl.
- Zařízení je horké, i když ho nepoužíváteProcesor pokračuje v práci kvůli částečnému probuzení a generuje teplo, i když je panel vypnutý.
Tyto typy příznaků obvykle pocházejí z aplikací, které Běží na pozadí a nutí CPU nebo obrazovku zůstat aktivní.Nemusí se nutně jednat o škodlivé aplikace; často se jedná o špatně naprogramované aplikace, nadměrné konfigurace (například neustálé zálohování) nebo služby Google, které se příliš často probouzejí.
Jak Google řeší wakelocky: Android vitals a penalizace
Z pohledu vývojáře Google analyzuje používání wakelocků prostřednictvím Android vitals, řídicí panel výkonu konzole Google PlayTento systém shromažďuje anonymní data z milionů reálných zařízení, aby detekoval aplikace, které překračují limity spotřeby dat.

Android Vitals bere v úvahu, že aplikace dělá Nadměrné používání částečných wakelocků když součet všech nevyjímatelných wakelocků v aplikaci dosáhne přibližně 2 hodiny nebo více během 24 hodin To platí bez ohledu na to, zda vaše aplikace běží na pozadí nebo v popředí. Jinými slovy, pokud vaše aplikace udržuje procesor v probuzeném stavu příliš dlouho, když jej uživatel aktivně nepoužívá, obdržíte oznámení.
Abych byl spravedlivý, Google vylučuje určité wakelocky spojené s akcemi jasně iniciovanými uživatelemnapříklad přehrávání zvuku, aktivní využití polohy nebo úlohy naplánované pomocí JobScheduleru. Cílem není penalizovat rozumné funkce, pro které neexistuje lepší alternativa.
V konzoli pro vývojáře se zobrazuje panel s nadměrným probuzením. Které názvy wakelocků způsobují nejvíce problémů, jak dlouho trvají a v jakém procentu relací se objevují?Pokud více než přibližně 5 % relací aplikace za posledních 28 dní vykazuje nadměrný počet částečných probuzení, může to ovlivnit viditelnost aplikace na Google Play.
Jakmile aplikace přijme tento alarmový signál, klepne na Zkontrolujte kód, který tyto wakelocky získává, a opravte jeho použití.Přejděte na modernější API, která si sama řídí životní cyklus, přestaňte je používat, pokud nejsou nezbytná, nebo se ujistěte, že jsou vždy vydávána ve správný čas.
Nejlepší postupy pro wakelocky pro vývojáře Androidu
Klíčové API pro správu wakelocků v systému Android je PowerManager a jeho částečné zámkyČástečný wakelock se obvykle získá voláním acquire() con la marca PARTIAL_WAKE_LOCK nebo použitím API vyšší úrovně, která interně dělají přesně totéž.
Největším nepřítelem baterie je aplikace zapomeňte uvolnit wakelock pomocí release() nebo ho nechává zapnutý mnohem déle, než je nezbytně nutné. To brání zařízení v přechodu do režimu spánku a vede ke stížnostem, nízkému hodnocení a kritickým červeným metrikám systému Android.
Některá základní doporučení, jak se vyhnout narušení autonomie uživatelů, jsou:
- Vyhněte se přímým wakelockům, pokud existuje moderní alternativa.Mnoho úkolů, které dříve vyžadovaly wakelocky, je nyní řešeno pomocí WorkManageru, JobScheduleru, AlarmManageru s omezeními, FCM atd.
- Získejte wakelock co nejpozději a uvolněte ho, jakmile skončíte.Nemá smysl udržovat jej po celou dobu životního cyklu služby, pokud ho potřebujete pouze pro konkrétní operaci.
- Zohledněte aplikaci a stav uživatelePokud se uživatel odhlásí, ukončí hlavní aktivitu nebo zakáže funkci, není důvod udržovat procesor vzhůru.
- Testujte na reálných zařízeních a pravidelně kontrolujte důležité funkce systému AndroidPo změně kódu je vhodné sledovat chování wakelocku a nespoléhat se pouze na emulátor.
V mnoha případech uvidíte wakelocky přiřazené vašemu balíčku, i když jste si je explicitně nepožádali. To je obvykle způsobeno... Vysokoúrovňová API, která interně používají wakelocky Pro zajištění funkčnosti (přehrávání médií, stahování, umístění atd.). Pochopení toho, která komponenta se skrývá za každým názvem wakelocku, pomáhá při rozhodování, zda přepnout API nebo upravit konfiguraci.
Jak detekovat wakelocky na mobilním telefonu, pokud jste uživatel
Pokud jako průměrný uživatel chcete, Zjistěte, které aplikace probouzejí váš telefon a vybíjejí baterii.Máte několik možností. Android výrazně vylepšil informace o baterii v nastavení, ale stále můžete jít ještě o krok dál pomocí specifických nástrojů nebo pomocí ADB.
Nejprve zkontrolujte nabídku baterie systému
V novějších verzích Androidu je prvním místem, kde se dívat, Nastavení → Baterie. Tam uvidíte Které aplikace spotřebovávají nejvíce energie a kolik tak činí na pozadíAčkoli se slovo „wakelock“ nikde neobjevuje, nadměrná spotřeba baterie s vypnutou obrazovkou naznačuje aktivační zámek.
Ze stejné nabídky můžete na mnoha mobilních telefonech omezit používání konkrétních aplikací na pozadíSystém výrazně omezuje jejich svobodu, když se nepoužívají, a nepřímo tak snižuje dopad wakelocků, které generují. Buďte však opatrní; nadměrná omezení mohou snadno vést k problémům. Oznámení přicházejí pozdě nebo se ztrácejí synchronizace e-mail, zálohy nebo zasílání zpráv.
Monitorovací aplikace: GSam Battery Monitor a BetterBatteryStats
Přestože mnoho starších nástrojů zmizelo, stále existují aplikace, které... Zobrazují velmi podrobné informace o spotřebě a probuzení.Dva z nejznámějších jsou GSam Battery Monitor a BetterBatteryStats.
GSam vám umožňuje zkontrolovat, které aplikace jsou častější probouzení zařízení a jaké procento baterie spotřebovává každá součást (CPU, obrazovka, mobilní rádio, WiFi atd.). BetterBatteryStats, velmi populární na XDA, nabízí zobrazení zaměřená na wakelocky, alarmy a další systémové události, přičemž využívá zejména rootnutá zařízení.
S těmito typy aplikací můžete například zjistit, že specifická služba WhatsApp nebo Google Photos udržuje CPU aktivní nahrávat zálohy nebo zpracovávat úlohy ve frontě. S těmito informacemi nyní můžete zvážit změnu nastavení zálohování, vypnutí konkrétních funkcí nebo hledání jednodušších alternativ.
Zobrazení aktivních wakelocků pomocí ADB
Pokud dáváte přednost techničtějšímu přístupu nebo nechcete instalovat aplikace třetích stran, můžete se vždy uchýlit k ADB z počítačePo instalaci ADB a povolení ladění USB na vašem zařízení Android můžete spustit příkaz podobný tomuto:
adb shell dumpsys power | findstr -i wake_lock
V systému Linux nebo macOS budete muset změnit findstr podle grep filtrovat výstupVýsledkem bude seznam wakelocků aktuálně aktivních na zařízení, jejichž názvy obvykle odpovídají systémovým službám nebo komponentám nainstalovaných aplikací.

Tento seznam by mohl zahrnovat věci jako Služby DreamManagerService, WhatsApp SystemJobService nebo Fotky Google související se zálohami nebo naplánovanými úlohami. I když jsou názvy poněkud tajemné, stačí se podívat na balíček (například com.whatsapp) zjistit, která aplikace je za to zodpovědná, a rozhodnout se, zda má smysl, aby byla tak aktivní.
Detektor Wakelocku: klasický nástroj pro vyhledávání aplikací, které probouzejí procesor
Po léta bylo jedním z nejoblíbenějších využití tohoto tématu Detektor WakelockJeho úkol byl jednoduchý: vypsat, které aplikace udržují telefon v probuzeném stavu a jak dlouho, a to jak z hlediska využití procesoru, tak i obrazovky. Ačkoli je nyní ukončen a dobře se neadaptuje na novější verze Androidu, stojí za to mu porozumět, protože mnoho jeho nápadů bylo začleněno do jiných nástrojů.
Detektor Wakelocku ukázal Statistiky všech wakelocků zaznamenaných od posledního spuštěníseskupování dat ze stejné aplikace do rozbalitelného zobrazení pro snazší interpretaci. Ve výchozím nastavení je seřazeno podle doby probuzení CPU, přičemž nejpodezřelejší aplikace jsou uvedeny nahoře.
Mezi jeho nejvýznamnější funkce patřily:
- Oddělte wakelocky CPU (částečné) a obrazovky (úplné), s možností přepínání z jednoho typu na druhý z horní části rozhraní.
- Povolit řazení podle času probuzení, stavu běhu nebo názvucož výrazně pomohlo při lokalizaci nejproblematičtějších procesů.
- Červeně označte aplikace, které jsou v daném okamžiku aktivníaby na první pohled bylo možné identifikovat, co běží na pozadí.
- Zobrazit procento celkové doby, po kterou byl procesor vzhůru nebo v režimu spánku od posledního nabíjecího cyklu nebo restartu.
Doporučené použití bylo velmi jednoduché: bylo doporučeno Nabijte telefon nad 90 %, odpojte jej ze zásuvky nebo jej restartujte.Nechte to běžet normálně hodinu nebo dvě a poté spusťte Detektor probuzení. Aplikace, které se objevovaly na vrcholu žebříčku doby probuzení, byly obvykle viníky záhadných odtoků.
S příchodem Androidu KitKat společnost Google změnila způsob přístupu ke statistikám baterie a od té doby… Detektor Wakelocku vyžadoval pro plnou funkčnost root přístupVývojáři vydali LITE verzi, která se pokusila toto omezení obejít pomocí příkazů ADB nebo dokonce rozšíření pro Chrome, které aplikaci udělovalo oprávnění bez root přístupu, ale vyžadovalo to předchozí dodržení krátkého návodu.
Aplikace měla docela velký dopad: média jako XDA, HowToGeek, LifeHacker nebo DotTech Analyzovali to a mnoho pokročilých uživatelů to přijalo jako doplněk k základním informacím o baterii systému Android. Je však důležité poznamenat, že v současné době... zastaralé a bez údržbyProto na moderních mobilních telefonech může nabízet neúplná data nebo dokonce nefungovat.
Detektor Wakelocku – Šetřete baterii a další podobné přístupy
Kolem konceptu wakelocků se objevily i doplňkové aplikace, jako například Detektor Wakelocku – Šetřete bateriis poněkud odlišným zaměřením. Jeho cílem bylo identifikovat které služby nebo procesy v systému spotřebovávaly nejvíce energie, často kvůli častému připojení k internetu a neustálé aktivitě na pozadí.
Tato aplikace zobrazovala seznamy systémových procesů a uživatelských aplikací s uvedením jejich vlivu na výdrž baterie, aby uživatel mohl rychle zjistit, zda Gmail, WhatsApp nebo jiná aplikace zneužívala procesorObecná filozofie byla jasná: zobrazit informace a nechat každý, aby se rozhodl, zda aplikaci vynutí ukončení, změní nastavení nebo ji jednoduše odinstaluje.
Mezitím pokročilé nástroje jako ZesilovatTento modul pro Xposed umožňuje omezit frekvenci a trvání určitých probuzení a alarmůvelmi podrobným způsobem. Například lokalizační služby Google by mohly být nakonfigurovány tak, aby se aktivovaly každých 240 nebo 720 sekund, čímž by se snížil počet probuzení CPU.
Úprava systémových probuzených zámků však má svá rizika: Dotyk s nesprávnými procesy může narušit základní funkce z mobilních zařízení, takže tyto typy nástrojů se doporučují pouze zkušeným uživatelům, kteří velmi dobře vědí, co mění.
Monitorování používání wakelocku na starších rootnutých zařízeních Android
Na starších zařízeních nebo ve verzích jako Jelly Bean a KitKat se problém wakelocků stal ještě choulostivějším, protože Google omezil přístup k interním statistikámOd některých verzí Androidu mohly pouze aplikace s oprávněními root číst všechny informace o wakelocku, což po aktualizaci systému znemožnilo mnoho starších nástrojů.
Pokud byste měli root přístup, mohly by to udělat aplikace jako Wakelock Detector nebo BetterBatteryStats. zaznamenávat, kolikrát se CPU probudilo, jak dlouho zůstalo aktivní a jaké procesy se aktivovalyTam bylo například jasně vidět, jak Služby Google Play dokázaly probudit procesor každých 60 sekund a udržet ho aktivní pokaždé asi 15 sekund.
Když si to spočítáte, znamená to, že Každou hodinu mohl být procesor vzhůru asi 900 sekund. (15 minut) s vypnutou obrazovkou, a to výhradně kvůli špatně nastaveným službám Google. V extrémních případech telefon sotva přešel do hlubokého spánku a baterie se prudce vybila, aniž by uživatel pochopil proč.
Diagnostický proces byl podobný: monitorovací aplikace byla nainstalována, byla udělena potřebná oprávnění, telefon byl nabit, ponechán několik hodin bez většího používání a poté Bylo zkontrolováno, které wakelocky měly nadměrnou dobu provozuschopnosti.Pokud aplikace hromadila hodiny probuzeného provozu procesoru, bylo jasné, že je něco v nepořádku.
Co dělat, když zjistíte wakelocky, které vybíjejí baterii
Jakmile identifikujete aplikace, které váš telefon nejvíce probouzejí, je čas jednat. Nejúčinnější opatření je obvykle to nejzřejmější: odinstalujte nebo deaktivujte problematické aplikaceza předpokladu, že nejsou nezbytné.
Pokud je nemůžete nebo nechcete smazat, máte několik možností v Nastavení → Aplikace → [Název aplikace]. Tam můžete Omezte jeho aktivitu na pozadí, odeberte oprávnění, která nepotřebujete, nebo zabraňte jeho automatickému spuštění.V mnoha případech to stačí k ochočení aplikací, které celý den probouzejí procesor.
Pokud mluvíme o starších telefonech nebo telefonech s velmi agresivním uživatelským rozhraním, mohlo by dávat smysl použít nástroje jako Greenify nebo SD Maid Chcete-li hibernovat aplikace, které používáte jen zřídka, ale neustále probouzejí systém. V některých pokročilých scénářích a vždy s velkou opatrností můžete dokonce zmrazit systémový bloatware, o kterém je známo, že není nezbytný, i když to platí pro uživatele s root přístupem, kteří si chtějí s ním pohrát.
Je třeba si to pamatovat Pokud to přeženete s omezením aplikací pro zasílání zpráv, e-mailů nebo zálohMohli byste přijít o oznámení v reálném čase nebo některé synchronizační funkce. Cílem je najít rozumnou rovnováhu mezi výdrží baterie a funkčností, ne proměnit telefon v ultravýkonnou cihlu.
Pochopení toho, co jsou wakelocky, jak se vaše aplikace chovají a jaké nástroje máte k dispozici k jejich monitorování, vám poskytne mnohem větší kontrolu nad výdrží baterie vašeho AndroiduIdentifikací aplikací, které zneužívají udržování procesoru nebo obrazovky v probuzeném stavu, úpravou jejich nastavení, omezením aktivity na pozadí nebo hledáním optimalizovanějších alternativ je zcela možné omezit tyto záhadné vyčerpávání a výrazně prodloužit dobu strávenou u obrazovky každý den.


