Andrew Munn, studente laureando in Ingegneria del Software ed ex componente dello staff interno degli ingegneri Google, si concede un break sul suo profilo Google+ e spiega ampiamente il motivo reale che rende la UI Android meno fluida, leggermente più laggosa e meno reattiva rispetto a quella di iOS e WP7. Di seguito riporteremo brevemente le ragioni di questa differenza di prestazioni senza soffermarci troppo sui particolari, in modo da riuscire a far comprendere a tutti i lettori, anche a quelli meno esperti, qual’è il nocciolo della questione. Chi invece volesse approfondire, può recarsi direttamente sul profilo Google+ di Andrew Munn e leggere tutta la relativa esposizione.

La radice del problema è da ricercare in un’inottimale gestione delle priorità da parte di Android rispetto ad iOS e WP7. Infatti iOS ha come priorità real-time assoluta il rendering grafico e questo vuol dire che anche se si sono aperte contemporaneamente più applicazioni, il sistema operativo va a concentrarsi sempre e solo sul processo attualmente utilizzato dall’utente. D’altro canto invece, Android prevede solo una priorità normale, non assoluta, per il rendering grafico e, di conseguenza, i dispositivi Android tendono a diventare più lenti e scattosi quando si cerca di eseguire più operazioni simultaneamente.

Ecco un breve esposto di Andrew Munn:

It’s not because Android runs bytecode and iOS runs native code. It’s because on iOS all UI rendering occurs in a dedicated UI thread with real-time priority. On the other hand, Android follows the traditional PC model of rendering occurring on the main thread with normal priority.

Oltre questo, Munn realizza un esempio basato sul caricamento dei contenuti dell’applicazione Facebook su iPhone o iPad. Egli fa notare come, eventualmente durante il caricamento dei contenuti dovessimo interagire con il display di suddetti terminali con le dita, lo stesso caricamento si bloccherebbe per permettere una navigazione fluida all’utente per poi riprendere nel momento in cui si stacca il dito dal display, cosa che non avviene sul sistema operativo a noi tanto caro, poichè i contenuti vengono comunque caricati a scapito della fluidità del terminale.

Android prevede una normale priorità per il rendering grafico, in stile PC, che non gli permette attualmente di ottenere le stesse prestazioni di iOS e WP7. Con l’introduzione dell’accelerazione hardware in Android Honeycomb prima ed Ice Cream Sandwich poi, si è già fatto qualcosa ed i risultati si sono visti tutti, ma fin quando anche Android non sarà progettato per dare al rendering grafico la massima priorità, allora iOS e WP7 saranno sempre un passo avanti in questi termini.

Personalmente utilizzo terminali Android da circa 2 anni e mi sento di dire che non si sente molto la mancanza di una navigazione sempre fluida all’interno del sistema operativo, quindi con terminali sempre più nuovi e potenti credo che il problema possa ritenersi praticamente inesistente.

Certo però che un’ottimizzazione software che mette come priorità il rendering sarebbe auspicabile.

[Via]