Jestem nowym użytkownikiem dlatego z góry przepraszam za ewentualne niezgodności.
Temat który chciałbym poruszyć to co decyduje o tym, że smartfony Apple pomimo przeciętnych parametrów porównywane są do Androidów? Pomijam tutaj kwestie marketingu, interesuje mnie kwestie czysto systemowe.
Ktoś może powiedzieć oklepaną formułkę, że iOS jest spasowany do konkretnego smartfona, ale mnie interesują szczegóły.
Dlaczego Android przy o wiele lepszym sprzęcie wypada podobnie z Iphonami ?
iPhone'y to nie jest sprzęt o przeciętnych parametrach. Popatrzmy na takiego iP6s - ma najwydajniejszy procesor mobilny jaki spotkasz w smartfonach (pomijam Tegrę) i zarazem najmocniejsze GPU, ma najszybszą pamieć wewnętrzną w technologii NVMe która czerpie niektóre rozwiązania z dysków SSD, jej prędkości rzeczywiście są zbliżone do pierwszych dysków SSD (to jest bardzo ważne bo szybkość wczytywania danych z pamięci wpływa znacząco na np. uruchamianie aplikacji), poza tym jest bardzo szybki RAM, reszta elementów też jest jak najbardziej "flagowa". Jedyne co można wytknąć to słaba bateria (tak było od zawsze), choć wersje "plus" trzymają nieżle i potrafią przebić niektóre Androidy, i gorszy aparat bo te 12Mpix co jest teraz robi gorsze fotki od starych 8Mpix. Ale o tym niżej. Do tego wszystkiego dochodzi kwestia optymalizacji pod własny procesor i własny sprzęt co już zostało poruszone.
A na przykład kwestia aparatu, gdzie nierzadko 8 mpix w Iphonie 6 robi lepsze zdjęcia niż Androidy z 20 mpix ?
Tak jak pisałem - aparat 12Mpix obecny w nowych iPhone'ach nie wypada wcale lepiej od aparatów w takich telefonach jak Galaxy S6, Note 5, Nexus 6P, Xperia Z5, LG G4 - to ścisła czołówka i obecnie najlepsze foty strzelają samsungi a w S7 pewnie pozamiatają świetnymi zdjęciami w słabym świetle. Apple zwiększyło rozdzielczość nie zwiększając matrycy co przełożyło się na mniejszy rozmiar piksela czyli gorsze zdjęcia nocne i szumy, w wersji podstawowej nadal nie ma OIS więc trochę zostali w tyle.
W takim razie jeśli Android przez swoją masowość na niektórych płaszczyznach przegrywa ze smartfonami Apple, dlaczego każdy z producentów tworzy wyłącznie nakładki na system, a nie stworzy własnej wersji systemu opartego na Androidzie z Google Play ?
Android jest przecież na darmowej licencji... W czym tkwi problem ?
Patrząc na ilość zmian jaką wnoszą nakładki to można powiedzieć że JUŻ mamy różne wersje Androida. Niektórzy producenci nawet tworzą własne nazwy, np. Flyme OS od Meizu - tam naprawdę ciężko znaleźć pod tą nakładką ślady czystego Androida, niemal wszystko jest wyedytowane. Ale nie chcę się w to zagłębiać. Tak jak ktoś napisał kluczowym elementem systemu android są usługi Google. W to wchodzi także sklep GP. Jak wygląda Android bez usług Google możesz zobaczyć na przykładzie Nokii X. A żeby dostać licencję na wykorzystanie UG należy spełnić jakieś tam warunki zdaje się, być może dlatego nie ma aż takiej dowolności.
To tak słowem wstępu jako uzupełnienie tego co już jest bo co innego chciałem napisać. Chcąc dowiedzieć się dlaczego iOS tak dobrze działa trzeba zwrócić uwagę na inne rzeczy.
Po pierwsze: procesor
Jeśli Cię to interesuje to warty poczytania jest cykl "Apple A7 – 64 bity, które zmieniają wszystko" na Komórkomainii (3 części). Trochę nieaktualny bo dotyczy Apple A7 a mamy już A9 ale jest tam sporo wiedzy. Drugi ciekawy cykl (który pośrednio też dotyczy Twojego pytania) to cykl "ART - największa zmiana w Androidzie od czasu Androida" także na KM (5 części). Możesz tez poczytać o Apple A9 na Anandtech -tekst "Analyzing Apple A9's SoC"
Ja chciałbym zwrócić uwagę na fakt, że procesor Apple jest inaczej zbudowany i opera się na trochę innych założeniach. Tu są tylko dwa rdzenie ale bardzo duże (większe od malutkich rdzeni Cortex) i przede wszystkim są w stanie wykonać więcej instrukcji w tym samym czasie (dwukrotnie więcej, jeśli się nic nie zmieniło) i to jest kluczowa sprawa tutaj. Druga rzecz - te procesory mają bardzo duże pamięci cache, większe i szybsze niż inne układy ARM i to też robi swoje. Więcej cache - więcej danych wprost przy procesorze, nie trzeba ich ciągle przesyłać, są gotowe do przetworzenia.
Druga rzecz: iOS
Co to jest dalvik, co to jest ART? W tekstach, które poleciłem znajdziesz świetne i szczegółowe wyjaśnienie. To maszyny wirtualne, których zadaniem jest tłumaczenie kodu aplikacji na taki, który procesor jest w stanie wykonać. jest to konieczne w przypadku Androida gdzie mamy mnóstwo różnych konfiguracji sprzętu bo dzięki temu wszystko na wszystkim działa. iOS to system pisany natywnie, dla konkretnego procesora, a kod natywny jest dużo, dużo szybszy bo nie wymaga konwersji w maszynie wirtualnej. To jest zasadnicza przyczyna dlaczego Android jest wolniejszy od iOS jako system.
Ale są też inne rzeczy. W Androidzie, tak jak w Windowsie programy mogą swobodnie działać w tle, po przejściu w stan "background" nadal aktywne są usługi, alarmy, zdarzenia itd. Aplikacja ma nadal wolność. Natomiast w iOS aplikacje są bardzo szybko zawieszane, jakby hibernowane i cachowane do pamięci przez co nie zajmują ani czasu procesora ani tyle pamięci. Ale ich wznowienie trwa trochę dłużej i nie mogą działać w tle, z wyjątkami, które musiał sprecyzować developer, a więc np odtwarzacz muzyczny będzie grał w tle. Ważną rzeczą jest też "Garbage Collector" - po co on jest i jak działa, polecam poczytać. O tym mówią artykuły: "How multitasking really works on Android and iOS" i "Why iPhone With 1GB RAM Performs Better Than Android Devices With 2GB Or More RAM?"
Podsumowując - to są zupełnie różne podejścia do tego samego tematu. Apple koncentruje się na świetnej współpracy hardware i software, ale tylko w ścisłym zakresie. natomiast Android ma być jak najbardziej otwarty i ekspansywny - działa na wszystkim, nawet na sprzęcie AGD jeśli byś tego chciał bo łatwo go dostosować do różnych konfiguracji zadań. No i daje znacznie więcej możliwości dla użytkownika, jest bardziej swobodny, zarówno jeśli chodzi o funkcjonalność jak i sterowanie działaniem aplikacji.