Šioje pamokoje parodyta, kaip užšaldyti bet kokios programos foninius procesus naudojant „Android 7.0“ ir „7.1 Nougat“ be šaknies, naudojant paslėptą ADB komandą.
„Android“ visada buvo laikoma „galingesne“ mobiliąja platforma, palyginti su „iOS“, nes jos trečiųjų šalių programos turi laisvės. Tai leidžia daug automatizuoti vien todėl, kad „Android“ programos gali atlikti daugiau užduočių, kai jos veikia fone. Tačiau tai turi neigiamų aspektų, nes dėl įrenginyje vykdomų foninių procesų akumuliatorius gali išeikvoti daugiau.
Vienas dalykas yra žinoti, kad į telefoną įkeliate fone veikiančias programas, nes esate pasirengęs paaukoti dalį akumuliatoriaus veikimo laiko dėl jų teikiamos naudos. Visa kita istorija, jei tik atsisiunčiate tradicines programas, kurios nėra optimizuotos ir atlieka užduotis fone, kai to nenorite ar net to reikia. „Google“ stengėsi tai ištaisyti, nustatydama vis daugiau apribojimų, ką programos gali veikti fone, o „Android O“ išleidimas suteikia daugiausiai foninio proceso / imtuvo apribojimų toli.
Tačiau didžioji dauguma vartotojų nematys „Android O“ savo įrenginiuose po daugelio mėnesių (jei išvis išvis). Bet jei bėgate Android 7.0 arba Android 7.1, yra paprastas triukas, kurį galite atlikti rankiniu būdu neleisti programai kada nors veikti fone - ir tai nereikalauja root arba trečiosios šalies programa. Tai yra galingesnė už tai, ką siūlo „Greenify“ ar tokios programos kaip „Brevent“, nes be root prieigos šios programos yra gana ribotos. Bet su šiuo triuku dabar galite blokuoti programas, pvz., „Facebook“ ar „Hangout“. nuo kada nors veikti fone – jie veiks tik tada, kai bus aktyviai naudojami!
Apriboti foninius procesus mokymo programa
Reikalavimai:
- „Android Nougat“ (7.0 arba 7.1) įrenginys
- Įdiekite savo konkretaus įrenginio OĮG USB tvarkykles („Google“ pateikia kai kurių Universalios USB tvarkyklės čia).
- Atsisiųskite ADB dvejetainis jūsų konkrečiai OS (Windows, Mac, Linux). Šios nuorodos visada nukreips į naujausią dvejetainio failo versiją.
- Išskleiskite ZIP failo turinį į lengvai pasiekiamą kompiuterio aplanką.
- Eikite į nustatymų programą savo telefone ir bakstelėkite parinktį Apie telefoną.
- Raskite kūrimo numerį ir bakstelėkite jį 7 kartus, kad įjungtumėte kūrėjo režimą.
- Grįžkite į pagrindinį meniu Nustatymai ir įveskite Kūrėjo parinktis, kad galėtumėte įjungti USB derinimo režimą.
- Prijunkite telefoną prie kompiuterio ir pakeiskite jį iš „tik įkrovimo“ režimo į „failų perdavimo (MTP)“ režimą. Tai nebūtina kiekviename įrenginyje, tačiau daugeliui įrenginių tai reikalinga kaip saugos priemonė prieš leidžiant ADB veikti.
- Grįžkite į kompiuterį ir naršykite katalogą, kuriame ištraukėte ADB dvejetainį failą.
- ADB kataloge paleiskite komandų eilutę arba terminalą. „Windows“ naudotojams tai galima padaryti laikant Shift ir dešiniuoju pelės mygtuku spustelėjus, tada pasirinkus parinktį „Atidaryti komandų eilutę čia“. (Kai kuriems „Windows 10“ naudotojams „komandų eilutė“ gali būti pakeista „PowerShell“.)
- Kai būsite komandų eilutės arba terminalo aplinkoje, įveskite šią komandą:
adb devices
- Tai paleis ADB demoną, jei jis dar nebuvo paleistas, tiesiog palaukite, kol jis baigsis. Jei ADB naudojate pirmą kartą, telefone taip pat pamatysite raginimą, kuriame bus prašoma leisti prisijungti prie kompiuterio. Leiskite USB derinimo prieigą čia.
- Dabar, jei iš naujo paleisite adb įrenginių komandą nuo 10 veiksmo, komandų eilutė / terminalas išspausdins jūsų įrenginio serijos numerį. Jei taip, tuomet esate pasiruošę judėti toliau. Jei ne, greičiausiai USB tvarkyklės nėra tinkamai įdiegtos.
- Tada turėsite rasti programos, kurią norite sustabdyti foninius procesus, paketo pavadinimą. Tai galite padaryti įdiegę Programėlių inspektorius programą savo telefone.
- Grįžkite į komandų eilutę ir įveskite šią komandą:
adb shell
- Dabar vykdykite šią komandą, kad išlaisvintumėte programos foninius procesus:
cmd appops set
RUN_IN_BACKGROUND ignore - Jei kada nors norėsite atšaukti ką tik atliktą pakeitimą ir vėl leisti programos foninius procesus, įveskite šią komandą:
cmd appops set
RUN_IN_BACKGROUND allow - Sužinosite, kad tai veikia, jei grįšite į kitą ADB apvalkalo raginimą ir nepateiks klaidos pranešimo.
Paaiškinimas
Kaip tiksliai ši komanda veikia, yra ta, kad ji leidžia apriboti paslėptą leidimą, kuris paprastai nepasiekiamas vartotojui nustatymų programoje. Šis leidimas vadinamas RUN_IN_BACKGROUND leidimu ir vienintelis būdas jį pakeisti yra naudoti „cmd appops“, kuri yra „App Ops“ – „Google“ naudotojams skirtos leidimų valdymo sistemos – komandų eilutės sąsaja.
„Google“ pridėjo šią paslėptą ADB komandą, leidžiančią apriboti bet kuriai programai numanomų transliavimo tikslų (ty. programa atsibunda fone) ir taip pat neleis toms programoms planuoti fonines paslaugas nenaudojant JobScheduler (ty. programa atsibunda netinkamu laiku ir išeikvoja akumuliatorių). Ši komanda iš tikrųjų skirta naudoti tik kūrėjams, norintiems imituoti, kaip jų programa veiktų esant mažai atminties, bet, laimei, mes galime ją panaudoti patys.
Pašalinę priklausomybes nuo programos foninių paslaugų ir manifeste registruotų numanomų transliacijų imtuvų, kūrėjai gali optimizuoti savo programą, kad geriau veiktų mažai atminties turinčiuose įrenginiuose. „Google“ teigia, kad tokio tipo įrenginiams optimizuotos programos arba turinčios mažai atminties gali pagerinti našumą ir vartotojo patirtį. Šių metų „Google I/O“ metu bendrovė paskelbė modifikuota Android versija, pavadinta Android Go, kuris bus naudojamas labai mažai atminties turintiems išmaniesiems telefonams, todėl manome, kad ši komanda būtų naudinga kūrėjams, siekiantiems tos platformos.
Bet kokiu atveju ši komanda gali būti gana naudinga paprastam vartotojui, tačiau būkite atsargūs, ką čia apribojate. Tokios programos kaip „Hangout“ ar „Facebook“ visiškai nustos sinchronizuoti fone, kol jas atidarysite. Jei to ir siekiate, aš tikiu, kad neprieštaraujate. Tačiau nenustebkite, kai el. laiškai ar pranešimai vėluoja, jei paleisite šią komandą programoje, kuri priklauso nuo foninių imtuvų.