Articoli e news    Prezzi

Windows Phone e iOS più fluidi di Android: caccia ai motivi

12:38 - 7 dicembre 2011 di Manolo De Agostini

Windows Phone, iOS e Android sono sistemi diversi, con i loro punti di forza e debolezza. Android in particolare soffre quanto a sensazione di fluidità, e in Rete si è aperto il dibattito sui motivi. Deve intervenire? Cosa può fare Google? Tanto, ma non troppo.

Perché l'interfaccia di Android non è fluida quanto quella di iOS e Windows Phone? Una domanda che molti si saranno fatti in questi anni e su cui si discute in particolar modo in questi giorni. Ne hanno parlato Dianne Hackborn, Android Framework Engineer, e Andrew Munn, Software Engineer.

Tra i due post il più specifico è quello della Hackborn, che ricorda come Android storicamente usi la modalità software per renderizzare i contenuti di ogni finestra. Nell'interfaccia standard ci sono diversi elementi come la barra di stato, lo sfondo, il launcher in alto e il menù.

"Se una delle finestre aggiorna il proprio contenuto, per esempio quando viene evidenziata una voce, prima della versione 3.0 era il software a riprodurre i nuovi contenuti in quella finestra, ma nessuna delle altre finestre veniva ridisegnata e la ricomposizione di queste era fatta in hardware (con la GPU). Allo stesso modo, ogni movimento delle finestre, come il menù a scomparsa, è tutto gestito dall'hardware".

Per avere una fluidità elevata l'ideale sarebbe far lavorare tutto a 60 frame al secondo, non sempre ci si riesce perché molto dipende dal numero di pixel dello schermo e dalla velocità della CPU. "L'accelerazione hardware totale all'interno di una finestra è stata aggiunta con Android 3.0. […] Il cambiamento principale in Android 4.0 fa sì che le applicazioni rivolte a tale versione avranno l'accelerazione hardware abilitata di default", spiega la Hackborn.

L'accelerazione hardware però non è sempre la panacea di tutti i mali. "Per esempio i driver di PowerVR di dispositivi come Nexus S e Galaxy Nexus usano l'OpenGL con un processo che richiede 8 MB di RAM. Dato che l'overhead del nostro processo è circa 2 MB, la richiesta è elevata. Questa RAM è tolta ad altri compiti, come il numero di processi in background che si possono far funzionare e rallentando aspetti come il passaggio tra le app".

Secondo l'ingegnere Andrew Munn, che ha lavorato nel team Android e che da gennaio passerà in quello Windows Phone - anche se sostiene di essere un grande fan del sistema operativo di Google - tutto il rendering dell'interfaccia in iOS è affidato a un thread dedicato con priorità in tempo reale, mentre Android segue il tradizionale modello PC in cui il rendering avviene nel thread principale con priorità normale. Questo mina alla radice la possibilità di avere un sistema fluido in ogni situazione.

"Potete vederlo voi stessi. Prendete un iPad o un iPhone e aprite Safari. Iniziate a caricare una pagina complessa come Facebook. A metà del caricamento mettete il dito sullo schermo e muovetelo. Tutto il rendering si bloccherà istantaneamente. Il sito non si caricherà fino a quando non toglierete il dito. Questo perché il thread dell'UI intercetta tutti gli eventi e renderizza l'UI con priorità in tempo reale".

"Se ripetete questo test in Android noterete che il browser proverà sia ad animare la pagine che a renderizzare l'HTML, e a fare un buon lavoro con entrambi. Su Android, questo è un caso in cui un processore dual-core efficiente aiuta, ed è per questo che il Galaxy S II è famoso per la sua fluidità". Da notare che Munn è stato accusato di aver semplificato troppo la spiegazione sul fronte iOS e in effetti anche lui ammette che può essere andata così, ma lo scopo era farsi capire e fondamentalmente c'è riuscito.

Munn ritiene inoltre che un altro problema sia rappresentato dalla garbage collection. "Usando l'applicazione delle foto in Honeycomb o ICS potreste esservi chiesti come mai il frame rate è così basso. Il frame rate è limitato a 30 FPS". Far girare il tutto a 60 FPS porterebbe ad avere notevoli rallentamenti casuali dovuti alla garbage collection, "per cui limitare il frame rate a 30 FPS risolve il problema".

Munn punta il dito anche contro Tegra 2, disponibile in diversi prodotti Android, che ha problemi di bandwidth di memoria e non supporta le istruzioni NEON, l'equivalente delle SSE di Intel pensate per accelerare i calcoli multimediali. Infine la macchina virtuale Dalvik non è così matura quanto quella desktop e Java ha problemi noti con le prestazioni delle interfacce grafiche su desktop. Gran parte dei problemi nell'implementazione Dalvik non sono presenti, ma alcuni sì.

Come risolvere il tutto? Le future versioni di Android mitigheranno tanti problemi, ma probabilmente non si potrà agire su tutto, a meno che non s'intervenga alla radice. Questo però potrebbe voler dire scrivere tutte le applicazioni per il nuovo framework, oppure integrare il supporto alla modalità precedente. Un lavoro complesso e con insidie, che potrebbe avere ripercussioni sullo sviluppo delle altre caratteristiche del sistema operativo. Che cosa farà Google? E quanti di voi effettivamente notano nell'interfaccia grafica di Android rallentamenti rispetto ad iOS e Windows Phone?

Condividi:   
  • Ultime news
  • Google
  • Android OS

Commenti

Aggiungi un tuo commento
1/11 avanti    
G-trax 07/12/2011 12:47
 
+1 
prevedo LA GUERRA su questo topic.

ad ogni modo se questa e' la soluzione :

Per avere una fluidità elevata l'ideale sarebbe far lavorare tutto a 60 frame al secondo, non sempre ci si riesce perché molto dipende dal numero di pixel dello schermo e dalla velocità della CPU.

allora "ero capace anch'io"...
Cayman26 07/12/2011 12:51
 
-8 
la frammentazione e la rovina di android .... dovrebbe fare due versioni google: una per i top di gamma e un altra per quelli meno potenti ...

imho
A causa dei voti negativi ricevuti dagli utenti, questo commento non è visibile. Clicca qui per leggerlo.
Red.87 07/12/2011 12:52
 
-3 

 Originariamente inviata da Articolo

E quanti di voi effettivamente notano nell'interfaccia grafica di Android rallentamenti rispetto ad iOS e Windows Phone?


Presente.

Certo è il minore dei difetti di Android, volendo essere sinceri; perché anche se per il resto è un OS abbastanza buono, non può essere che in un TELEFONO le app che mi crashano di più sono "Messaggi" e "Telefono".

Spolliciatemi pure, ma con il telefono aggiornato all'ultima versione, ROM ufficiale, etc. etc., mi è capitato spesso con entrambe le applicazioni
The Dark Melon 07/12/2011 12:53
 
+1 
beh il lag di Android è in effetti sotto gli occhi di tutti..
thunderluca 07/12/2011 12:56
 
+17 
Ottimizzazione ...questa sconosciuta...WP7(/7.5) e iOS sono ottimizzati sull'hardware che hanno, avendo il primo requisiti quasi totalmente fissi per poterlo far girare e l'altro un hardware che si rinnova ad ogni sua nuova versione...mentre Android continua sì ad evolversi, ma lo mettono dappertutto, e non si può chiedere che venga ottimizzato "di fabbrica"...per questo esistono (fortunatamente) i Custom Firmware...
sierrodc 07/12/2011 13:00
 
+15 
Anche io ho notato il lag.
E dispiace che sia dovuto ad un fattore così radicato dell'OS.
E si capisce anche la rincorsa ai dual-quad core sui telefoni android (che per altri sistemi serve in misura relativa).

Detto questo, android ha (come gli altri) molti pregi e difetti. "Liberi" di scegliere.
g.dragon 07/12/2011 13:03
 
+11 
ho un S2 io lo vedo incredibilmente fluido. Mai avuto nessun problema.
Cmq con ICS si dovrebbe avere una fluidità anche con i terminali meno dotati. o perlomeno questo ho capito dal commento del primo ingegnere
StefanoMac 07/12/2011 13:07
 
-29 
Ogni volta che dico che iOS è più fluido e che un 1.2GHz non serve a nulla se non a dire "ce l'ho più lungo io" perchè tanto android scatta uguale, vengo sotterrato da -1.

È per questo che ho continuato a comprare iPhone anche se sono conscio delle sue limitazioni.

La potenza è nulla senza il controllo, Peter Parker l'ha capito, ora sembra anche Google.

EDIT: ooooops... ho sbagliato citazione... capita...
A causa dei voti negativi ricevuti dagli utenti, questo commento non è visibile. Clicca qui per leggerlo.
devilred 07/12/2011 13:07
 
-5 

 Originariamente inviata da thunderluca

Ottimizzazione ...questa sconosciuta...WP7(/7.5) e iOS sono ottimizzati sull'hardware che hanno, avendo il primo requisiti quasi totalmente fissi per poterlo far girare e l'altro un hardware che si rinnova ad ogni sua nuova versione...mentre Android continua sì ad evolversi, ma lo mettono dappertutto, e non si può chiedere che venga ottimizzato "di fabbrica"...per questo esistono (fortunatamente) i Custom Firmware...



quoto la prima parte ma non la seconda. a me sembra proprio che android ad ogni evoluzione richieda hardware superiore, se continuano cosi tra 5 anni avremo smartphone con cpu a 16 core. sull'lg dual girano da schifo qualsiasi versione, non voglio manco parlare delle fantomatiche rom moddate. se cerchiamo sempre uno spiraglio li' dove non c'e' luce allora perdiamo solo tempo, la verita' e' che android e' fatto male in qualsiasi salsa, manca la base c'e' poco da fare. ad oggi l'ho visto funzionare bene solo sul galaxy s2, telefono che all'epoca costava 600 eurozzi. per quello che mi riguarda android e' un discorso chiuso, wp7 su tutti i fronti.
A causa dei voti negativi ricevuti dagli utenti, questo commento non è visibile. Clicca qui per leggerlo.
the dark vash 07/12/2011 13:07
 
+9 
inutile negare. sicuramente diminuisce con un po' di overclock e un launcher alternativo, ma l'iphone rimane piu' fluido (non so wp7, mai provato)
1/11 avanti    
Accedi o  registrati.
Nome utente:
Password:
Segnala TomsHW

Correlazioni

  Azienda: Google
  Categoria: Smartphone
  Tag: Android OS