Zajmuję się uruchomieniem aplikacji Android Launcher (wymiana ekranu głównego) i uruchomieniem programu uruchamiającego, który zostaje zabity w sytuacjach z małą ilością pamięci. Oczywiście nie jest to wspaniałe, gdy użytkownik wraca do domu i musi czekać.Priorytety regulacji OOM (brak pamięci) aplikacji dla procesów
W moich badań, znalazłem, że Android klasyfikuje procesy na kilka grup priorytetowych, od najwyższego do najniższego:
Systemu
Trwałych
Planie
Widoczne
Dostrzegalne
na usługi
domowe
Poprzednia
B Usługi
Tło
Można sprawdzić jakie procesy wchodzą w której wykonując: ADB shell dumpsys meminfo
Najobszerniejsza dokumentacja, którą mogłem znaleźć na ten temat: http://developer.android.com/guide/components/processes-and-threads.html#Lifecycle
Nie daje jednak jasnego obrazu wszystkich wymienionych powyżej grup. W szczególności,
Jak/kiedy proces jest uważany za "dostrzegalny"? Niektóre aplikacje (takie jak Go Launcher EX) wydają się znajdować w tej kategorii, gdy nie są na pierwszym planie. W ten sposób nie ginie tak często. Jak oni to robią?
Znajduję od działania adb shell dumpsys, że Go Launcher Ex jest uważany za usługę pierwszego planu. Jedyną dostępną dokumentacją na ten temat jest to, że musisz umieścić trwałe powiadomienie na pasku stanu. Jednak Go Launcher Ex jakoś ominął ten wymóg. Gubię, jak: - (
Jaka jest różnica między „A Services”, „Dom” i „B Services”
Wszelkie inne ogólne porady dla aplikacji wyrzutni w jaki sposób? mogą zyskać wyższy priorytet niż zwykły aplikacji? Myślę, że jest to całkowicie uzasadnione żądanie zważywszy, że wyrzutnia powinny uznać wyższy priorytet niż większość rzeczy (z wyjątkiem bieżącej działalności planie) dla użytkowników.
Ładne pytanie! Dodaj 1 dla dumpsys. – herbertD