Middle+
Hoe wordt de prioriteit van applicaties in het systeem bepaald?
sobes.tech AI
Antwoord van AI
De prioriteit van een applicatie in Android wordt bepaald op basis van verschillende factoren, waarvan de belangrijkste:
- Componentactiviteit: Een applicatie met actieve componenten (activiteiten op het voorgrond, services gestart met
startForeground) heeft een hogere prioriteit. - Gebruik van bronnen: Applicaties die actief gebruik maken van CPU of veel geheugen gebruiken, kunnen door het systeem als minder prioriteit worden gemarkeerd om bronnen voor belangrijkere taken te behouden.
- Interactie met de gebruikersinterface: Applicaties die direct met de gebruiker omgaan op dat moment, krijgen de hoogste prioriteit.
- Verbinding met processen met hogere prioriteit: Een proces waaraan een component is gekoppeld (bijvoorbeeld een service verbonden met een activiteit), erft de prioriteit van een proces met hogere prioriteit.
Het Android-systeem gebruikt deze factoren om het "belangrijkheidsniveau" (importance level) van een applicatie te bepalen, wat uiteindelijk bepaalt hoe waarschijnlijk het is dat het proces wordt beëindigd (gedood) bij geheugentekort.
Belangrijkste niveaus van procesprioriteit:
- Voorgrondproces: Het meest belangrijke proces. Een applicatie met een zichtbare activiteit op het scherm, een service gestart met
startForeground, of die bepaalde API's gebruikt (bijvoorbeeld gerelateerd aan een andere activiteit op de voorgrond). Wordt nooit door het systeem beëindigd, tenzij kritieke bronnen op zijn. - Zichtbaar proces: Proces dat geen componenten op de voorgrond heeft, maar invloed heeft op wat de gebruiker ziet. Bijvoorbeeld een proces dat een service bevat die verbonden is met een activiteit op de voorgrond.
- Serviceproces: Proces dat een service bevat die is gestart met
startServiceen niet is gemarkeerd als voorgrondservice. Kan worden beëindigd wanneer het geheugen schaars wordt. - Gecachte proces: Proces zonder actieve componenten en opgeslagen in het geheugen voor snellere hervatting. Het minst belangrijke proces en de meest waarschijnlijke kandidaat voor beëindiging bij geheugentekort.