Sobes.tech
Middle+

Kā tiek noteikta lietojumprogrammu prioritāte sistēmā?

sobes.tech AI

Atbilde no AI

Android lietojumprogrammas prioritāte tiek noteikta, pamatojoties uz vairākiem faktoriem, no kuriem galvenie ir:

  • Komponenta aktīva: Lietojumprogramma, kurai ir aktīvi komponenti (aktīvitātes priekšplānā, pakalpojumi, kas ir uzsākti ar startForeground), ir augstāka prioritāte.
  • Resursu izmantošana: Lietojumprogrammas, kas aktīvi izmanto CPU vai aizņem daudz atmiņas, var tikt marķētas kā zemākas prioritātes, lai saglabātu resursus svarīgākiem uzdevumiem.
  • Saskarsme ar lietotāja interfeisu: Lietojumprogrammas, kas tieši mijiedarbojas ar lietotāju šajā brīdī, saņem augstāko prioritāti.
  • Saistība ar augstāka prioritātes procesiem: Process, kam ir saistīts components (piemēram, pakalpojums, kas ir saistīts ar aktīvitāti), manto augstāka procesa prioritāti.

Android sistēma izmanto šos faktorus, lai noteiktu "nozīmības līmeni" (importance level) lietojumprogrammai, kas galarezultātā nosaka, cik ticams, ka tās process tiks pārtraukts (iznīcināts) atmiņas trūkuma gadījumā.

Galvenie procesu nozīmīguma līmeņi:

  • Priekšplāna process: Visbūtiskākais process. Lietojumprogramma ar redzamu ekrānu, kas ir uzsākta ar startForeground, vai izmanto noteiktus API (piemēram, saistīts ar citu priekšplāna aktivitāti). Nekad netiek pārtraukta sistēmas, ja vien nav kritisku resursu trūkums.
  • Redzams process: Process, kam nav priekšplāna komponentu, bet tas ietekmē to, ko redz lietotājs. Piemēram, process, kas satur pakalpojumu, kas ir saistīts ar priekšplāna aktivitāti.
  • Pakalpojuma process: Process, kas satur pakalpojumu, uzsākts ar startService un nav marķēts kā priekšplāna pakalpojums. Var tikt pārtraukts, kad resursu trūkums kļūst nopietns.
  • Kešēts process: Process, kam nav aktīvu komponentu un kas ir saglabāts atmiņā, lai ātri atsāktu darbu. Vismazāk svarīgais process un vislielākā iespēja tikt pārtraukts, ja trūkst atmiņas.