Se a catalizzare l’attenzione su Android 2.2 ( Froyo ) non fossero bastate le indiscrezioni circolate nelle scorse settimane, tra le quali la promessa integrazione di Flash Player 10.1, di sicuro ci sta riuscendo il risultato di un test prestazionale eseguito da AndroidPolice.com .
Il test in questione è il benchmark Linpack, che misura la potenza di un sistema nel calcolo in virgola mobile. Se con Android 2.1 lo smartphone di Google fa generalmente registrare valori compresi fra 6,5 e 7,2 MFLOPF, con Froyo lo stesso benchmark ha fornito come risultato 37,6 MFLOPS, ossia un incremento di circa il 450 per cento . Si tratta di un miglioramento sorpredente, sopratutto considerando che è stato ottenuto esclusivamente grazie ad una ottimizzazione del software.
Per la verità valori nell’ordine dei 37-40 MFLOPS erano già visibili da qualche tempo nella classifica dei risultati di Linpack relativi ad Android: molti li consideravano però dei fake.
Il merito di questo salto prestazionale va attribuito, secondo gli esperti, ad una più veloce Dalvik Virtual Machine , la macchina virtuale all’interno della quale gira il codice Java con cui sono scritte le applicazioni Android. In particolare, la miglioria più importante consisterebbe nell’aggiunta alla Dalvik VM di un compilatore just-in-time (JIT), come nelle vere macchine virtuali Java (Dalvik VM non utilizza il Java bytecode, e non è dunque considerata una VM Java). L’obiettivo dei sistemi JIT è di combinare i vantaggi della compilazione del bytecode a quelli della compilazione nativa, portando le prestazioni di un ambiente di esecuzione runtime molto vicine a quelle di uno tradizionale, che esegue direttamente il codice macchina.
Il compilatore JIT fa parte del codice sorgente di Android fin dalla release 2.0 , risalente allo scorso novembre , ma è stato messo lì a solo scopo di test: di default, infatti, nelle attuali versioni 2.x di Android il JIT è disattivato e nella maggior parte dei firmware commerciali è del tutto assente. Alcune rom non ufficiali, come la famosa CyanogenMod , implementano un kernel che, se ricompilato con uno speciale parametro, desta il JIT dal suo sonno: chi ci ha provato afferma di aver ottenuto significativi incrementi di performance, seppure non così clamorosi come quelli registrati da AndroidPolice.com (che probabilmente ha potuto provare una versione di Froyo quasi definitiva).
Ora restano da capire due cose: primo, se in Android 2.2 il JIT sarà attivo di default; secondo, quanto il boost prestazionale misurato con Limpack influenzerà direttamente la velocità di esecuzione delle applicazioni e il normale uso del sistema operativo. A tal proposito alcuni sviluppatori hanno già precisato che software come Flash o come certi codec multimediali non riceveranno alcun beneficio dal JIT : il motivo è che, per motivi di performance ed efficienza, questi componenti sono scritti nel linguaggio nativo di Android, il C/C++ (una possibilità fornita dal Native Development Kit ).
È poi notizia di questi giorni che il progetto NITDroid è riuscito a far girare Android 2.1 sul Nokia N900 : sebbene al momento questo port sia ancora immaturo e poco affidabile, l’obiettivo dei suoi creatori è quello di renderlo una praticabile alternativa a Maemo per i tablet N8x0 e N900 di Nokia.
Alessandro Del Rosso