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í
startServicea 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.