Sobes.tech
Middle+

Ako sa v systéme určuje priorita aplikácií?

sobes.tech AI

Odpoveď od AI

Priorita aplikácie v systéme Android je určená na základe viacerých faktorov, z ktorých hlavné sú:

  • Aktivita komponentu: Aplikácia, ktorá má aktívne komponenty (aktivity na popredí, služby spustené s startForeground), má vyššiu prioritu.
  • Využitie zdrojov: Aplikácie, ktoré aktívne využívajú CPU alebo zaberajú veľa pamäte, môžu byť systémom označené ako menej priorizované, aby sa šetrili zdroje pre dôležitejšie úlohy.
  • Interakcia s používateľským rozhraním: Aplikácie, ktoré priamo komunikujú s používateľom v danom momente, dostávajú najvyššiu prioritu.
  • Väzba na procesy s vyššou prioritou: Proces, ku ktorému je pripojená komponenta (napríklad služba pripojená k aktivite), dedí prioritu procesu s vyššou prioritou.

Systém Android používa tieto faktory na určenie "úrovne dôležitosti" (importance level) aplikácie, čo nakoniec určuje, ako pravdepodobné je, že jeho proces bude ukončený (zabitý) pri nedostatku pamäte.

Hlavné úrovne dôležitosti procesov:

  • Proces na popredí: Najdôležitejší proces. Aplikácia s aktivitou viditeľnou na obrazovke, službou spustenou s startForeground, alebo využívajúca určité API (napríklad spojené s inou aktivitou na popredí). Nikdy nie je systémom ukončený, ak nie sú vyčerpané kritické zdroje.
  • Videný proces: Proces, ktorý nemá komponenty na popredí, ale ovplyvňuje to, čo vidí používateľ. Napríklad proces obsahujúci službu spojenú s aktivitou na popredí.
  • Proces služby: Proces, ktorý obsahuje službu spustenú pomocou startService a neoznačenú ako popredná služba. Môže byť ukončený, keď nedostatok pamäte sa stane vážnym.
  • Cache proces: Proces bez aktívnych komponentov a uložený v pamäti pre rýchlejšie obnovenie. Je to najmenej dôležitý proces a najpravdepodobnejší kandidát na ukončenie pri nedostatku pamäte.