Sobes.tech
Middle+

Hogyan határozzák meg az alkalmazások prioritását a rendszerben?

sobes.tech MI

Válasz az MI-től

Az Android alkalmazás prioritását több tényező határozza meg, amelyek közül a főek:

  • Komponens aktivitása: Egy alkalmazás, amelynek aktív komponensei (elöl lévő aktivitások, startForeground-mal indított szolgáltatások) magasabb prioritást kap.
  • Erőforrások használata: Azok az alkalmazások, amelyek aktívan használják a CPU-t vagy sok memóriát foglalnak, a rendszer alacsonyabb prioritásúnak jelölheti meg, hogy erőforrásokat takarítson meg fontosabb feladatokra.
  • Felhasználói felülettel való kapcsolat: Az alkalmazások, amelyek közvetlenül a felhasználóval lépnek kapcsolatba ebben a pillanatban, a legmagasabb prioritást kapják.
  • Kapcsolat magasabb prioritású folyamatokkal: Egy folyamat, amelyhez egy komponens kapcsolódik (pl. egy szolgáltatás, amelyhez egy aktivitás kapcsolódik), örökli a magasabb prioritású folyamat prioritását.

Az Android rendszer ezeket a tényezőket használja annak meghatározására, hogy az alkalmazás "fontossági szintje" (importance level) milyen, ami végső soron meghatározza, hogy mennyire valószínű, hogy a folyamatát leállítja (megöli) memóriahiány esetén.

A folyamatok fő fontossági szintjei:

  • Elöl lévő folyamat: A legfontosabb folyamat. Egy alkalmazás, amelynek látható aktivitása van a képernyőn, startForeground-mal indított szolgáltatással vagy bizonyos API-k használatával (pl. egy másik elöl lévő aktivitással kapcsolatos). Soha nem kerül leállításra a rendszer által, kivéve, ha kritikus erőforrások fogytak.
  • Látható folyamat: Olyan folyamat, amelynek nincsenek elöl lévő komponensei, de befolyásolja, amit a felhasználó lát. Például egy folyamat, amely tartalmaz egy szolgáltatást, amely egy elöl lévő aktivitáshoz kapcsolódik.
  • Szolgáltatás folyamat: Olyan folyamat, amely tartalmaz egy startService-vel indított szolgáltatást, és nincs elöl lévő szolgáltatásként megjelölve. Leállítható, amikor a memóriahiány súlyos lesz.
  • Gyorsítótár folyamat: Olyan folyamat, amely nem tartalmaz aktív komponenseket, és a gyorsabb újraindítás érdekében van a memóriában. Ez a legkevésbé fontos folyamat, és a legvalószínűbb jelölt a leállításra memóriahiány esetén.