Sobes.tech
Middle+

Jak je v systému určeno priorita aplikací?

sobes.tech AI

Odpověď od AI

Priorita aplikace v systému Android je určována na základě několika faktorů, z nichž hlavní jsou:

  • Aktivita komponenty: Aplikace s aktivními komponentami (aktivnosti na popředí, služby spuštěné pomocí startForeground) má vyšší prioritu.
  • Využití zdrojů: Aplikace, které aktivně využívají CPU nebo zabírají hodně paměti, mohou být systémem označeny jako méně priorizované, aby se šetřily zdroje pro důležitější úkoly.
  • Interakce s uživatelským rozhraním: Aplikace, které přímo komunikují s uživatelem v danou chvíli, dostávají nejvyšší prioritu.
  • Vazba na procesy s vyšší prioritou: Proces, ke kterému je připojen komponent (například služba připojená k aktivitě), dědí prioritu procesu s vyšší prioritou.

Systém Android používá tyto faktory k určení "úrovně důležitosti" (importance level) aplikace, což nakonec určuje, jak pravděpodobné je, že jeho proces bude ukončen (zabit) při nedostatku paměti.

Hlavní úrovně důležitosti procesů:

  • Proces na popředí: Nejvýznamnější proces. Aplikace s viditelnou aktivitou na obrazovce, službou spuštěnou pomocí startForeground, nebo využívající určité API (například spojené s jinou aktivitou na popředí). Nikdy není systémem ukončen, pokud nejsou vyčerpány kritické zdroje.
  • Viditelný proces: Proces, který nemá komponenty na popředí, ale ovlivňuje to, co vidí uživatel. Například proces obsahující službu spojenou s aktivitou na popředí.
  • Proces služby: Proces obsahující službu spuštěnou pomocí startService a neznačenou jako foreground služba. Může být ukončen, když se stane vážný nedostatek paměti.
  • Proces v mezipaměti: Proces bez aktivních komponent, uložený v paměti pro rychlejší obnovení. Je nejméně důležitý a nejpravděpodobnější kandidát na ukončení při nedostatku paměti.