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.