Panoramica dello sviluppo di Android in Windows
Guida per configurare l'ambiente di sviluppo in un computer Windows 10 o Windows 11 per lo sviluppo di app Android. Android è un marchio di Google LLC. Questa guida è uno strumento utilissimo per gli sviluppatori interessati all'uso del sistema operativo Windows per creare app che funzionano su dispositivi Android e in altre piattaforme per dispositivi.
Inoltre è possibile imparare a usare il Sottosistema Windows per Android™️ per aggiornare e testare l'applicazione Android in modo che venga eseguita in un dispositivo Windows 11 usando Amazon Appstore. Altre informazioni.
Windows come ambiente di sviluppo
Esistono più percorsi per lo sviluppo di un'app per dispositivi Android usando il sistema operativo Windows. Questi percorsi rientrano in tre tipi principali: sviluppo Android nativo, sviluppo multipiattaforma e sviluppo di giochi Android. Questa panoramica consente di decidere quale percorso di sviluppo seguire per sviluppare un'app Android e quindi fornire i passaggi successivi per iniziare a usare Windows per lo sviluppo con:
*Se si usa Xamarin per le app multipiattaforma, consultare Eseguire la migrazione da Xamarin a .NET MAUI.
Inoltre, questa guida fornisce suggerimenti sull'uso di Windows per:
- Test in emulatore o dispositivo Android
- Sviluppo app a doppio schermo per Android e SDK per dispositivi Surface Duo
Android nativo
Lo sviluppo nativo di Android in Windows significa che l'app è destinata solo ad Android (non ai dispositivi iOS o Windows). È possibile usare Android Studio o Visual Studio per sviluppare all'interno dell'ecosistema progettato specificamente per il sistema operativo Android. Le prestazioni saranno ottimizzate per i dispositivi Android, l'aspetto dell'interfaccia utente sarà coerente con altre app native nel dispositivo e sarà semplice accedere e usare qualsiasi funzione o funzionalità del dispositivo dell'utente. Lo sviluppo dell'app in un formato nativo consentirà facilità di lavoro perché segue tutti i modelli di interazione e gli standard di esperienza utente stabiliti specificamente per i dispositivi Android.
Multipiattaforma
I framework multipiattaforma offrono una singola codebase che può (principalmente) essere condivisa tra dispositivi Android, iOS e Windows. L'uso di un framework multipiattaforma può aiutare l'app a mantenere lo stesso aspetto ed esperienza nelle piattaforme del dispositivo, oltre a trarre vantaggio dall'implementazione automatica degli aggiornamenti e delle correzioni. Invece di dover comprendere un'ampia gamma di linguaggi di codice specifici del dispositivo, l'app viene sviluppata in una codebase condivisa, in genere in un linguaggio.
Anche se i framework multipiattaforma puntano ad avere l'aspetto più vicino possibile alle app native, non saranno mai integrati senza problemi come un'app sviluppata in modo nativo e potrebbero subire una riduzione di velocità e prestazioni. Inoltre, gli strumenti usati per creare app multipiattaforma potrebbero non avere tutte le funzionalità offerte da ogni piattaforma del dispositivo diversa, potenzialmente richiedendo soluzioni alternative.
Una codebase è in genere costituita da codice dell'interfaccia utente, per la creazione dell'interfaccia utente come pagine, pulsanti, controlli, etichette, elenchi e così via e codice logico, per chiamare i servizi Web, accedere a un database, richiamare funzionalità hardware e gestire lo stato. In media, il 90% di ciò può essere riutilizzato, anche se in genere è necessario personalizzare il codice per ogni piattaforma del dispositivo. Questa generalizzazione dipende in gran parte dal tipo di app che si sta realizzando, ma fornisce un po' di contesto che si speri contribuisca al processo decisionale.
Scelta di un framework multipiattaforma
- Un framework multipiattaforma per la creazione di app per dispositivi mobili e desktop native con C# e XAML.
- Sviluppare app che possono essere eseguite in Android, iOS, macOS e Windows da un'unica codebase condivisa, con accesso diretto a ogni aspetto di ciascuna piattaforma nativa da una singola API unificata che consente un'esperienza di sviluppo di scrittura singola (WORM), un modello di scrittura globale.
- Condividere il layout e la progettazione dell'interfaccia utente tra le piattaforme.
- Un'evoluzione open source di Xamarin.Forms, estesa da scenari per dispositivi mobili a desktop, con controlli dell'interfaccia utente ricompilati per prestazioni ed estendibilità.
- Eseguire la migrazione di progetti Xamarin.Android a .NET MAUI
- Codice di interfaccia utente: JavaScript
- Codice di logica: JavaScript
- L'obiettivo di React Native non è scrivere il codice una sola volta ed eseguirlo in qualsiasi piattaforma, piuttosto imparare una volta (la modalità React) e avere un modello di scrittura globale.
- La community ha aggiunto strumenti come creazione app React Native ed Expo per aiutare coloro che vogliono creare app senza usare Xcode o Android Studio.
- Analogamente a .NET MAUI (C#), React Native (JavaScript) chiama elementi dell'interfaccia utente nativi (senza la necessità di scrivere Java/Kotlin o Swift).
- Codice di interfaccia utente: HTML, CSS, JavaScript
- Codice di logica: JavaScript
- Le PWA sono app Web create con modelli standard per consentire loro di sfruttare le funzionalità delle app native e Web. Possono essere compilati senza un framework, ma un paio di framework diffusi da considerare sono Ionic e Apache Cordova.
- Le PWA possono essere installate in un dispositivo (Android, iOS o Windows) e possono funzionare offline grazie all'incorporazione di un ruolo di lavoro del servizio.
- Le PWA possono essere distribuite e installate senza un App Store usando solo un URL Web. Microsoft Store e Google Play Store consentono a PWA di essere elencati, ma attualmente non possono essere installati in qualsiasi dispositivo iOS che esegue la versione 12.2 o successiva.
- Per altre informazioni, vedere questa introduzione alle PWA su MDN.
Sviluppo di giochi
Lo sviluppo di giochi per Android è spesso univoco dallo sviluppo di un'app Android standard, poiché i giochi usano in genere la logica di rendering personalizzata, spesso scritta in OpenGL o Vulkan. Per questo motivo, e a causa delle numerose librerie C disponibili che supportano lo sviluppo di giochi, è comune per gli sviluppatori usare C/C++ con Visual Studio, insieme ad Android Native Development Kit (NDK) per creare giochi per Android. Attività iniziali per C/C++ per lo sviluppo di giochi.
Per altre indicazioni sullo sviluppo di giochi Android, consultare il sito per sviluppatori Android: Nozioni di base sullo sviluppo di giochi. Troverai indicazioni sull'uso di un motore di gioco (ad esempio Unity, Unreal, Defold, Godot), oltre all'uso di IDE (ad esempio Android Studio o Visual Studio).
Passaggi successivi
- Attività iniziali per lo sviluppo Android nativo in Windows
- Attività iniziali per il sottosistema Windows per Android
- Attività iniziali per lo sviluppo per Android con .NET MAUI
- Attività iniziali per sviluppo di Android usando React Native
- Attività iniziali per lo sviluppo di PWA per Android
- Sviluppare app a doppio schermo per Android e ottenere l'SDK per dispositivi Surface Duo
- Abilitare il supporto della virtualizzazione per migliorare le prestazioni di Emulator