8 Minutės
Ar kada nors atidarėte programėlę, įsidėjote telefoną atgal į kišenę ir po to pagalvojote, kodėl akumuliatoriaus lygis staiga nukrito? Google lažinasi, kad tokią nusivylimą galima ištaisyti pačiu paprasčiausiu būdu: užklijuojant įspėjamąjį lipduką būtent ten, kur tai skaudžiausia — programėlės Play parduotuvės puslapyje.
Pradedant diegimu, kuris prasidėjo kovo 1 d., Google teigia, kad taiko tai, ką vadina „wake lock techninėmis kokybės priemonėmis“ programėlėms, kurios fone laiko įrenginius budrius ir sparčiai ryja energiją. Praktinis rezultatas — sunkiai nepastebimas. Programėlės, kurios pakartotinai viršija Google nustatytas baterijos išeikvojimo ribas, gali matyti savo Play parduotuvės rodymą nuvertintą — tai reiškia matomus įspėjimus sąrašuose ir galimą išimtį iš rekomendacijų.
Įspėjimas, kurio kūrėjai nenori, kad naudotojai pamatytų
Google net pateikė pavyzdį, kaip tai atrodys realybėje: ryškus raudonas pranešimas, pateiktas po programėlės atsisiuntimų, reitingo ir komentarų skiltimis, kuriame rašoma: „Ši programėlė gali naudoti daugiau akumuliatoriaus nei tikėtasi dėl intensyvios fono veiklos.“
Bet kuriam žmogui, ieškančiam naujos utilitės ar žaidimo, toks raudonas signalas reiškia, kad sprendimas atsisiųsti gali būti priimtas per kelias sekundes. Ir tai yra tikslas. Google nebėra vien tik nurodynių rinkėjas — ji įtraukia baterijos našumą į pirkimo patirtį.
Tačiau ne kiekviena programėlė, kuri naudoja energiją fone, yra automatiškai „bloga“. Google vykdymas susietas su specifiniu elgesio modeliu: programėlė pakartotinai laiko dalinį wake lock (mechanizmą, kuris gali palaikyti procesoriaus veikimą, net kai ekranas išjungtas) ilgiau nei Android laiko pagrįstu.

Pagal Google taisykles, programėlė gali būti pažymėta kaip „perdaug aktyvi“, jeigu ji laiko neapleistinį (non-exempt) dalinį wake lock vidutiniškai bent dvi valandas ekranui būnant išjungtam daugiau nei 5 % naudotojų sesijų per paskutines 28 dienas. Tai nėra ekstremalus atvejis. Plačiu mastu tai būtent toks lėtas išsiskyrimas energijos, dėl kurio vartotojai kaltina Android telefonus dėl „blogos baterijos“, net kai tikras kaltininkas yra viena triukšminga programėlė.
Google palieka vietos ir legitimiems naudojimo scenarijams. Kai kurie wake lock tipai yra atleidžiami, nes jie teikia akivaizdžią naudą vartotojui ir jų negalima lengvai optimizuoti arba pašalinti — tarp pavyzdžių yra garso atkūrimas, vietos nustatymo paslaugos ir vartotojo inicijuoti duomenų perdavimai. Kitaip tariant: Spotify neturėtų būti baudžiama už muzikos transliavimą, bet atsitiktinė žibintuvė programėlė neturėtų tyliai deginti energijos 2 val. nakties.
Kaip kūrėjai gali išvengti įspėjimų
Google pabrėžia, kad tai neturėtų būti viešas gėdinimo kampanija be galimybės pasitaisyti. Kartu su politika ji paskelbė gidą kūrėjams, kaip sumažinti baterijos išeikvojimą — apimančius praktinius sprendimus, kada naudoti foreground services (priekines paslaugas) prieš partial wake locks, kaip trečiųjų šalių bibliotekos gali įsigyti wake lock'ų užkulisiuose ir įprastus probleminius taškus, tokius kaip Bluetooth ryšiai ir vietos sekimas.
Ši gairė suteikia aiškias rekomendacijas:
- Vertinti, ar iš tikrųjų reikalingas dalinis wake lock arba pakanka JobScheduler/WorkManager užduoties.
- Naudoti foreground service, kai programėlė turi ilgiau veikti fone ir vartotojas mato, kas vyksta (pvz., muzikos atkūrimas ar navigacija).
- Patikrinti trečiųjų šalių SDK, reklaminių tinklų ir analizės bibliotekų kodą dėl jų panaudojamų wake lock'ų.
- Optimizuoti Bluetooth ir vietos atnaujinimų dažnį, naudoti geofencing, kai įmanoma, ir pasirinkti tinkamas lokalizacijos strategijas tik tada, kai vartotojas tai leidžia.
Kūrėjams tai reiškia papildomą atitikimo kelią stebėti — be tikslinio SDK reikalavimų, paskyros patikrinimų ir nuolatinio Android platformos pokyčių ritmo. Tačiau praktiškai tai taip pat yra galimybė pagerinti programėlės reputaciją ir vartotojų pasitenkinimą: mažiau paslaptingų energijos išeikvojimų, mažiau klausimų „kodėl mano telefonas karštas?“ ir daugiau skaidrumo prieš spaudžiant Įdiegti.
Techninės detalės, kurios gali padėti kūrėjams:
- Matavimai: stebėkite vidutinį dalinį wake lock laiką per sesiją, procentinę vartotojų sesijų dalį, kuriose laikomas wake lock, ir bendrą fono energijos sąnaudą per 28 dienų langą.
- Testavimas: diegti automatinius testus simuliuojantys ilgas fono sesijas, naudoti emuliuojamus doze režimus ir realius įrenginius su skirtingomis baterijos sąlygomis.
- Ataskaitos: integruoti telemetryją, kuri leidžia surinkti grįžtamąjį ryšį apie energijos sąnaudas (anonymizuotai), kad būtų galima nustatyti ar pokyčiai sumažina išeikvojimą.
Google taip pat nurodo sprendimo kelią po įspėjimo gavimo: programėlės kūrėjai gali peržiūrėti išsamias ataskaitas Play Console, identifikuoti konkrečias versijas ar SDK, kuriuose yra probleminis elgesys, atlikti pataisas (pvz., perkelti funkcioną į foreground service, sumažinti atnaujinimų dažnį arba pašalinti nebūtinas trečiųjų šalių bibliotekas) ir pateikti peržiūros užklausą Google, kai pataisymai įdiegti.
Vartotojo perspektyva — aiški nauda: tokie įspėjimai suteikia išankstinę informaciją apie galimą baterijos išeikvojimą ir leidžia priimti sprendimą atsisiųsti ar ne. Papildomos vartotojo gairės apima:
- Patikrinti – Nustatymai → Akumuliatorius → Baterijos naudojimas, kad sužinotumėte, kurios programėlės naudoja daugiausiai energijos.
- Apriboti fono veiklą arba įjungti energijos tausojimo režimus, jei programėlė veikia nepageidaujamai.
- Atnaujinti programėles reguliariai, nes pataisymai, optimizacijos ir nauji versijų leidimai dažnai išsprendžia energijos išeikvojimo problemas.
- Atsisiųsti tik patikimas programėles ir atkreipti dėmesį į Play parduotuvės įspėjimus bei atsiliepimus.
Jeigu Google pasieks norimus rezultatus, tai netgi gali nuimti dalį vieno iš ilgalaikių iPhone pranašumų viešojoje nuomonėje — baterijos patikimumą. Android įrenginių aparatinė įranga per pastaruosius metus gerokai patobulėjo, tačiau viena netinkamai veikanti programėlė vis dar gali sugadinti naudojimo patirtį. Dabar ta programėlė gali tai paaiškinti ryškiai raudonu tekstu ir prarasti rekomendacijų bei matomumo pranašumus Play parduotuvėje.
Praktinis poveikis ekosistemai gali būti platus:
- Vartotojų pasitikėjimas: didesnis skaidrumas apie fono energijos naudojimą gali sumažinti nusiskundimų skaičių ir padidinti pasitenkinimą Android įrenginiais.
- Kūrėjų elgesio pokyčiai: tai paskatins geresnes praktikas energijos taupymui, kruopštesnį trečiųjų šalių SDK auditą ir skaidresnį ryšį su vartotoju apie tai, kas vyksta fone.
- Rinkos dinamika: matomumo nuostoliai Play parduotuvėje gali paveikti programėlių atsisiuntimų skaičių, todėl optimizacija baterijos atžvilgiu taps verslo prioritetu.
Techniniai aspektai, kuriuos verta apsvarstyti giliau:
1) Wake lock tipai ir Android valdymas. Android sistemoje yra keli būdai, kaip programėlė gali išlaikyti įrenginį aktyvų: daliniai wake lock'ai (partial wakelock), kurie palaiko CPU veikimą, ir visiški wake lock'ai, kurie taip pat palaiko ekraną. Nuo Android versijų priklauso, kokios optimizacijos taikomos automatiškai (pvz., Doze, App Standby), todėl kūrėjai turi žinoti, kaip jų kodas veikia įvairiose Android versijose.
2) Sisteminiai įrankiai ir rekomenduojamos bibliotekos. Naudoti WorkManager užduočių vykdymui, kai užduotys yra atidėtos arba periodinės ir nėra būtinas nuolatinis procesoriaus palaikymas. Foreground service naudokite tik kai vartotojas aiškiai supranta, kad kažkas vyksta fone (matomas pranešimas ir ikona), o ne kaip paprastą sprendimą bet kokiam ilgalaikiam darbui.
3) Trečiųjų šalių įtaka. Reklamos SDK, analizės įrankiai ar moduliai, skirti sinchronizacijai, kartais gali turėti paslėptus wake lock'us. Periodiniai auditai, tiek statiniai, tiek dinaminiai, padeda identifikuoti šiuos komponentus ir sumažinti netikėtą energijos suvartojimą.
4) Matavimo metodologija. Google ribos (2 val. vidurkis ir >5 % sesijų per 28 dienas) suteikia konkretų orientyrą, bet kūrėjai turėtų stebėti ir kitus rodiklius: CPU pokyčius fone, tinklo sunaudojimą, paketų dydžius ir perkrovimų dažnumą po ilgesnio fono veikimo. Kompleksinis požiūris leidžia geriau suvokti priežastinius ryšius ir optimizuoti tikrąsias problemas.
Galutinė mintis: ši iniciatyva yra žingsnis link didesnės atsakomybės mobiliosioms programėlėms. Ji reikalauja nuo leidėjų peržiūrėti savo architektūrinius sprendimus, o vartotojams siūlo skaidresnę informacijos priemonę priimant sprendimą dėl instaliacijos. Jeigu kūrėjai imsis veiksmų ir optimizuos fono veiksmus, nauda bus abipusė — geresnė baterijos trukmė vartotojams ir geresnis matomumas bei reputacija sąžiningoms programėlėms Play parduotuvėje.
Komentarai
kodas
Ar tikrai veiks? Jei Play klaidingai pažymės apps, nukentės ne tik „prastūmai“, bet ir sąžiningi kūrėjai... Kas tada? Kas kontroliuos SDK?
Palikite komentarą