Fona procesu iesaldēšana bez saknes (Android 7.0+)

Šajā apmācībā ir parādīts, kā iesaldēt jebkuras lietotnes fona procesus operētājsistēmās Android 7.0 un 7.1 Nougat bez saknes, izmantojot slēptu ADB komandu.

Android vienmēr ir uzskatīta par "jaudīgāku" mobilo platformu salīdzinājumā ar iOS, jo tā ir brīvi pieejama trešās puses lietojumprogrammām. Tas ļauj veikt daudz automatizācijas, jo Android lietojumprogrammas var veikt vairāk uzdevumu, kamēr tās darbojas fonā. Tomēr tam ir arī negatīvie aspekti, jo tas paver durvis potenciāli lielākai akumulatora izlādei, pateicoties ierīcē strādājošiem fona procesiem.

Viena lieta ir apzināties, ka tālrunī tiek ielādētas lietojumprogrammas, kas darbojas fonā, jo esat gatavs upurēt daļu sava akumulatora darbības laika to sniegto priekšrocību dēļ. Tas ir cits stāsts, ja jūs tikai lejupielādējat tradicionālās lietojumprogrammas, kas nav optimizētas un veic uzdevumus fonā, kad jūs to nevēlaties vai pat vēlaties. Google ir strādājis, lai to novērstu, nosakot arvien vairāk ierobežojumu tam, ko lietojumprogrammas var veikt fons, un Android O izlaišana rada visvairāk fona procesu/uztvērēja ierobežojumu tālu.

Tomēr lielākā daļa lietotāju neredzēs Android O savās ierīcēs daudzus mēnešus pēc šī brīža (ja vispār). Bet, ja tu skrien Android 7.0 vai Android 7.1, ir vienkāršs triks, ko varat veikt manuāli neļauj lietojumprogrammai kādreiz darboties fonā - un tā neprasa root vai trešās puses lietojumprogramma. Tas ir jaudīgāks par to, ko piedāvā Greenify vai tādas lietotnes kā Brevent, jo bez root piekļuves šo lietotņu iespējas ir diezgan ierobežotas. Bet ar šo triku tagad jūs varat bloķēt tādas lietotnes kā Facebook vai Hangouts nekad nedarbosies fonā - tie darbosies tikai tad, kad tiek aktīvi izmantoti!


Fona procesu ierobežošanas apmācība

Prasības:

  • Android Nougat (7.0 vai 7.1) ierīce
  1. Instalējiet USB draiverus savai konkrētajai ierīcei OEM (Google nodrošina dažu sarakstu universālie USB draiveri šeit).
  2. Lejupielādēt ADB binārs jūsu konkrētajai OS (Windows, Mac, Linux). Šīs saites vienmēr norādīs uz jaunāko binārā versija.
  3. Izvelciet ZIP faila saturu viegli pieejamā datora mapē.
  4. Tālrunī atveriet lietotni Iestatījumi un pieskarieties opcijai Par tālruni.
  5. Atrodiet būvējuma numuru un pieskarieties tam 7 reizes, lai iespējotu izstrādātāja režīmu.
  6. Atgriezieties galvenajā izvēlnē Iestatījumi un ievadiet Izstrādātāja opcijas, lai varētu iespējot USB atkļūdošanas režīmu.
  7. Pievienojiet tālruni datoram un mainiet to no režīma “tikai uzlāde” uz “failu pārsūtīšanas (MTP)” režīmu. Tas nav nepieciešams visās ierīcēs, taču daudzām ierīcēm tas ir nepieciešams kā drošības pasākums, pirms ļaut ADB darboties.
  8. Dodieties atpakaļ uz datoru un pārlūkojiet direktoriju, kurā ieguvāt ADB bināro failu.
  9. Palaidiet komandu uzvedni vai termināli savā ADB direktorijā. Windows lietotāji to var izdarīt, turot nospiestu taustiņu Shift un ar peles labo pogu noklikšķinot, pēc tam atlasot opciju “atvērt komandu uzvedni šeit”. (Daži Windows 10 lietotāji var redzēt, ka "komandu uzvedne" tiek aizstāta ar "PowerShell".)
  10. Kad esat komandu uzvednes vai termināļa vidē, ievadiet šo komandu: adb devices
  11. Tas sāks ADB dēmonu, ja tas vēl nav palaists, vienkārši pagaidiet, līdz tas beigsies. Ja šī ir pirmā reize, kad izmantojat ADB, tālrunī tiks parādīta uzvedne ar aicinājumu autorizēt savienojumu ar datoru. Šeit atļaujiet piekļuvi USB atkļūdošanai.
  12. Tagad, ja no 10. darbības atkārtoti palaižat komandu adb devices, komandu uzvedne/terminālis izdrukās jūsu ierīces sērijas numuru. Ja tā, tad esat gatavs doties tālāk. Ja nē, iespējams, USB draiveri nav pareizi instalēti.
  13. Pēc tam jums būs jāatrod pakotnes nosaukums lietojumprogrammai, kurai vēlaties iesaldēt fona procesus. To var izdarīt, instalējot Lietotņu inspektors lietojumprogrammu savā tālrunī.
  14. Atgriezieties komandu uzvednē un ievadiet šādu komandu: adb shell
  15. Tagad izpildiet šo komandu, lai atbrīvotu lietojumprogrammas fona procesus: cmd appops set RUN_IN_BACKGROUND ignore
  16. Ja kādreiz vēlaties atsaukt tikko veiktās izmaiņas un atkal atļaut lietotnes fona procesus, ievadiet šo komandu: cmd appops set RUN_IN_BACKGROUND allow
  17. Jūs zināt, ka tas darbojas, ja tas novirzīs jūs atpakaļ uz citu ADB čaulas uzvedni un nesniedz jums kļūdas ziņojumu.

Paskaidrojums

Kā tieši šī komanda darbojas, tā ļauj ierobežot slēptu atļauju, kas parasti nav pieejama lietotājam lietotnē Iestatījumi. Šo atļauju sauc par RUN_IN_BACKGROUND atļauju, un vienīgais veids, kā to var mainīt, ir izmantot "cmd appops”, kas ir komandrindas saskarne “App Ops” — Google lietotājam paredzētajai atļauju pārvaldības sistēmai.

Google pievienoja šo slēpto ADB komandu, kas ļauj ierobežot jebkuru lietojumprogrammu, lai saņemtu netiešus apraides nolūkus (t. lietotne pamostas fonā), kā arī neļaut šīm lietojumprogrammām plānot fona pakalpojumus, neizmantojot JobScheduler (t. lietotne pamostas nepiemērotā laikā, izlādējot akumulatoru). Šī komanda faktiski ir paredzēta lietošanai tikai izstrādātājiem, kuri vēlas simulēt to, kā viņu lietotne darbosies zemas atmiņas apstākļos, taču, par laimi, mēs to varam izmantot paši.

Noņemot atkarību no lietotnes fona pakalpojumiem un manifestā reģistrētajiem netiešajiem apraides uztvērējiem, izstrādātāji var optimizēt savu lietojumprogrammu, lai tā labāk darbotos ierīcēs ar zemu atmiņu. Google saka, ka lietojumprogrammas, kas optimizētas šāda veida ierīcēm vai tām, kurām ir maz atmiņas, var uzlabot gan veiktspēju, gan lietotāja pieredzi. Uzņēmums Google I/O šogad paziņoja modificēta Android versija ar nosaukumu Android Go, kas tiks izmantots viedtālruņiem ar ļoti mazu atmiņu, tāpēc mēs pieņemam, ka šī komanda būtu noderīga izstrādātājiem, kuru mērķis ir šī platforma.

Jebkurā gadījumā šī komanda var būt diezgan noderīga vidusmēra lietotājam, taču esiet uzmanīgi, ko jūs šeit ierobežojat. Lietojumprogrammas, piemēram, Hangouts vai Facebook, pilnībā pārtrauks sinhronizāciju fonā, līdz tās atvērsit. Ja tas ir jūsu mērķis, noteikti neiebilstat. Taču nebrīnieties, ka jūsu e-pasta ziņojumi vai ziņojumi tiek aizkavēti, ja palaižat šo komandu lietotnē, kas ir atkarīga no fona uztvērējiem.