"Le app Android gireranno come quelle iOS": ecco come funziona il compilatore Ark di Huawei (foto)

Matteo Bottin
Matteo Bottin
"Le app Android gireranno come quelle iOS": ecco come funziona il compilatore Ark di Huawei (foto)

Con la EMUI 9.1 il nuovo compilatore Ark di Huawei è diventato open source. Il CEO dell'azienda ha affermato che il nuovo compilatore migliorerebbe la fluidità del 24%, la velocità del sistema del 44% e le prestazioni su app di terze parti del 60%. Ma come funziona?

Una volta c'era l'interprete Dalvik VM insieme con il compilatore JIT. Questi, con l'arrivo di Android 4.4 KitKat, sono stati lasciati indietro in favore dell'interprete ART e il compilatore AOT. In seguito, con Android 7 Nougat, JIT è stato reintrodotto per "aiutare" AOT.

Dunque, ora Ark si presenta come una alternativa. Huawei ha assoldato "centinaia di esperti nel settore" nella creazione di questo nuovo compilatore "statico", il quale è in grado di eseguire "una traduzione diretta in linguaggio macchina", dunque togliendo di mezzo la necessità di un interprete. Huawei dice che Ark è stato progettato per massimizzare l'efficienza con i linguaggi Java e C.

Le funzionalità principali di Ark sono:

  • AOT e JIT possono far eseguire il linguaggio macchina direttamente sulla CPU, ma "si portano dietro le limitazioni dell'interprete". Ark usa una "compilazione statica", la quale permette di staccarsi dall'interprete dinamico e quindi apre la possibilità di migliorare le prestazioni delle app.
  • Sebbene un compilatore statico rischi di essere troppo "rigido", Ark è in grado di risolvere il problema "traducendo senza interruzioni le funzionalità dinamiche del linguaggio originale in linguaggio macchina".
  • Ark dovrebbe essere eseguito "durante lo sviluppo del software". Benché non ci siano dettagli, probabilmente qui Huawei intende dire che gli sviluppatori saranno in grado di tradurre direttamente il proprio codice in linguaggio macchina, e di fatto l'apk non necessiterebbe di alcun interprete o macchina virtuale per funzionare.
  • Ark permette di gestire differentemente la "Garbage Collection", dividendo gli eventi in thread di Java separati. Questo dovrebbe ridurre i "saltellamenti" nell'app principale.

Il tutto porterebbe gli aumenti promessi da Huawei.

In questo modo "le app Android girerebbero sullo stesso livello di quelle iOS". Ark per ora è disponibile solo per le architetture ARM, ma l'azienda spera di massimizzare tramite esso le capacità dei suoi processori Kirin. Ovviamente supporta direttamente il codice Java standard, dunque gli sviluppatori non devono fare alcun cambiamento al codice.

I contro? Beh, c'è chi sostiene che le app potrebbero pesare di più con questa tecnica, ma, soprattutto, c'è un problema di ottimizzazione: se l'apk viene gestito in maniera differente su uno smartphone con Snapdragon 845, uno con Snapdragon 625 o uno con processore Exynos. Riuscirà a portare lo stesso vantaggio su tutte le CPU?