Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia Tuesday TopDrive KupDnes Navrcholu Bomba NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Proč je iOS plynulejší než Android?

Na serveru Androidmarket.cz vyšlo pěkné vysvětlení nad faktem, kterého si musel všimnout asi každý uživatel OS Android. Animace a reakce systému nejsou tak plynulé, jako u iOS a nebo Windows Phone.

Andrew Munn, inženýr z Google, vysvětluje, že vše je dáno historickým zaměřením Androidu na zařízení s klávesnicí, kde není taková odezva nutná. S rozmachem zařízení s dotykovým displejem nedošlo k přepsání tohoto kódu a nyní by již mohla vzniknout zpětná nekompatibilita aplikací.

Předchozí zprávička Následující zprávička        
JardaP . aura:23
8. 12. 2011 9:31 Nový

Re: Proč je iOS plynulejší než Android?

celé vlákno

"...vysvětlení nad faktem..."

Tato konstrukce patrne znamena, ze je nekde nejaky fakt a nad nim levituje vysvetleni.

titanik
titanik (neregistrovaný) ---.opera-mini.net
8. 12. 2011 11:32 Nový

to je pekny kec

celé vlákno

protoze, kdyz ma aplikace na krku jvm, tak logicky nemuze bezet plynule, ale to nikdo neprizna

YaDo
YaDo (neregistrovaný) 212.29.3.---
8. 12. 2011 11:53 Nový

Re: to je pekny kec

celé vlákno

Skuste si precitat aj ten odkazovany clanok

titanik
titanik (neregistrovaný) ---.opera-mini.net
8. 12. 2011 13:31 Nový

Re: to je pekny kec

celé vlákno

tak uz je mi to jasne, on je totiz velky rozdil v odezve, kdyz stisknu klavesu, nebo zasmudlam po obrazovce :)

Karell aura:84
8. 12. 2011 14:53 Nový

Re: to je pekny kec

celé vlákno

Opravdu je, stisk klavesy je jedna udalost, vyvola jedno preruseni, vyvola to nejakou zmenu v gui, ktera se da dobre akcelerovat, protoze treba takova animace dobehne cela.
Smudlanim po obrazovce se generuje hromada udalosti, pri takovem dragovani je nutno reagovat okamzite na posun o kazdy pixel, na vsechny zmeny v pohybu, je to v principu uplne jiny rezim, navic tolik udalosti na klavesnici nemate ani sanci vygenerovat.

k77
k77 (neregistrovaný) 194.1.130.---
8. 12. 2011 13:32 Nový

Re: to je pekny kec

celé vlákno

a mozes dat aj vysvetlenie preco by nemohla aplikacia beziaca na jvm bezat plynule?

Diskobolos
Diskobolos (neregistrovaný) 2a00:1028:401:----:----:----:----:----
8. 12. 2011 15:49 Nový

Re: to je pekny kec

celé vlákno

Jinak, ukaz nejakou javovou ktera bezi (z ruznych platforem na prumernem HW). Ja zadnou takovou nikdy nevidel.

Karell aura:84
8. 12. 2011 16:04 Nový

Re: to je pekny kec

celé vlákno

Tezko muzu posoudit prumerny HW, ale zrovna vcera jsem zkousel SmartGit, je uplne v pohode, treba takove netbeans jsou proti MSVS2010 zihadlo plne srovnatelne s VS2005 (s lehkym prihlednutim k moznostem editoru).

Aneb uz jsem videl svizne i smejdske aplikace psane v jakemkoli jazyce, je to mnohem vic o designu a tech umelcich co to pisou nez o jazyku samotnem.

k77
k77 (neregistrovaný) 193.67.103.---
9. 12. 2011 10:52 Nový

Re: to je pekny kec

celé vlákno

ano, denne ich pouzivam, napriklad netbeans, eclipse, sqldeveloper (ten az nato, ze je trosku prasacky napisana, ale to nema nic s rychlostou javy/JVM).

anonym
anonym (neregistrovaný) ---.net.upcbroadband.cz
10. 12. 2011 3:08 Nový

Re: to je pekny kec

celé vlákno

Eclipse nieje zly, ale k sviznosti C/C++ aplikacii ma daleko. Proste to vidiet na odozve, ze nieje uplne okamzita. Na sucasnych pc sa s nim da dobre pracovat, ale kazdy clovek co prejde z nativnej C/C++ aplikacie na Javovsku aplikaciu si vsimne maly rozdiel v odozve (aj na sucasnych pc).

Neviditelný
Neviditelný (neregistrovaný) ---.53.broadband14.iol.cz
8. 12. 2011 16:51 Nový

Andrew Munn se mýlí

celé vlákno

Z diskuse pod zmíněným příspěvkem vyplývá, že to není Android, co by nutil vývojáře kreslit v hlavním vlákně, ale spíše lenost vývojářů kreslení UI vhodně oddělit. iOS (prý, jeho SDK osobně neznám) dává vývojářům lepší možnosti, jak toto realizovat a proto je tam problém méně citelný. Další záležitostí je samozřejmě GC na Androidu vs. reference counting na iOS.

Lael Ophir
Lael Ophir (neregistrovaný) ---.88.broadband5.iol.cz
8. 12. 2011 17:39 Nový

Re: Andrew Munn se mýlí

celé vlákno

Pokud jsem si všimnul, Android do verze 4 ani nepoužíval HW akceleraci GUI (s výjimkou pár aplikací, kde si to autoři napsali sami).
Windows Phone používá v naprosté většině případů retained mode. Aplikace psaná v .NETu pracuje s nějakými objekty ve stromu (přidá tlačítko do formu, nastaví mu barvu, změní popis), a o zobrazování se nijak nestará. SilverLight pak provádí zobrazování v separátním threadu, a používá u toho HW akceleraci.

Neviditelný
Neviditelný (neregistrovaný) ---.53.broadband14.iol.cz
8. 12. 2011 18:32 Nový

Re: Andrew Munn se mýlí

celé vlákno

Nikoliv. Android používal částečnou HW akceleraci vždycky. Verze 3.0 umožňuje plně akcelerované vykreslování, pokud to vývojář v jejím manifestu explicitně povolí, v ICS je pak toto nastavení výchozí. Dianne Hackborn v jednom příspěvku dále vysvětluje, proč není HW akcelerace až takové terno, jak by se mohlo zdát.

https://plus.google.com/105051985738280261832/posts/2FXDCz8x93s

Lael Ophir
Lael Ophir (neregistrovaný) ---.88.broadband5.iol.cz
8. 12. 2011 20:47 Nový

Re: Andrew Munn se mýlí

celé vlákno

Částečná akcelerace (tj. SW kreslení obsahu okna a pouhé vykreslení okna na obrazovce na dané pozici pomocí GPU) zjevně nestačí.
Je ten rozdíl tedy primárně v retained mode, který Windows Phone používá? V takovém případě totiž není třeba čekat na dokončení operace - řekněme přidání prvku do formu - a lze prostě kreslit to, co je už připravené (ve formě fronty GPU operací nebo hotové bitmapy), a klidně s tím po obrazovce hýbat. Stačí ve visual tree vhodně zamykat nodes, a udržovat nějaké verzování. Tohle v immediate mode těžko udělat.
BTW verze 3.0 je dnes údajně na pouhých 2.4% zařízení s Androidem. Těžko pak čekat, že vývojáři půjdou do použití akcelerace, a odstřihnou se od zbylých 97.6% zařízení (verze 4.0 má 0%).

Daniel Smetana
8. 12. 2011 22:06 Nový

Re: Andrew Munn se mýlí

celé vlákno

Zváštní, pak musím být součástí těch 0%. Navíc Honeycomb je pouze pro tablety, ICS i pro telefony, takže bude mít určitě víc procent až novější mobily dostanou OTA.

Neviditelný
Neviditelný (neregistrovaný) ---.53.broadband14.iol.cz
8. 12. 2011 22:13 Nový

Re: Andrew Munn se mýlí

celé vlákno

Co jsem z článků a reakcí na ně pochopil, problém není v nedostatečném vykreslovacím výkonu, ale v designu aplikací. Toolkit iOS (a asi i WP7) umožňuje jednoduše přesunout část vykreslovací práce na vlákna na pozadí. UI toolkit Androidu s tím nepočítá, protože vznikl ještě před nástupem touchscreenů a potřeba aplikací reagovat okamžitě na akce uživatele se tehdy nepovažovala za tak kruciální. Pokud za použití takového toolkitu vývojář problém umocní např. přístupem do flash paměti v hlavním vlákně, není se čemu divit a neviděl bych to přímo jako vadu Androidu ale spíš diletantství programátorů.

O plnou HW akceleraci na And bych se nebál, pokud se ICS skutečně masově nasadí a nahradí jak řadu 2.3 tak 3.0 (nevidím důvod, proč by se tak nemělo stát).

mat
mat (neregistrovaný) ---.net.upcbroadband.cz
9. 12. 2011 9:18 Nový

Re: Andrew Munn se mýlí

celé vlákno

neviděl bych to přímo jako vadu Androidu ale spíš diletantství programátorů.

Neřekl bych, že programátoři pro iOS nebo WP7 jsou nějak výrazně lepší. Pouze ta prostředí jim davají míň možností dělat věci neefektivně. Čili ano, je to problém Androidu.

O plnou HW akceleraci na And bych se nebál, pokud se ICS skutečně masově nasadí a nahradí jak řadu 2.3 tak 3.0 (nevidím důvod, proč by se tak nemělo stát).

Ano rozšíří, ale nákupem nových telefonů. Stávající se budou muset z větší části vyhodit. Už vidím jak moje ségra, co má Android, bude flashovat na Cyanogen, po kterém ji přestane fungovat GPS nebo kamera.

hawran diskuse aura:60
9. 12. 2011 8:25 Nový

Máme to brát jako omluvu (nebo výmluvu?), že ...

celé vlákno

... díky rozhodnutí kohosi o čemsi kdysi dávno se už prostě daný problém řešit nebude a basta?

Zasílat nově přidané příspěvky e-mailem        

Přehled názorů

Re: Proč je iOS plynulejší než Android?
JardaP . 8. 12. 2011 09:31
to je pekny kec
titanik 8. 12. 2011 11:32
├ 
Re: to je pekny kec
YaDo 8. 12. 2011 11:53
│
└ 
Re: to je pekny kec
titanik 8. 12. 2011 13:31
│
 
└ 
Re: to je pekny kec
Karell 8. 12. 2011 14:53
└ 
Re: to je pekny kec
k77 8. 12. 2011 13:32
 
└ 
Re: to je pekny kec
Diskobolos 8. 12. 2011 15:49
 
 
├ 
Re: to je pekny kec
Karell 8. 12. 2011 16:04
 
 
└ 
Re: to je pekny kec
k77 9. 12. 2011 10:52
 
 
 
└ 
Re: to je pekny kec
anonym 10. 12. 2011 03:08
Andrew Munn se mýlí
Neviditelný 8. 12. 2011 16:51
└ 
Re: Andrew Munn se mýlí
Lael Ophir 8. 12. 2011 17:39
 
└ 
Re: Andrew Munn se mýlí
Neviditelný 8. 12. 2011 18:32
 
 
└ 
Re: Andrew Munn se mýlí
Lael Ophir 8. 12. 2011 20:47
 
 
 
├ 
Re: Andrew Munn se mýlí
Daniel Smetana 8. 12. 2011 22:06
 
 
 
└ 
Re: Andrew Munn se mýlí
Neviditelný 8. 12. 2011 22:13
 
 
 
 
└ 
Re: Andrew Munn se mýlí
mat 9. 12. 2011 09:18
Máme to brát jako omluvu (nebo výmluvu?), že ...
hawran diskuse 9. 12. 2011 08:25