Come funzionano le app Android in Windows 11?
Si sente tanto parlare di applicazioni Android su Windows 11 ma cosa sappiamo realmente? Facciamo un po’ di chiarezza.
Non vedevo davvero l’ora della presentazione di Windows 11, ma non ho resistito e ho installato la versione beta tramite il programma Windows Insider. Quello che più di tutto mi ha spinto a non aspettare l’aggiornamento alla versione stabile è stato solo uno: le app Android su Windows!
L’idea mi ha entusiasmato fin dalla prima volta che ne ho sentito parlare, ma non ho potuto fare a meno di pormi qualche doanda. Perché è necessario e come funzionerà?
Dopotutto, non molto tempo fa Microsoft ha fatto un grosso pasticcio con il suo Windows sull’architettura ARM, in cui le applicazioni x86 funzionavano molto male. E se non ci sono riusciti allora, per quale motivo sarà possibile fare praticamente la stessa cosa adesso?
Comprendendo questi problemi, ho letteralmente visto la luce. Questa volta Microsoft ha in mente un progetto davvero molto vasto e importante.
Oggi scopriremo come funziona “Rosetta” di Microsoft e allo stesso tempo scopriremo in che modo l’emulatore differisce dal traduttore. Scopriremo come Windows stia pian piano divenendo Linux e daremo un’occhiata al futuro di Microsoft che intende conquistare il mondo.
Emulatori
Cominciamo con una piccola parte teorica. I programmi comunicano con il processore utilizzando un insieme specifico di istruzioni. E per ogni architettura, questo insieme di istruzioni è diverso. Pertanto, per eseguire un’applicazione scritta per l’architettura ARM su un processore Intel x86, è necessario spiegare in qualche modo al processore cosa vuole da esso il programma straniero.
Questo può essere fatto in diversi modi. E uno dei più comuni è l’emulazione.
Ad esempio, esiste un’enorme varietà di emulatori Android per Windows. Ma qual è allora il problema e perché inventare qualcos’altro?
Il punto è che gli emulatori sono inefficaci. In generale, un emulatore è un programma che finge di essere hardware. Cioè, un emulatore è un software che cerca di imitare l’hardware della piattaforma.
Il programma, inserito nell’emulatore, non “capisce” nemmeno di trovarsi ora in un ambiente alieno. È come Neo all’interno di Matrix. Sembra che ci sia un mondo reale intorno, ma a volte i dubbi si insinuano. C’è qualcosa che non torna, “ho avuto un dejavu”, i cucchiai si piegano. Bene, hai capito. Questo perché l’emulazione ha un enorme sovraccarico.
Leggi anche:
Immagina che affinché il software funzioni correttamente al 100%, devi emulare un intero processore e quindi gli emulatori sono lenti.
E va bene, se stiamo parlando di una semplice console a otto bit come Dendy. Tali emulatori, nonostante la loro totale inefficienza, funzioneranno rapidamente anche su uno smartphone Windows Mobile. Ma emulare un processore Intel è molto più difficile.
Da qui i freni su Windows su ARM. Dopotutto, Microsoft ha utilizzato l’emulatore per eseguire applicazioni x86. A proposito, l’emulatore si chiamava WOW64, ma non si è rivelato affatto WOW, come sai.
Inoltre, fino ad ora, Windows su ARM non supporta l’emulazione di applicazioni a 64 bit, solo a 32 bit, ovvero x86, non x64, il che aggrava ulteriormente la situazione. Ma c’è una spiegazione per questo.
L’emulatore WOW64 è stato originariamente inventato per eseguire applicazioni a 32 bit su Windows a 64 bit, ovvero per un compito importante Microsoft non ha nemmeno creato un nuovo emulatore, ma molto probabilmente ha solo modificato quello vecchio.
Ma l’anno scorso Microsoft ha promesso che sarebbe apparso il supporto per le applicazioni a 64 bit… e molto presto. Forse sarà implementato in un modo completamente diverso.
Ti stai chiedendo come? Facciamo un esempio di come ha fatto Apple quando è passato dai processori Intel ai propri chip sull’architettura ARM. Con l’aiuto di una cosa incredibile chiamata Rosetta 2.
Dopotutto, su ARM in qualche modo vengono eseguite miracolosamente applicazioni x86 con quasi nessuna perdita di prestazioni.
Traduttore
Cos’è Rosetta 2? Scientificamente, è un traduttore binario, cioè un traduttore. Rosetta traduce semplicemente una serie di istruzioni da un’architettura all’altra e il gioco è fatto.
Ma perché è meglio dell’emulazione? Il punto è che l’emulazione avviene sempre in tempo reale. E Rosetta traduce l’applicazione in anticipo durante l’installazione o al primo avvio.
Pertanto, quando l’utente apre l’applicazione, sta già lavorando con il codice nativo, che viene eseguito senza alcun sovraccarico aggiuntivo. E alla fine, tutto funziona quasi alla stessa velocità dell’hardware nativo!
Ma, ovviamente, non tutto è così roseo! In caso contrario, nessuno avrebbe raccolto versioni diverse di applicazioni per architetture diverse. I traduttori hanno gravi inconvenienti.
Primo, tradurre tutto il codice sorgente eseguibile per l’architettura di destinazione non è un compito facile e nella maggior parte dei casi semplicemente impossibile. Alcune parti del codice eseguibile sono disponibili solo durante l’utilizzo dell’applicazione. Pertanto, tali parti vengono trasmesse in modo dinamico, “al volo”. Questo processo si chiama compilazione Just In Time o compilazione JIT.
Leggi anche:
Naturalmente, questo è un processo sovraccarico, ma anche questo può essere ottimizzato. La sequenza di codice dinamico risultante può essere memorizzata nella cache. L’ottimizzazione aggressiva può essere applicata ai frammenti di codice. Pertanto, in alcuni casi, tradotto per un’architettura diversa, ma allo stesso tempo il codice ottimizzato può essere eseguito anche più velocemente dell’originale.
Questo effetto è tipico dei nuovi Mac. Ad esempio, un Blender non adattato tramite Rosetta ha funzionato più velocemente che in modo nativo sul di un MacBook Pro 16. Ma devi pagare anche per questo.
Il codice tradotto occupa molto spazio e la memorizzazione nella cache dinamica consumerà la risorsa SSD. In particolare, questo effetto si osserva sui programmi pesanti che non sono ancora stati ricostruiti per ARM. Pertanto, devi scegliere prestazioni veloci o un SSD di lunga durata.
Intel Bridge
Ma perché sto parlando così a lungo di Apple se largomento di partenza è Windows 11?
Il fatto è che per lanciare applicazioni Android nel nuovo Windows, Microsoft ha deciso di fare più o meno la stessa cosa che hanno fatto i Cupertiniani. Insieme a Intel, hanno sviluppato la tecnologia Intel Bridge, che chiamano post-compiler. Ma, in sostanza, è lo stesso traduttore binario.
Microsoft descrive questa tecnologia così:
“Viene creata un’applicazione proxy nativa che funge da ponte tra il modello di applicazione Android e il modello di applicazione Windows”.
In altre parole, come con Rosetta. L’applicazione verrà tradotta in codice nativo in fase di installazione. E frammenti inaccessibili verranno trasmessi al volo.
E dato che le applicazioni Android nella loro massa sono abbastanza semplici, non c’è quasi dubbio che tutto sarà in ordine con la traduzione.
WSL
Nel caso di Windows, la traduzione del codice da x86 ad ARM non è una sfida importante. Dopotutto, c’è anche incompatibilità a livello di sistema operativo.
Android e Windows sono sistemi completamente diversi. Android è basato su un kernel Linux modificato e prevede di passare a un kernel Linux puro in futuro. E Windows è solo Windows. Windows non ha nulla a che fare con Linux. Quindi, come verranno eseguite le app Android?
Ed ecco un momento inaspettato. Si scopre che nel 2016, Microsoft ha introdotto un sottosistema Windows per Linux, chiamato WSL (sottosistema Windows per Linux).
Era un sottosistema speciale che permetteva di eseguire applicazioni Linux in ambiente Windows. Il sistema funzionava bene, ma lentamente, poiché funzionava sul kernel di Windows NT.
Le richieste del sistema Linux sono state tradotte in richieste che il kernel di Windows ha compreso e solo allora sono state inviate ulteriormente. Ci è voluto molto tempo.
Ma nel 2019, hanno annunciato la seconda versione del sottosistema WSL 2, in cui il kernel Linux funziona parallelamente al kernel di Windows, che ha accelerato il sistema venti volte e ha reso Windows mezzo Linux.
Cioè, hai capito bene, WSL funziona anche su Windows 10, devi solo installarlo separatamente. Ma in Windows 11, il sottosistema Linux sarà costruito fuori dagli schemi.
Come puoi immaginare, la presenza di un kernel Linux funzionante a tutti gli effetti ha permesso a Microsoft di ottenere la massima compatibilità con le applicazioni Android.
Leggi anche:
Secondo la descrizione di Microsoft, le app Android si comporteranno proprio come le normali app Windows e puoi fidarti di questo:
- Si apriranno in una finestra separata.
- Sarà possibile appuntare l’applicazione sulla barra delle applicazioni
- Ci sarà pieno supporto per: tastiera, mouse e persino cuffie Bluetooth.
- Inoltre, sarà possibile trasferire file tra applicazioni Windows e Android.
- Allo stesso tempo, Android supporta già ora l’assemblaggio di APK universali, in cui è possibile comprimere i binari per entrambe le architetture ARM e x86? per cui è necessario mettere una spunta nell’assieme (gli sviluppatori mi correggano nei commenti se sbaglio). Pertanto, in alcuni casi, le applicazioni Android potrebbero non aver nemmeno bisogno di essere passate attraverso il traduttore Intel Bridge.
Ad ogni modo, Android si sta allontanando dagli APK classici e passa ad AAB, ma non approfondirò questo argomento ora.
Tuttavia, rimangono domande sull’implementazione delle applicazioni Android su Windows.
Innanzitutto, cosa accadrà al supporto per Google Play Services? Molto probabilmente non ci sarà. Pertanto, molte applicazioni funzioneranno in modo incompleto o non funzioneranno affatto.
E la seconda domanda. Perché ostinarsi con questa compatibilità? Dopotutto, l’utilizzo di un’applicazione mobile su un computer non è che sia proprio il massimo, no?
Beh, se consideriamo che molti laptop Windows hanno schermi tattili, sicuramente il punto di vista cambia.
Allora perché è stato fatto tutto questo enorme lavoro sull’integrazione di Linux in Windows, sulla creazione del traduttore Intel Bridge e sulla finalizzazione dell’intera cosa per le applicazioni Android?
Il futuro di Windows
Ed eccoci pronti a fare un’ipotesi audace. Sembrerebbe che il supporto delle applicazioni Android sia una delle fasi dell’abbandono completo del kernel di Windows NT e del passaggio al kernel di Linux. Sì, sembra pazzesco. Ma prima, non sono l’unico a pensarla così. In precedenza lo stesso pensiero è stato espresso da una persona rispettata, l’evangelista dell’open source Eric Raymond.
Guarda tu stesso quanto sia logico tutto:
- Nel mondo, quasi tutti i sistemi operativi sono basati su Unix (come Mac OS) o Linux (Ubuntu, Android, ecc.). Solo Windows è uno di quelli speciali seduto sul suo Windows NT kernel, con il quale ci sono molti problemi. Lo sviluppo richiede un sacco di soldi. E il kernel Linux è gratuito.
- In secondo luogo, nel kernel stesso ci sono molte vulnerabilità che devono essere costantemente coperte con patch.
- Windows non ha avuto successo nel segmento mobile.
- Microsoft ha già impiegato molti anni e risorse per creare un sottosistema Linux per Windows. Pertanto, il passaggio al kernel Linux è un passaggio abbastanza logico.
Ecco quale scenario si sta aprendo: per prima cosa stiamo tutti migrando a Windows 11 su architettura x86. E ci stiamo lentamente abituando al fatto che le applicazioni Android funzioneranno normalmente su Windows. Allo stesso tempo, grazie agli sforzi di Apple, tutti stanno lavorando su software per l’architettura ARM, motivo per cui vince anche Microsoft. Pertanto, stiamo iniziando lentamente a passare a Windows ARM, su cui le applicazioni Android generalmente sembrano native.
Leggi anche:
A poco a poco, il kernel Linux diventa l’ambiente principale e Windows è secondario. Inoltre, il kernel di Windows NT viene tagliato fuori e Windows diventa una shell grafica per Linux. Ebbene, sul kernel di Windows NT rimarranno solo server e apparecchiature varie, dove l’eredità del vecchio Windows non può essere in alcun modo sradicata.
Questo è sicuramente lo scenario più audace e… del tutto possibile.
Ma anche se così non fosse? Beh, in ogni caso, supportare le app Android è una mossa molto interessante. E per Windows su ARM, sarà sicuramente utile, ricordando ad esempio i tablet!
Ci sarebbe ancora un ultimissima domanda che mi frulla per la testa ossia, quando arriverà questa integrazione con le app Android? 🤔
Conclusioni
Sto utilizzando la versione beta di Windows 11 da qualche giorno e ho avuto un atteggiamento un po’ ambivalente.
Il primo impatto è che sia solo un agioramento della shell grafica. Tuttavia, a parte il design sotto il cofano, non è cambiato molto, ma sembra che non ci siano problemi con la compatibilità dei driver. L’aspetto però non mi dispiace. La nuova interfaccia è davvero carina e semplice e ha molte funzioni interessanti sia con il menu Start che con le finestre. Ti ci abitui in soli 10 minuti.
Una volta provato ti piace e l’idea di tornare alla vecchia skin non ti sfiorerà per niente. Ciò significa che il passaggio al nuovo Windows sarà indolore e gli utenti saranno generalmente soddisfatti. E questa è già una vittoria.
Ti potrebbe interessare:
Segui guruhitech su:
- Google News: bit.ly/gurugooglenews
- Instagram: instagram.com/guruhitech_official
- Telegram: t.me/guruhitech
- Facebook: facebook.com/guruhitechweb
- Twitter: twitter.com/guruhitech1
- Threads: threads.net/@guruhitech_official
- GETTR: gettr.com/user/guruhitech
- Rumble: rumble.com/user/guruhitech
- VKontakte: vk.com/guruhitech
- MeWe: mewe.com/i/guruhitech
- Skype: live:.cid.d4cf3836b772da8a
- WhatsApp: bit.ly/whatsappguruhitech
Esprimi il tuo parere!
Che ne pensi di questa integrazione Android su Windows 11? Lascia un commento nell’apposita sezione che trovi più in basso e se ti va, iscriviti alla newsletter.
Per qualsiasi domanda, informazione o assistenza nel mondo della tecnologia, puoi inviare una email all’indirizzo guruhitech@libero.it.