Powrót   Forum CDRinfo.pl > Urządzenia przenośne > Systemy operacyjne i aplikacje



Witaj Nieznajomy! Zaloguj się lub Zarejestruj

Zarejestrowani użytkownicy mają dostęp do dodatkowych opcji, lepszej wyszukiwarki oraz mniejszej ilości reklam. Rejestracja jest całkowicie darmowa!

Odpowiedz na post
 
Opcje związane z dyskusją Ocena dyskusji Tryby wyświetlania
Stary 29.12.2013, 12:07   #1
Berion
Hibernant
CDRinfo VIP
 
Avatar użytkownika Berion
 
Data rejestracji: 24.06.2004
Posty: 17,115
Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>
Multitasking

Czy ktoś wie dlaczego Android sam decyduje co trzymać w pamięci i dlaczego sam decyduje które aplikacje mają być uruchomione? Drażni mnie to niesłychanie. Może być to wygodne w przypadku aplikacji, które faktycznie muszą cały czas chodzić w tle (jakieś budziki, taskery czy inne secure teksty), ale czemu program raz uruchomiony działa dopóki go samemu nie zkilluję w menu aplikacje lub dopóki Android nie zdecyduje żeby akurat tę aplikację teraz zabić?

Zwróciłem na to uwagę dopiero kiedy Timly tak mi nie obciążył systemu, że zaczęło się wszystko przycinać (nawet na ekranie blokady). Nie to żeby to była jakaś antyreklama, program wygląda rewelacyjnie, równie dobrze się go używa ale najwyraźniej na mojej Xperii nie działa jak powinien.

A może jest jakaś aplikacja, który w wygodny sposób pozwalałaby na zabijanie kilku na raz? Wchodzić w każda z osobna i wymuszać zamykanie to dramat jakiś.
__________________
Wszystko co chciałbyś wiedzieć o:
| PSX | PS2 | PS3 | Xbox |

FF000000000003010101010003010000000003010000030000 00000003010000000003010100000003010101010003010000 00000300010101010300000000000301010000000300000001 01030101010100030101000000030000000000030100000000 03000001010103000000000003010100000003000000000103 01000000000301010000000301010000000300000000000301 01010100030000000000030101000000030000000001030003 01000000000301000000030100000000030000000101030100 00000003010000030100000000030100010003010100000003 00000000000300000000000300010301000000000301000003 00000001010301010100000301010000000300000000000301 00000000030000000101030000000001030101000000030101 000000030101000000FF
Berion jest offline   Odpowiedz cytując ten post

  #ads
CDRinfo.pl
Reklamowiec
 
 
 
Data rejestracji: 29.12.2008
Lokalizacja: Sieć globalna
Wiek: 31
Posty: 1227
 

CDRinfo.pl is online  
Stary 29.12.2013, 12:34   #2
andy
logged out
CDRinfo VIP
 
Avatar użytkownika andy
 
Data rejestracji: 12.07.2003
Lokalizacja: /home
Posty: 12,518
andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>
Ehhh tyle razy o tym pisałem.

W związku z tym, że systemy mobilne w pewien sposób różnią się od systemów, które znajdują się na desktopach pewne rzeczy trzeba było stworzyć inaczej - min. multitasking. Telefony nie posiadają obszaru gdzie mogą zrzucić część pamięci ram - tzw. SWAP. Oczywiście można sobie to "dorobić", jednak objawia się to lagami - próbowałem różnych konfiguracji i zawsze były drobne lagi.

Multitasking w Androidzie jest inteligentny. Źle skonfigurowany przez producenta, lub użytkownika może prowadzić do tego, że urządzenie będzie pracowało zupełnie inaczej niż ktoś sobie to przyjął.

Android wykorzystuje standardową funkcjonalność jądra Linuksa OOM - OutOfMemory. W momencie kiedy w systemie poziom pamięci RAM zbliża się do wartości krytycznej, lub zero - w zależności od konfiguracji - /sys/module/lowmemorykiller/parameters/minfree zostaje zabita aplikacja, aby pamięć zwolnić.
Sztuką jest tutaj wybrać jaką aplikację system ma zamknąć.

ActivityManagerServer.java:
Cytat:
FOREGROUND_APP:
// This is the process running the current foreground app. We'd really
// rather not kill it! Value set in system/rootdir/init.rc on startup.

VISIBLE_APP:
// This is a process only hosting activities that are visible to the
// user, so we'd prefer they don't disappear. Value set in
// system/rootdir/init.rc on startup.

SECONDARY_SERVER:
// This is a process holding a secondary server -- killing it will not
// have much of an impact as far as the user is concerned. Value set in
// system/rootdir/init.rc on startup.

HIDDEN_APP:
// This is a process only hosting activities that are not visible,
// so it can be killed without any disruption. Value set in
// system/rootdir/init.rc on startup.

CONTENT_PROVIDER:
// This is a process with a content provider that does not have any clients
// attached to it. If it did have any clients, its adjustment would be the
// one for the highest-priority of those processes.

EMPTY_APP:
// This is a process without anything currently running in it. Definitely
// the first to go! Value set in system/rootdir/init.rc on startup.
// This value is initalized in the constructor, careful when refering to
// this static variable externally.
Jak widać aplikacje są dzielone na 6 grup. Każda z tych grup ma określony priorytet - wpływa to na to jaki typ aplikacji zostanie zabity najpierw. Jeżeli jest kilka aplikacji tego samego typu to system jakimś magicznym algorytmem oblicza którą ma z nich zabić najpierw. Pewnie sprawdza ostatni czas kiedy użytkownik coś na niej robił itp.

Plik minfree (1 strona == 4 KB pamięci) zawiera wartości dla tych 6 przedziałów. Regulując te wartości możemy np. zwiększyć ilość aplikacji, która będzie trzymana w pamięci.

Więcej można poczytać np. tutaj - http://forum.xda-developers.com/showthread.php?t=622666

Należy także dodać, że aplikacje w systemie reagują na sygnały systemowe. Np. uruchomiono WiFi. Jeżeli obsłużymy taki sygnał, to możemy powiedzieć naszej aplikacji co ma robić - np. pobranie poczty. Jest to bardzo przydatna rzecz, bo można stworzyć bardzo potężne aplikacje. Jednak wykorzystane nieprawidłowo, lub nadużywane może objawiać się tym, że dana aplikacja będzie się uruchamiała przy większości sygnałów.
__________________
XMPP: andrzej(at)czerniak.info.pl

Ostatnio zmieniany przez andy : 29.12.2013 o godz. 12:38
andy jest offline   Odpowiedz cytując ten post
Stary 29.12.2013, 13:14   #3
Berion
Hibernant
CDRinfo VIP
 
Avatar użytkownika Berion
 
Data rejestracji: 24.06.2004
Posty: 17,115
Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>
Nie wiedziałem o tym. Nie podoba mi się ten pomysł, można to było rozwiązać zupełnie inaczej.

Cytat:
Ehhh tyle razy o tym pisałem.
Wybacz że nie czytałem wszystkich Twoich 10058 postów.
__________________
Wszystko co chciałbyś wiedzieć o:
| PSX | PS2 | PS3 | Xbox |

FF000000000003010101010003010000000003010000030000 00000003010000000003010100000003010101010003010000 00000300010101010300000000000301010000000300000001 01030101010100030101000000030000000000030100000000 03000001010103000000000003010100000003000000000103 01000000000301010000000301010000000300000000000301 01010100030000000000030101000000030000000001030003 01000000000301000000030100000000030000000101030100 00000003010000030100000000030100010003010100000003 00000000000300000000000300010301000000000301000003 00000001010301010100000301010000000300000000000301 00000000030000000101030000000001030101000000030101 000000030101000000FF
Berion jest offline   Odpowiedz cytując ten post
Stary 29.12.2013, 14:01   #4
andy
logged out
CDRinfo VIP
 
Avatar użytkownika andy
 
Data rejestracji: 12.07.2003
Lokalizacja: /home
Posty: 12,518
andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>
Cytat:
Nie wiedziałem o tym. Nie podoba mi się ten pomysł, można to było rozwiązać zupełnie inaczej.
Podziel się w takim razie jak można to rozwiązać tak aby działało lepiej.

Cytat:
Wybacz że nie czytałem wszystkich Twoich 10058 postów.
Akurat te elementy wspominałem w temacie Android Flame War, który m. in. Ty czytasz regularnie
__________________
XMPP: andrzej(at)czerniak.info.pl
andy jest offline   Odpowiedz cytując ten post
Stary 29.12.2013, 15:06   #5
Berion
Hibernant
CDRinfo VIP
 
Avatar użytkownika Berion
 
Data rejestracji: 24.06.2004
Posty: 17,115
Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>Berion jest wybitnie uzdolniony i zna sie rzeczowo na sprawach <1500 - 1999 pkt>
W manifeście mogłyby być informacje do której grupy przypisana jest aplikacja i wówczas Android na podstawie tego decydowałby co zrobić z programem po wyjściu z niego (większość nie wymaga aktywności po wyłączeniu, ani sprawdzania czegokolwiek). Więc mogłaby być od razu zabijana, bez dziwnego zbieractwa jak obecnie.
__________________
Wszystko co chciałbyś wiedzieć o:
| PSX | PS2 | PS3 | Xbox |

FF000000000003010101010003010000000003010000030000 00000003010000000003010100000003010101010003010000 00000300010101010300000000000301010000000300000001 01030101010100030101000000030000000000030100000000 03000001010103000000000003010100000003000000000103 01000000000301010000000301010000000300000000000301 01010100030000000000030101000000030000000001030003 01000000000301000000030100000000030000000101030100 00000003010000030100000000030100010003010100000003 00000000000300000000000300010301000000000301000003 00000001010301010100000301010000000300000000000301 00000000030000000101030000000001030101000000030101 000000030101000000FF
Berion jest offline   Odpowiedz cytując ten post
Stary 29.12.2013, 15:56   #6
andy
logged out
CDRinfo VIP
 
Avatar użytkownika andy
 
Data rejestracji: 12.07.2003
Lokalizacja: /home
Posty: 12,518
andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>andy jest wzorem do naśladowania <650 - 999 pkt>
Tylko jej status zmienia się w większości dynamicznie. Mogę mieć przed sobą np. aplikację Fejsiunia i jest ona widziana jako aplikacja o największym priorytecie (akurat jest widoczna dla użytkownika) więc w przypadku małej ilości pamięci zostanie zamknięta jako jedna z ostatnich. W przypadku kiedy ją zminimalizuje to jej priorytet się zmniejsza.

Może sposób jaki to rozwiązało Google nie jest idealny, jednak jak do tej pory nie usłyszałem porządnego projektu jak by to miało wyglądać.

//btw, temat powinien brzmieć Multitasking w Androidzie.
__________________
XMPP: andrzej(at)czerniak.info.pl
andy jest offline   Odpowiedz cytując ten post
Stary 31.12.2013, 14:09   #7
sobrus
Jukebox Hero
 
Avatar użytkownika sobrus
 
Data rejestracji: 17.09.2004
Lokalizacja: Back for the Attack
Posty: 10,800
sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>
Mała korekta : to ze Android tak działa to nie wynika z tego że to system mobilny.
Przykładowo Windows Mobile działał dokładnie tak jak desktopowy odpowiednik (kwestia jednego ustawienia czy wolisz aplikacje minimalizować czy ubijać).
W momencie gdy zabrakło RAM oczywiście musiał ubić aplikacje w tle, ale dochodziło do tego rzadko.
Możłiwe było oczywiście zignorowanie zamykania aplikacji, wtedy system kiedyś sobie ubijał, działało to i tak dużo rzadziej i lepiej niż obecnie na Androidzie.

Z drugiej strony bez problemu można skonfigurować desktopa by zachowywał się jak Windows Mobile (wyłączyć swapa i czekać na oom killera). Nawet na Windows (swap 0MB).

Po prostu Android jest tak wymagający jeżeli chodzi o RAM, że to jedyne sensowne wyjście ubijać non stop wszystko co się rusza, żeby władować inne programy.
Albo montować minimum 1GB RAM (i kto mówi że Vista była wymagająca? Android jest bardziej )
Bo nawet podstawowe aplikacje jak kalendarz, telefon czy launcher + usługi często nie mogą sie pomieścić w pamięci na raz na telefonach z 512MB (zwłaszcza żeby nie przekroczyć wysokich progów oom killera).

Na WM przy 64MB RAM (22 wolnego po boocie) programy praktycznie nigdy nie znikały bez sensu, zdarzało mi się nawet obrabiać na nim bitmapy po kilkadziesiąt MB ( ze swapem na karcie pamięci a co!).
O w takim programie http://conduits.com/products/artist/ którego odpowiednika dziś próżno szukać w Google Play ( a na WM był z 10 lat temu).

Moim zdaniem podejście Androida nie jest inteligentne i pisałem już o tym. Inteligenty system trzyma w wszystko w RAM i ubija w całkowitej ostateczności. Definiowanie progów i stałe utrzymywanie pewnego (dość duzego) obszaru pustego "na zapas" dla maszyny wirtualnej to marnowanie i tak oraniczonych zasobów. Bez dużego pustego obszaru Android niestety wydajnościowo klęka, dlatego nie można obniżyć progów do zera (sprawdziłem u siebie - kończyło sie resetem bo cierpliwość się skończyła).

Na efekt takich rozwiązań (i innych jak maszyna virtualna) nie trzeba długo czekać : zamula, przycina itd... Mam SGS2+ (i9105) z 1GB RAM i 4.1 i też czasem przycina choć jest goły i wesoły (służbówka).

Ostatnio zmieniany przez sobrus : 31.12.2013 o godz. 14:43
sobrus jest offline   Odpowiedz cytując ten post
Odpowiedz na post

Opcje związane z dyskusją
Tryby wyświetlania Oceń tę dyskusję
Oceń tę dyskusję:

Twoje uprawnienia:
Nie możesz rozpoczynać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz umieszczać załączników
Nie możesz edytować swoich postów

BB codeWłączone
EmotikonkiWłączone
Kody [IMG]Włączone
Kody HTML są Wyłączone

Teleport


Wszystkie czasy w strefie CET. Aktualna godzina: 01:29.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.