
Il successo di iPhone è stato planetario, contando che è uno smartphone per niente economico avrà pur qualcosa che lo rende unico e oggetto del desiderio di molti!! Uno di questi motivi nasce da una domanda posta da molti utenti ad uno degli ingegneri di Google che ha risposto con un bel post sulla sua pagina di Google + spiegando perchè iPhone risulta più fluido nell’utilizzo della media degli smartphone con Android?? La risposta dopo il salto…
Tutti i possessori di iPhone o anche di chi ne ha potuto provare le qualità lo sanno: la semplicità e usabilità di iOS (il sistema operativo di iPhone ,nda) è veramente il top. Se aggiungiamo a questi due elementi la velocità e fluidità di utilizzo dell’interfaccia utente, che rimane sempre tale anche dopo aver installato centinaia di app, si ottiene uno smartphone unico al mondo.
E non dico questo solo perchè sto’ scrivendo un articolo relativo all’usabilità di Android e iOS ma perchè è vero!
Al contrario Android, su molti smartphone anche di ultima generazione, non presenta tale velocità di utilizzo e di movimento fra finestre delle app o scorrimento dell’interfaccia utente.
Il motivo?? Voi starete pensando, sicuramente, alla qualità dell’hardware che fa’ muovere il sistema operativo; invece no vi sbagliate è tutta “colpa” della programmazione del sistema operativo!!
La risposta è stata data proprio da una delle ingegneri che lavora presso Google e poi rimbalzata, anche, da un altro ingegnere sempre di Mountan View!
La palla è stata “calciata” per prima da Dianne Hackborn, la quale, ha spiegato, in un post su Google+, come Android gestisce l’accelerazione hardware della interfaccia grafica. Ha specificato che dalla versione 1.0 di Android i programmatori hanno attivato l’accelerazione hardware per ogni singolo “movimento” grafico. In più ha dato molti dettagli tecnici per gli esperti, che non sto qui a elencare!
Il suo articolo ha avuto un successo davvero inaspettato creando tante altre discussioni ed ovviamente non si poteva che paragonare la gestione della grafica ad iOS.
Così, su questo argomento, è intervenuto, Andrew Munn studente al terzo anno di ingegneria e collaboratore del team di Android (ma anche di Windows Phone dichiara lui, nda) ed in particolare del comparto grafica ed accelerazione hardware. Lo stesso Munn ha specificatamente dichiarato che le sue non sono affermazioni ufficiali del team ma che può parlare molto liberamente in quanto sa quel che dice avendo “fatto i compiti a casa”! 🙂
La risposta è stata davvero tecnica e cercherò di renderla il più comprensibile possibile!
Secondo Munn il motivo per cui su Android, molte volte, non si ha un’utilizzo fluido dell’interfaccia, come iOS, è data da problemi di “Root cause” ovvero di permessi. Su iOS Apple ha esplicitamente voluto: ” iOS all UI rendering occurs in a dedicated UI thread with real-time priority“; cioè dare un “thread” (operazione, nda) dedicato con una priorità elevata in tempo reale alla UI! Mentre Android utilizza le priorità dei thread normali; che si usa, poi, anche nella logica dei PC.
Capite che quando, su iOS, si richiede un utilizzo della UI (User Interface, Interfaccia Utente, nda) quest’ultima avrà priorità massima nell’utilizzo delle risorse anche a scapito di toglierla a qualche altra app in background!! In pratica tutte le risorse vanno all’Interfaccia Utente!
Esempio, per spiegarvi in soldoni cosa ho appena detto, è stato fatto da Munn in persona: provate ad aprire Safari e a caricare una pagina molto pesa graficamente, tipo Facebook, poi durante il caricamento fate clic sul pulsante Home oppure doppio clic per visualizzare il multitasking; noterete come la pagina su Safari si blocchi e il contenuto non sarà più caricato ed elaborato sino a che non ritornate sul browser e smetterete di utilizzare iPhone in altro modo! Questo spiega la priorità che iOS da’ alla UI!
Un altro chiaro esempio è dato dall’utilizzo dell’iPhone quando si sta’ applicando un aggiornamento o installazione di app!! Potete benissimo navigare liberamente all’interno di iOS, usare altre app senza mai notare un rallentamento dovuto all’impegno dell’hardware per l’installazione di app!!
Android ha scelto, invece, un’altra politica molto efficiente ma solo su ambienti hardware potenti (come il nuovo Samsung Galaxy S II, nda). Se effettuiamo lo stessa prova con Android quest’ultimo non bloccherebbe tutti i processi per dare priorità alla UI ma attiverebbe un’acceleratore hardware in grado di utilizzare (se presente) il dual core del processore per lavorare al massimo. Compiendo tutti e due i processi allo stesso momento.
Questi, in parole da inesperto, sono i motivi che rendono più fluida la grafica su iOS! Mi scuso con i professionisti se non sono stato “corretto” nell’utilizzo della terminologia ma ho voluto rendere più chiaro possibile l’articolo!
Se volete leggere tutto l’articolo tecnico, molto interessante, di Munn questo è il link: The Reason Android is Laggy.
Fonte: [citata all’interno dell’articolo]
To…. Nessun commento da parte di qualche affiatato Androidiano… Come mai??
Haaa siiii… Perche,a parlare e'proprio un interno di GOOGLE!!!!
Di fatto non si tratta di maggior velocità ma di priorità ai processi, in linea teorica due operazioni identiche su hardware identico su IOS e su Android arriverebbero a termine nello stesso momento, la differenza è che in IOS una delle due (quella direttamente usata in quel momento dall'utente) arriva prima.
Tu con IOS se stai usando la galleria quando avrai finito di usarla aspetterai il caricamento della pagina web, io con Android aspetterò un po di più il caricamento di una foto dalla galleria e quando torno alla pagina web la trovo caricata.
Noti qualcosa di strano o è solo una questione di scelte?
Diverso non vuol dire "meglio" o "peggio" ma significa solo "diverso", appunto…
Nonostante la notizia, trovo fantastico il mio attuale Galaxy Tab 7" come cellularone e non vedo l'ora di prendere il fantastico Asus Transformer Prime!!
Scusa ho sbagliato
To…. Nessun commento da parte di qualche affiatato Androidiano… Come mai??
Haaa siiii… Perche,a parlare e'proprio un interno di GOOGLE!!!!
BEH??
Di fatto non si tratta di maggior velocità ma di priorità ai processi, in linea teorica due operazioni identiche su hardware identico su IOS e su Android arriverebbero a termine nello stesso momento, la differenza è che in IOS una delle due (quella direttamente usata in quel momento dall'utente) arriva prima.
Si Diego hai ragione. Sono solamente due sistemi differenti. Non ce n'è uno sbagliato o uno giusto…