• Proč android nejde spát. Jak vypnout režim spánku v aplikacích pro Android. Režimy úspory energie Android

    Všechny smartphony a tablety se systémem Android mají nastavenou dobu, po které se stroj přepne do režimu spánku. Většina zařízení přejde do režimu spánku po 30 sekundách nečinnosti uživatele. Tento čas je nastaven ve výchozím nastavení, ale ne každý má dostatek času na čtení a prohlížení obsahu. V nastavení ji můžete zvýšit a pro úplné vypnutí časového limitu obrazovky budete muset aktivovat možnost v sekci „Pro vývojáře“ nebo použít speciální aplikaci.

    Tak krátká doba, než obrazovka zhasne ze dvou důvodů. Jednak z bezpečnostních důvodů – aby nikdo nemohl zařízení používat bez vědomí majitele, pokud jej nezablokoval. A druhý důvod spočívá v úspoře energie baterie.

    Podsvícení displeje totiž vybíjí baterii smartphonu, takže výrazné prodloužení doby, po které obrazovka zhasne, zkrátí provozní dobu zařízení na jedno nabití. Zde stojí za to najít „zlatý průměr“ – nastavte si časový limit tak, abyste se s telefonem cítili pohodlně, a zároveň aby ​​zařízení půl hodiny nefungovalo, pokud zapomenete stisknout tlačítko zámku.

    Proto je nejlepší zakázat zobrazení „usínání“ pouze v nezbytných programech a nastavit hodnotu timeoutu pro celý systém do jedné až dvou minut. Jak to udělat, je popsáno dále v článku.

    Další související pokyny:

    Nastavení režimu spánku v systému Android

    Na jakémkoli smartphonu Android lze časový limit obrazovky upravit v nastavení. Chcete-li to provést, přejděte do sekce "Obrazovka", na novějších verzích Androidu klikněte na "Upřesnit" a otevřete "Režim spánku".

    V MIUI na Xiaomi se položka „Režim spánku“ nachází v části „Zámek a ochrana“.

    Nyní vyberte dobu nečinnosti, po které bude zařízení uzamčeno.

    Na Androidu nelze časový limit úplně vypnout (maximálně můžete nastavit 30 minut). Ale tato možnost je přítomna ve firmwaru, například: v MIUI na smartphonech Xiaomi a v EMUI na telefonech Huawei a Honor.

    Ale v sekci pro Android a firmware je položka "Nevypínat obrazovku." Pokud jej aktivujete, zařízení během dobíjení nepřejde do režimu spánku.

    Jak vypnout režim spánku v aplikacích pomocí programu Stay Alive!

    Vývojáři třetích stran vytvořili desítky speciálních programů, které umožňují zakázat časový limit během nabíjení, pro celý systém nebo pro jednotlivé aplikace. V druhém případě se displej nevypne při spuštění nebo spuštění aplikací na pozadí, které si uživatel vybral.

    Jedním z nejlepších programů svého druhu je Stay Alive! . V jeho bezplatné verzi jsou přitom k dispozici všechny potřebné funkce – budeme ji využívat. Na nových verzích Androidu 5 budete muset po instalaci aplikace povolit přístup k historii používání. Při prvním spuštění programu se objeví varovné okno - kliknutím na tlačítko "OK" přejdete do sekce "Přístup k datům" a již tam můžete vybrat Stay Alive! a poskytují přístup k historii používání.

    Pokud jste ignorovali zprávu, která se objevila při prvním spuštění Stay Alive!, můžete přejít do sekce „Přístup k datům“ následovně: přejděte do „Nastavení“ → „Aplikace a upozornění“, v případě potřeby klikněte na „Upřesnit“ a vyberte "Zvláštní přístup". Je zde položka „Přístup k datům“.

    V MIUI se položka nazývá „Aplikace s přístupem k datům“ a nachází se v sekci „Správa zařízení“ na cestě: „Nastavení“ → „Pokročilá nastavení“ → „Soukromí“.

    Na chytrých telefonech Huawei a Honor, abyste mohli zůstat naživu! Chcete-li mít přehled o tom, které aplikace používáte, otevřete nabídku nastavení a přejděte na Zabezpečení a soukromí → Pokročilá nastavení → Přístup ke statistikám využití. Vyberte možnost Zůstat naživu! a aktivujte přepínač "Track Usage".

    Po prvním spuštění aplikace a udělení požadovaného oprávnění Zůstaňte naživu! začne pracovat a smartphone již nepřejde do režimu spánku. Ve výchozím nastavení bude povolena možnost „Ponechat obrazovku zapnutou během nabíjení a baterie“ a časový limit bude zcela zakázán. Chcete-li zabránit tomu, aby se obrazovka vypínala pouze během nabíjení, vyberte „Ponechat obrazovku zapnutou během nabíjení“ a pokud chcete program pozastavit, klikněte na „Pause Stay Alive!“.

    Také s programem Stay Alive! Zámek zařízení můžete vypnout, když určité aplikace běží nebo běží na pozadí. Chcete-li to provést, aktivujte funkci „Povolit vybrané aplikace“ a vyberte možnost „Ponechat obrazovku zapnutou POUZE pro vybrané aplikace“. Poté otevřete "Vyberte aplikace, které zůstanou naživu!" a označte požadované programy. Pro snazší hledání aplikací můžete použít vyhledávání.

    Aby zařízení při běhu vybraných aplikací „neuspalo“, musí být také aktivován jeden ze dvou režimů: „Ponechat obrazovku zapnutou během nabíjení“ nebo „Ponechat obrazovku zapnutou během nabíjení a baterie“. Pokud je vybráno "Pause Stay Alive!", program nebude fungovat.

    Chcete-li zakázat časový limit pro celý systém, s výjimkou určitých aplikací, vyberte možnost „Ponechat obrazovku na KROMĚ vybraných aplikací“, otevřete seznam programů (klikněte na „Vybrat aplikace, které zůstanou naživu!“) a zaškrtněte ty, které potřebujete.

    Aby se snížila spotřeba baterie při vypnutém režimu spánku, vývojář Stay Alive! přidána funkce „Povolit ztmavení obrazovky“. Pokud ji aktivujete, obrazovka ztmavne, ale nezhasne.

    Honor 6 je vybaven nevyjímatelnou lithium-polymerovou baterií s kapacitou 3100 mAh (11,5 Wh). Kapacita baterie není rekordní, ale velmi dobrá a dostačující pro zajištění dlouhé výdrže baterie.

    V softwaru Honor 6 je velké množství nastavení spotřeby energie. V nabídce Energy Saving si můžete vybrat jeden ze tří profilů spotřeby energie – Performance, Smart a Energy Saving. Smartphone zároveň předpovídá zbývající provozní dobu v každém z režimů.

    Režim úspory energie v Honor 6 je implementován velmi zajímavým způsobem. Blokuje téměř všechny funkce telefonu kromě volání, SMS a přístupu ke kontaktům. V tomto režimu ale smartphone funguje velmi dlouho. To je dobré řešení pro chvíle, kdy je baterie téměř vybitá, a rozhodně musíte zůstat v kontaktu. Současně, když nabití baterie klesne na kriticky nízkou úroveň, smartphone vás sám vyzve k přepnutí do úsporného režimu, uživatel si může zvolit práh pro spuštění tohoto varování (8, 20 nebo 30 procent).

    Kvůli agresivnímu nastavení vestavěný správce napájení často zavírá aplikace běžící na pozadí. Pod distribuci mohou spadat také aplikace pro zasílání zpráv (například Viber). Uživatel však může ručně určit, které aplikace mají být chráněny před uzavřením v režimu spánku. Tuto možnost jsem například povolil pro Viber na svém Honoru 6.

    Nakonec je v nabídce speciální režim, který se z nějakého důvodu v ruské verzi rozhraní nazývá „Screensaver“ (v ukrajinštině je to „Ekonomický režim robotů“). V tomto režimu smartphone kreslí a zobrazuje grafiku v rozlišení 1280x720, což má za následek zvýšení výkonu a snížení spotřeby energie. Pravda, přehlednost malých písem poněkud trpí.

    V režimu vyváženého napájení může Honor 6 vydržet asi dva dny se třemi hodinami obrazovky denně. To je velmi hodný výsledek. Pokud na smartphonu hrajete hry, tak se provozní doba očekávaně zkracuje, ale i v tomto případě zařízení bez problémů přežije až do večera.

    Překlad... Přeložit Čínština (zjednodušená) Čínština (tradiční) Angličtina Francouzština Němčina Italština Portugalština Ruština Španělština Turečtina

    Bohužel tyto informace momentálně nejsme schopni přeložit – zkuste to prosím znovu později.

    Christopher Bird

    Správa napájení v operačním systému Android - Zámek spánku

    Pravděpodobně se mnozí setkali se situací, kdy mobilní zařízení nemůže fungovat na jedno nabití baterie po celý den. Všichni chápou celou nepříjemnost situace, kdy se telefon do konce pracovního dne promění v zbytečnou cihlu. Moderní aplikace umožňují provádět úkoly na chytrých telefonech, které dříve vyžadovaly počítač. Pokud ale srovnáme smartphony s PC, tak ty se díky výrazně menší velikosti liší i výrazně nižší kapacitou baterie. Telefon tedy musí mít de facto funkčnost notebooku, ale zároveň – a to je velmi přísný požadavek – musí fungovat na baterii bez dobíjení po dostatečně dlouhou dobu.

    Androidu a dalším mobilním operačním systémům se podařilo dosáhnout dlouhé výdrže baterie pomocí agresivního modelu řízení spotřeby. Po určité době po použití telefonu se obrazovka vypne a CPU přejde do režimu nízké spotřeby. Když se tedy telefon nepoužívá, spotřebovává se poměrně dost energie. Díky tomuto přístupu mohou telefony v pohotovostním režimu fungovat bez nabíjení několik dní. Správce napájení Android je postaven na následujícím, vcelku logickém principu: při zhasnutí obrazovky se vypne i CPU.

    Vývojáři Androidu však poskytli možnost zabránit tomu, aby zařízení s tímto OS přešla do režimu spánku. V některých případech můžete chtít, aby CPU zůstal aktivní, i když je obrazovka vypnutá, nebo můžete chtít zabránit automatickému vypínání obrazovky při provádění určitých úkolů. Za tímto účelem zahrnuli vývojáři Google* do PowerManager API takzvané spánkové zámky. Tohoto blokování mohou využít aplikace, které se potřebují vyhnout „uspání“ zařízení. Zatímco má systém aktivní zámek spánku, zařízení nebude moci „uspat“, tedy přejít do pohotovostního režimu (dokud se zámek neuvolní). Při používání zámků spánku je důležité pochopit, že tyto zámky musíte správně uvolnit, když nejsou potřeba. V opačném případě se baterie zařízení rychle posadí: zařízení se přece nebude moci vrátit do stavu snížené spotřeby energie.

    Tento článek popisuje některé aplikace pro Android, které používají zámky spánku v systému Android 4.0. Článek také popisuje aplikaci "Wakelocks" ze sady SDPSamples, která demonstruje implementaci zámků spánku v kódu.

    Použití zámků spánku podle aplikací

    Na Androidu můžete vidět, které služby drží zámky spánku a brání systému v přechodu do jednoho z úsporných režimů. Soubor /proc/wakelocks v zařízení obsahuje seznam služeb a ovladačů, které používají funkce wakelock. Sledováním obsahu souboru /sys/power/wake_lock (vyžaduje přístup root) můžete zjistit, zda existuje zámek prostředků CPU a která služba drží zámek wakelock2. Na svém smartphonu Galaxy Nexus se systémem Android 4.0 jsem zaznamenal několik uzamčení:

    Stůl: Použití zámků spánku v aplikacích pro Android

    Aplikace YouTube a Music jsou dobrými příklady použití bloků spánku na různých úrovních. Aplikace YouTube zachytí zámek spánku, když uživatel sleduje streamované video. Během celého přehrávání videa zůstává obrazovka zapnutá (bez ohledu na nastavení obrazovky nastavená v systému). Pokud však uživatel během přehrávání stiskne tlačítko napájení, zařízení přejde do režimu spánku: obrazovka se vypne a přehrávání zvuku a videa se zastaví. Aplikace Hudba používá při přehrávání zvuku jiný zámek spánku. Nastavení obrazovky se nezmění, takže obrazovka zařízení se vypne podle nakonfigurovaných nastavení. Ale i když je obrazovka vypnutá, zámek spánku zabrání vypnutí CPU, takže přehrávání hudby pokračuje, i když uživatel stiskne tlačítko napájení.

    Výběr typu blokování

    Než začnete psát kód pro spánkové zámky, musíte pochopit, jaké typy spánkových zámků existují, abyste mohli vybrat nejvhodnější typ pro použití ve vaší aplikaci. Android PowerManager API popisuje různé dostupné příznaky uzamčení, které mění stav napájení zařízení:

    Hodnota vlajkyprocesorObrazovkaPodsvícení klávesnice
    PARTIAL_WAKE_LOCKNaVypnutoVypnuto
    SCREEN_DIM_WAKE_LOCKNaOmdlelVypnuto
    SCREEN_BRIGHT_WAKE_LOCKNaplný jasVypnuto
    FULL_WAKE_LOCKNaplný jasplný jas

    Stůl: Z rozhraní Android PowerManager API.

    Vezměte prosím na vědomí, že zámky spánku výrazně snižují výdrž baterie zařízení Android, takže zámky spánku byste neměli používat, pokud se bez nich obejdete. Pokud je to možné, měly by být odstraněny co nejdříve.

    Aplikace využívající blokování spánku si k tomu musí vyžádat speciální povolení. To se provádí pomocí oprávnění android.permission.WAKE_LOCK v souboru manifestu aplikace. To znamená, že i když si uživatel nainstaluje aplikaci pro blokování spánku pomocí Google Play, uživatelé obdrží varování, že aplikace obsahuje součásti, které mohou bránit telefonu ve „uspání“. Pokud chcete zabránit ztmavení obrazovky během konkrétní akce aplikace, můžete to udělat způsobem, který nevyžaduje zvláštní oprávnění. WindowManager má proměnnou FLAG_KEEP_SCREEN_ON, kterou lze nastavit, pokud metoda zobrazení aplikace potřebuje zachovat zapnutou obrazovku. Doporučuje se používat tento přístup k ovládání obrazovky, protože k jeho účinku dochází pouze v rámci aplikace. Když uživatel přepne na jinou aplikaci, WindowManager uvolní zámek spánku.

    Ponechání zapnuté obrazovky (ze sady SDPSamples)

    Aplikace WakeLock od SDPSamples demonstruje, že aplikace může udržet obrazovku zapnutou pomocí Správce oken, aniž by musela psát kód zámku spánku. Spusťte aplikaci WakeLock a vyberte položku seznamu „Win Man Screen On“.

    Dokud je na stavovém řádku tlačítka uvedeno „Obrazovka je ZAMKNUTÁ“, obrazovka bude zapnutá. Pokud stavový řádek tlačítka obsahuje text „Obrazovka je odemčena“, po 5 sekundách nečinnosti se obrazovka vypne.

    V kódu to dělá funkce screenLockUpdateState() v souboru WakeLockActivity.java nastavením a zrušením FLAG_KEEP_SCREEN_ON pro aktuální okno při každém kliknutí na tlačítko a změně stavu.

    Public void screenLockUpdateState() ( if (mIsDisplayLocked) ( ... // aktualizace stavu zobrazení getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); ) else ( ... // aktualizace stavu zobrazení getWindow().clearFlags(WindowManager .LayoutParams.FLAG_KEEP_SCREEN_ON); ) )

    Implementace blokování spánku

    Aplikace SDPSamples WakeLock implementuje různé typy zámků spánku. Po spuštění aplikace WakeLock vybereme jeden ze 4 typů zámků spánku: Power Wake Lock Full, Power Wake Lock Bright, Power Wake Lock Dim a Power Wake Lock Partial. Tyto 4 možnosti odpovídají 4 příznakům blokování spánku popsaným v PowerManager API. Každý prvek demonstruje reakci zařízení na pokus o vypnutí obrazovky po 5 sekundách.

    Sledováním obsahu souboru /sys/power/wake_lock (vyžaduje přístup root) můžete vidět, že po stisknutí tlačítka napájení je zachován pouze zámek spánku PARTIAL_WAKE_LOCK. Zbývající zámky spánku vám neumožňují úplně vypnout obrazovku: pokračuje v práci s jednou nebo jinou úrovní jasu.

    Při psaní kódu blokování spánku musíte nejprve požádat o povolení k jejich použití v souboru AndroidManifest.xml:

    Poté můžete vytvořit objekt WakeLock obsahující funkce purchase() a release() pro správu zámku spánku. Dobrý příklad je v souboru WakeLockActivity.java:

    Public void onCreate(Bundle savedInstanceState) ( ... mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE); ... mWakeLock = mPowerManager.newWakeLock(mWakeLockState, "UMSE PowerTest"); if (mWakellWMake) (mWakellWLock) != získat(); ... ) ) chráněno void onDestroy() ( if (mWakeLock != null) ( mWakeLock.release(); mWakeLock = null; ) ... )

    Závěr

    Zámek spánku je funkce systému Android, která umožňuje vývojářům změnit výchozí stav napájení zařízení. Nebezpečí používání zámků spánku v aplikacích spočívá v předčasné spotřebě energie baterie. Některé jasné výhody zámků spánku jsou patrné v řadě standardních aplikací Google, jako je navigace nebo přehrávání hudby a videa. Je na každém vývojáři aplikace, aby rozhodl, zda jsou zámky spánku vhodné nebo ne.

    o autorovi

    Christopher Bird zahájil svou kariéru u Intel SSG v roce 2007 a podílí se na budování ekosystému zařízení založeného na Atomu (telefony a tablety)

    Referenční materiály

    2 LWN – „Zámky probuzení a vestavěný problém“: http://lwn.net/Articles/318611/

    Poznámky

    INFORMACE V TOMTO DOKUMENTU JSOU POUZE PRO PRODUKTY INTEL. TENTO DOKUMENT NEUDĚLUJE ŽÁDNÉ VÝSLOVNÉ ANI PŘEDPOKLÁDANÉ LICENCE, NÁMITKU ANI JINÁ PRÁVA K DUŠEVNÍMU VLASTNICTVÍ. S výjimkou případů uvedených v podmínkách a pravidlech prodeje takových produktů společnost Intel nenese žádnou odpovědnost a odmítá zjevné nebo předpokládané záruky za prodej a/nebo používání svých produktů, včetně záruk nebo záruk jejich vhodnosti pro konkrétní účel, zajištění zisku nebo porušení, které -BUĎ PATENTY, AUTORSKÁ PRÁVA NEBO JINÁ PRÁVA DUŠEVNÍHO VLASTNICTVÍ.

    S VÝJIMKOU PÍSEMNÉ DOHODY SE SPOLEČNOSTÍ INTEL NEJSOU PRODUKTY INTEL URČENY K POUŽÍVÁNÍ, KDE MŮŽE JEJICH VADA MÍT ZA NÁSLEDEK ZRANĚNÍ NEBO SMRT.

    Společnost Intel si vyhrazuje právo bez upozornění změnit specifikace a popisy svých produktů. Návrháři by se neměli spoléhat na chybějící charakteristiky nebo charakteristiky označené jako „rezervováno“ nebo „nedefinováno“. Tyto funkce jsou vyhrazeny společností Intel pro budoucí použití a nelze zaručit, že budou bez konfliktů s kompatibilitou. Informace v tomto dokumentu se mohou bez upozornění změnit. Tyto informace nepoužívejte ve finálním návrhu.

    Produkty popsané v tomto dokumentu mohou obsahovat chyby a nepřesnosti, které mohou způsobit, že se skutečné vlastnosti produktů budou lišit od zde uvedených. Již identifikované chyby mohou být poskytnuty na vyžádání. Před zadáním objednávky získejte nejnovější specifikace od místní prodejní kanceláře Intel nebo místního distributora.

    Číslované kopie dokumentů uvedených v tomto dokumentu a dalších materiálech Intel si můžete objednat na telefonním čísle 1-800-548-4725 nebo stáhnout z http://www.intel.com/design/literature.htm

    Software a pracovní zátěže použité v testech výkonu mohly být optimalizovány pro vysoký výkon na mikroprocesorech Intel. Srovnávací testy, jako jsou SYSmark a MobileMark, se provádějí na konkrétních počítačových systémech, součástech, programech, operacích a funkcích. Jakékoli změny kteréhokoli z těchto prvků mohou změnit výsledky. Při výběru produktů ke koupi je třeba konzultovat další informace a testy výkonu, včetně testů výkonu konkrétního produktu v kombinaci s jinými produkty.

    Tento dokument a software v něm popsaný jsou poskytovány na základě licence a lze je používat a distribuovat pouze v souladu s podmínkami licence.

    Intel® a logo Intel jsou ochranné známky společnosti Intel Corporation v USA a/nebo dalších zemích.

    Copyright © 2012 Intel Corporation. Všechna práva vyhrazena.

    *Další názvy a ochranné známky mohou být majetkem třetích stran.

    Přechod mobilního zařízení do režimu spánku znamená, že se displej automaticky vypne, když je gadget po určitou dobu neaktivní. Tato funkce byla implementována za účelem úspory energie baterie telefonu.

    Chcete-li povolit nebo zakázat režim spánku v systému Android, musíte přejít do příslušných nastavení. V závislosti na modelu smartphonu se poněkud liší, i když ne výrazně.

    Jak to udělat

    Když bude nutné povolit/zakázat režim spánku v systému Android, musíte přejít do hlavní nabídky nastavení telefonu a najít možnost „Zobrazení“ nebo „Obrazovka“. Kliknutím na tento odkaz se zobrazí karta Režim spánku. Tím se nastaví časový interval, po kterém zařízení v systému Android automaticky přejde do režimu spánku. Zaškrtnutím políčka „Nikdy“ deaktivujete schopnost zařízení pracovat v režimu spánku, takže bude aktivní po celou dobu, kdy telefon nikdo nepoužívá.

    Možné problémy

    Někdy nastanou situace, kdy je potřeba vypnout displej mobilního zařízení bez aktivace režimu spánku. Standardní možností je úspora baterie smartphonu, když je připojen k televizi pomocí HDMI kabelu.

    Hlavním problémem je, že pokud vypnete smartphone, nebude napájení procházet kabelem HDMI, což má za následek vyblednutí televizní obrazovky, protože telefon je v režimu spánku. Uveďme ještě 1 příklad – spouští se na tabletu. Klávesnice nebo myš se pak připojí k zařízení pomocí dokovací stanice. Obraz se zobrazí na obrazovce. Zmíněný problém se opakuje. Obrazovku telefonu nemůžete vypnout, aniž byste přešli do režimu spánku. Pokud nic neuděláte, smartphone se rychle vybije. Problém nelze vyřešit standardním nastavením.

    Řešení

    Musíte si jej stáhnout pod názvem Screen Standby. Pomocí programu můžete vypnout displej, když je telefon plně funkční. Aplikaci si můžete zdarma stáhnout prostřednictvím služby Google Play.

    Od této chvíle můžete připojením telefonu k televizi sledovat filmy, spouštět herní aplikace a surfovat po internetu na velké obrazovce. Výrazně šetří poplatky. Rádi bychom poznamenali, že v současné době neexistují žádné důstojné analogy tohoto softwaru. Aby nástroj správně fungoval, musí být nastavena přístupová práva root. Pomocí funkce Screen Standby můžete po připojení kabelu HDMI automaticky vypnout podsvícení a také přepnout displej telefonu do režimu touchpadu.

    Kdysi dávno, když Android ještě nebyl mainstream, mohl každý vývojář napsat aplikaci, která by mohla tiše viset na pozadí a komunikovat se serverem v reálném čase. Čím dále, tím přísnější techniky úspory energie však Google používá a dnes již nelze tak jednoduše implementovat síťovou aplikaci v reálném čase. Existuje však několik triků, které vám to umožní.

    Představme si, že máme aplikaci a ta má zase službu (službu), která musí neustále viset na pozadí, zpracovávat příkazy přijaté ze síťového serveru a odesílat odpovědi. Komunikace se serverem, jak by měla být pro mobilní zařízení, je udržována pomocí dlouhých dotazovacích požadavků, to znamená, že se aplikace připojí ke vzdálenému serveru a čeká, až něco odešle jako odpověď, a pak se znovu připojí a znovu čeká. Jedná se o efektivní a baterii velmi šetřící metodu, která se také používá v mechanismu push notifikace samotného Androidu.

    Teoreticky vše vypadá skvěle, architektura aplikace je naprosto správná, ale pokud ji začnete testovat, odhalí se několik velmi nepříjemných momentů.

    Režimy úspory energie Android

    V Androidu 4.4-5.1 (nebudeme uvažovat o verzích níže - rychle se stávají zastaralými) služba bude fungovat a okamžitě reagovat na požadavky serveru, ale pouze tak dlouho, dokud je obrazovka zapnutá. Pár sekund po zhasnutí obrazovky přejde smartphone do režimu spánku (suspend) a interval mezi odesláním požadavku a odpovědí naší aplikace bude asi minutu. Toto je období mezi údržbovými probuzeními zařízení a nemůžeme ho ovlivnit.

    V Androidu 6.0–7.1 bude situace přibližně stejná, ale zhruba po hodině se smartphone přepne na tzv. Poté buď odpověď z aplikace neobdržíte vůbec, nebo ji můžete obdržet o hodinu či dvě později. A to vše proto, že v režimu Doze smartphone ve skutečnosti neumožňuje fungování aplikací třetích stran a jejich služeb a zcela odřízne jejich přístup k webu. Ovládat mohou pouze na krátkou dobu po hodině po vstupu do režimu Zdřímnutí, poté dvě hodiny, čtyři hodiny s prodlužujícími se intervaly mezi probuzeními.

    Dobrou zprávou je, že Doze funguje v celém systému a zapne se hodinu po vypnutí obrazovky a pouze v případě, že se smartphonu nedotknete (ve verzi 7.0–7.1 se ho můžete dotknout), a vypne se okamžitě po odemknutí smartphonu, připojení k nabíječce nebo přemístění smartphonu (opět ne ve verzi 7.0–7.1). To znamená, že můžeme doufat, že alespoň přes den bude naše služba fungovat normálně.

    Špatnou zprávou je, že kromě Doze má Android 6.0-7.1 další mechanismus pro úsporu energie zvaný App Standby. Funguje to takto: systém sleduje, jaké aplikace uživatel používá, a na zřídka používané aplikace aplikuje stejná omezení jako v případě režimu Doze. Po připojení k nabíječce obdrží všechny aplikace převedené do pohotovostního režimu amnestii. Aplikace, které mají práva pro oznámení nebo administrátora (jiný než root), nemají použit režim Standby.

    Celkově má ​​Android tři mechanismy najednou, se kterými se musíte vypořádat:

    • Pozastavení - normální režim úspory energie, může zpomalit odezvu zařízení asi o jednu minutu;
    • App Standby – agresivní režim úspory energie, který může zpomalit odezvu na jeden den;
    • Doze je agresivní režim úspory energie v celém systému, který platí pro všechny aplikace.

    Všechny tyto režimy úspory energie lze obejít, ale čím dále do lesa, tím více berliček a nepříjemností pro uživatele, takže zvážíme několik možností, jak mechanismy úspory energie obejít, od těch nejlehčích až po hardcore.

    Scénář 1. Mírné zpoždění v reakci není kritické, přechod do režimu Doze není kritický

    V tomto scénáři máte aplikaci, pro kterou není zpoždění odezvy až jedna minuta kritické, a přechod smartphonu do agresivního režimu úspory energie není vůbec děsivý. Stačí, aby systém neodesílal aplikaci do pohotovostního stavu.

    Dva nejjednodušší způsoby, jak toho dosáhnout, jsou buď přenést službu do služby v popředí, nebo dát aplikačnímu zařízení administrátorská práva. Začněme první možností.

    Služba na popředí

    Služba popředí v terminologii Androidu je služba, která má upozornění v závěsu. Systém s takovými službami zachází mnohem opatrněji. Například při nedostatku paměti se zabíjí jako poslední, nezabije se při přetažení aplikace v menu pro správu spuštěných aplikací a ano, neuvede se do pohotovostního režimu.

    Vytvoření služby na popředí je velmi jednoduché. Do kódu služby stačí vložit něco jako následující řádky:

    Intent notificationIntent = new Intent(this, ExampleActivity.class); pendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); Notification notification = new Notification.Builder(this) .setContentTitle(getText(R.string.notification_title)) .setContentText(getText(R.string.notification_message)) .setSmallIcon(R.drawable.icon) .setContentIntent(pendingIntent) .setTicker (getText(R.string.ticker_text)) .build(); startForeground(0, oznámení);

    Tento příklad vytvoří oznámení, po klepnutí, na které bude ExampleActivity spuštěna, na konci pomocí startForeground() se služba převede do stavu popředí.

    Práva správce

    Další možností je udělit aplikaci administrátorská práva. Taková práva poskytují možnost spravovat zásady hesla zamykací obrazovky, vzdálené zamykání a vymazání zařízení.

    Google svého času představil koncept „správce zařízení“ pro společnosti, které by chtěly spravovat smartphony svých zaměstnanců. To znamená, že společnost vytvoří aplikaci, která získá administrátorská práva a po příkazu ze serveru může telefon uzamknout nebo resetovat. To je důvod, proč aplikace s právy správce nepřejde do pohotovostního režimu, protože příkaz k uzamčení může přijít kdykoli.

    Získání, či spíše vyžádání administrátorských práv je opět jednoduché. Nejprve potřebujeme několik zpětných volání, která budou volána po udělení nebo zrušení oprávnění:

    Pokračování dostupné pouze pro předplatitele

    Možnost 1. Chcete-li si přečíst všechny materiály na webu, přihlaste se k odběru „Hacker“.

    Předplatné vám umožní číst VŠECHNY placené materiály webu během stanoveného období. Přijímáme platby bankovními kartami, elektronickými penězi a převody z účtů mobilních operátorů.