Taustaprotsesside külmutamine ilma juureta (Android 7.0+)

See õpetus näitab, kuidas külmutada mis tahes rakenduse taustaprotsesse operatsioonisüsteemides Android 7.0 ja 7.1 Nougat ilma rootita, kasutades peidetud ADB-käsku.

Androidi on alati peetud iOS-iga võrreldes "võimsamaks" mobiiliplatvormiks, kuna selle kolmanda osapoole rakendustel on palju vabadust. See võimaldab palju automatiseerimist lihtsalt seetõttu, et Androidi rakendused saavad taustal töötamise ajal teha rohkem ülesandeid. Sellel on aga negatiivne külg, kuna see avab ukse potentsiaalselt suuremaks aku tühjendamiseks tänu seadmes töötavatele taustaprotsessidele.

Üks asi on teada, et laadite oma telefoni taustal töötavate rakendustega, kuna olete valmis ohverdama osa oma aku kasutusajast nende kasulike hüvede nimel. See on teine ​​lugu, kui laadite alla traditsioonilisi rakendusi, mis pole optimeeritud ja täidavad ülesandeid taustal, kui te seda ei soovi või isegi ei vaja. Google on selle probleemi lahendamise nimel töötanud, seades rakendustele üha rohkem piiranguid taustal ja Android O väljalaskmine toob kaasa kõige rohkem taustaprotsesside/vastuvõtjate piiranguid kaugele.

Kuid valdav enamus kasutajaid ei näe oma seadmetes Android O-d paljude kuude pärast (kui üldse). Aga kui sa jooksed Android 7.0 või Android 7.1, on lihtne nipp, mida saate käsitsi teha takistada rakendusel kunagi taustal töötamist - ja see ei nõua root või kolmanda osapoole rakendus. See on võimsam kui see, mida Greenify või sellised rakendused nagu Brevent pakuvad, kuna ilma juurjuurdepääsuta on nende rakenduste võimekus üsna piiratud. Kuid selle nipiga saate nüüd hakkama blokeerida rakendusi, nagu Facebook või Hangouts ei tööta kunagi taustal – need töötavad ainult siis, kui neid aktiivselt kasutatakse!


Taustaprotsesside piiramise õpetus

Nõuded:

  • Android Nougat (7.0 või 7.1) seade
  1. Installige oma konkreetse seadme OEM-i jaoks USB-draiverid (Google pakub mõne loendi universaalsed USB-draiverid siin).
  2. Laadige alla ADB binaarfail teie konkreetse operatsioonisüsteemi jaoks (Windows, Mac, Linux). Need lingid osutavad alati binaarfaili uusimale versioonile.
  3. Pakkige ZIP-faili sisu oma arvutis hõlpsasti juurdepääsetavasse kausta.
  4. Avage oma telefoni rakendus Seaded ja puudutage valikut Teave telefoni kohta.
  5. Leidke järgu number ja puudutage seda 7 korda, et lubada arendajarežiim.
  6. Minge tagasi peamenüüsse Seaded ja sisestage Arendaja valikud, et saaksite lubada USB-silumisrežiimi.
  7. Ühendage telefon arvutiga ja lülitage see "ainult laadimise" režiimist "failiedastuse (MTP)" režiimi. See pole kõigis seadmetes vajalik, kuid paljud seadmed nõuavad seda turvameetmena enne, kui ADB tööle lubab.
  8. Minge tagasi arvutisse ja sirvige kataloogi, kust ekstraheerisite ADB binaarfaili.
  9. Käivitage oma ADB kataloogis käsuviip või terminal. Windowsi kasutajate jaoks saab seda teha, hoides all klahvi Shift ja paremklõpsates seejärel valiku „ava käsuviip siin”. (Mõned Windows 10 kasutajad võivad näha "käsuviip" asendatud "PowerShelliga".)
  10. Kui olete käsuviiba või terminali keskkonnas, sisestage järgmine käsk: adb devices
  11. See käivitab ADB deemoni, kui seda pole veel käivitatud, lihtsalt oodake, kuni see lõpeb. Kui kasutate ADB-d esimest korda, näete oma telefonis ka viipa, mis palub teil lubada arvutiga ühenduse loomine. Lubage siin juurdepääs USB-silumisele.
  12. Kui käivitate käsu adb devices uuesti alates sammust 10, prindib käsuviip/terminal teie seadme seerianumbri. Kui jah, siis olete valmis edasi liikuma. Kui ei, siis pole USB-draiverid tõenäoliselt õigesti installitud.
  13. Seejärel peate leidma paketi nime rakendusele, mille taustaprotsesse soovite külmutada. Seda saate teha installides Rakenduste inspektor rakendus teie telefonis.
  14. Minge tagasi käsureale ja sisestage järgmine käsk: adb shell
  15. Nüüd käivitage rakenduse taustprotsesside vabastamiseks järgmine käsk: cmd appops set RUN_IN_BACKGROUND ignore
  16. Kui soovite kunagi äsja tehtud muudatuse ennistada ja rakenduse taustaprotsesse uuesti lubada, sisestage see käsk: cmd appops set RUN_IN_BACKGROUND allow
  17. Saate teada, et see töötab, kui see viib teid tagasi teise ADB-kestaviipa ja ei anna teile veateadet.

Selgitus

Kuidas see käsk täpselt töötab, on see, et see võimaldab teil piirata peidetud luba, mis tavaliselt pole kasutajale rakenduses Seaded juurdepääsetav. Seda luba nimetatakse loaks RUN_IN_BACKGROUND ja ainus viis seda muuta on kasutada "cmd appops", mis on "App Ops" - Google'i kasutajale suunatud lubade haldussüsteemi - käsurea liides.

Google lisas selle peidetud ADB-käskluse, mis võimaldab teil piirata mis tahes rakendusel kaudsete leviedastuskavatsuste (st. rakendus ärkab taustal) ja takistab ka neil rakendustel taustateenuseid planeerimast ilma JobScheduleri kasutamata (st. rakendus ärkab ebasobival ajal ja tühjendab teie akut). See käsk on tegelikult mõeldud kasutamiseks ainult arendajatele, kes soovivad simuleerida, kuidas nende rakendus vähese mäluga tingimustes toimiks, kuid õnneks saame selle enda tarbeks kasutada.

Eemaldades sõltuvused rakenduse taustteenustest ja manifestis registreeritud kaudsetest saatevastuvõtjatest, saavad arendajad optimeerida oma rakendust, et see töötaks paremini vähese mälumahuga seadmetes. Google ütleb, et seda tüüpi või vähese mäluga seadmete jaoks optimeeritud rakendused võivad parandada nii jõudlust kui ka kasutuskogemust. Selle aasta Google I/O-l teatas ettevõte Androidi muudetud versioon nimega Android Go, mida kasutatakse väga väikese mälumahuga nutitelefonide jaoks, seega eeldame, et see käsk oleks kasulik arendajatele, kes sihivad seda platvormi.

Igal juhul võib see käsk olla tavakasutajale üsna kasulik, kuid olge ettevaatlik, mida siin piirate. Rakendused, nagu Hangouts või Facebook, lõpetavad täielikult taustal sünkroonimise, kuni avate need. Kui see on teie eesmärk, siis ma olen kindel, et te ei pahanda. Kuid ärge olge üllatunud, kui teie meilid või sõnumid viibivad, kui käivitate selle käsu taustavastuvõtjatest sõltuvas rakenduses.