Podgląd pojedynczego posta
Stary 07.02.2009, 15:37   #11
Piterniel
Cichy mod
 
Avatar użytkownika Piterniel
 
Data rejestracji: 16.03.2003
Lokalizacja: Wrocław
Posty: 4,485
Piterniel jak się przyłoży ma szansę zostać specem <150 - 249 pkt>Piterniel jak się przyłoży ma szansę zostać specem <150 - 249 pkt>
Byłem ostatnio w iStore czy iShopie czy jak to tam się zwie ;-) Dokładniej w Magnolia Park - Wrocław. Spytałem się obsługi dlaczego miałbym kupić iPhone zamiast jakiegoś telefonu z Symbianem lub Windows Mobile. Jedyny argument jaki zdołałem usłyszeć to, że iPhone chodzi płynnie. Wyżej w topicu też się przewinęła ta płynność...

Rozumiem, że przez tą płynność rozumie się, że nie widać zamrożenia ekranu tylko ciągłą animację czy coś w tym stylu?

Odkąd systemy operacyjne stały się multiprocesowe (działanie więcej niż jednego procesu jednocześnie) zaczyna się pojawiać problem synchronizacji oraz zakleszczenia tych procesów. System operacyjny dostarcza środowiska programistycznego, odpowiednich bibliotek i przerwań do współbieżnej obsługi wielu programów.

Można tutaj przytoczyć system Mac, który jest w większej części pisany przez firmę Apple. Jest dedykowane oprogramowanie, które współgra dobrze wraz z resztą systemu. Nie wiem jak w przypadku programów zewnętrznych czy muszą być certyfikowane przez Apple czy nie
Wiem, że aby dostać się do Appstore (tak to się nazywa?) trzeba przejść weryfikację aby została ona tam dodana. Więc w iStore niestety powiadomiono mnie, że nie będę mógł w pełni legalnie napisać swojego programu na ten telefon. Ale zawsze można telefon złamać ;-)

Teraz przytaczając szybko system Linux stworzony przez wielu ludzi na świecie. Nie występuje tutaj jedno wielkie bardzo dobrze współpracujące środowisko, które wszystko robi identycznie. Każdy ma swój styl programowania, więc aplikacje wyglądają różnie i zachowują się różnie. Wykorzystują różne biblioteki dekoracji okna (GTK, QT, Java-Swing). Jeżeli uruchomimy parę aplikacji z GTK, niektóre dedykowane dla KDE (QT) to system nie wygląda tak 'spójnie'. Nie chodzi z nim wszystko tak 'płynnie', nie wszystko współgra z paskiem gnome (on jest tylko w jakimś standardzie obsługuje).
Mam nadzieje, że pokazałem małą różnicę między systemami. Można to przenieść do smartfonów.

iPhone 3G według iStore posiada procesor 800Mhz i on jest jakoś wykorzystywany przez system operacyjny. Większy czas procesora może przekazywać bibliotece odpowiedzialnej za animację, tak samo każdy program przy inicjalizacji musi przekazać sterowanie tej bibliotece i nadać jej pełny priorytet. Oczywiście tutaj zgaduje w tym momencie jak według Apple ma wyglądać aplikacja na ich system po pozytywnej weryfikacji. Dlatego dla usera zewnętrznego wszystko wygląda płynnie.

W przypadku WM oraz SymbianOS można pisać własne programy i je instalować. Sam osobiście korzystam z interpretera języka Python w SymbianOS, który z resztą ma bardzo dobrą dokumentację. Tylko wolność w pisaniu oprogramowania przynosi ze sobą jedną rzecz. Nie wszystkie aplikację muszą ze sobą współgrać, tak samo wyglądać i się zachowywać. Mogą nie zwracać uwagi na podwójne odświeżanie zawartości okna. Chociaż wszystko działa poprawnie i dobrze, a na ekranie zostanie kawałek jakiś aplikacji to znaczy, że albo ona nie zadziałała poprawnie, albo została źle wykorzystana funkcja systemowe.
Można oczywiście kilka Mhz stracić na wyświetlenie animacji, ale nie trzeba. Przykładowo ja jak piszę program to wole napisać serwer lub aplikację konsolową, która zjada o wiele mniej zasobów - chociaż nie wygląda pięknie, nie skacze, nie świeci i przesuwa się płynnie ;-)

Tak więc wszystko zależy od koncepcji jaką przyjmie się przy tworzeniu systemu. Każde rozwiązanie ma wady. Mi nie przeszkadza, że coś się dzieje stopniowo - to jest normalne, procesor może obsłużyć jedną operacje jednocześnie. Więc jeżeli najpierw program narysuje mi menu, później obliczy lub zainicjuje zmienne, a po tym wszystkim dorysuje dekoracje to mi to nie przeszkadza. Oczywiście można zrobić to inaczej, aby wszystko było płynne itp. tylko wtedy modułowość jest ograniczona.

Przykładowo mi osobiście podoba się, że jak wchodzę w menu ustawień wyglądu czekam, aż całe menu się załaduje stopniowo bo widzę, że można tutaj coś dodać. System nie odczytuje wszystkiego statycznie przy starcie, tylko dynamicznie korzysta z programów i usług - jest elastyczny. Dla niektórych to niepotrzebne, niektórych to bawi.

Smartek woli jak mu wszystko ładnie świeci i wygląda, demek i nimal (ja również) stawiają na wydajność i użyteczność.

Jeżeli coś zużyło 10 taktów procesora i ładnie się pojawiło, a coś zużyło 7 taktów i pojawiło się bez animacji to nie znaczy, że proces 10 taktowy jest płynniejszy. JEST ale tylko dla oka


Troche mi to długie wyszło
Piterniel jest offline   Odpowiedz cytując ten post