Profilatura delle app Android
Prima di distribuire l'app in un app store, è importante identificare e risolvere eventuali colli di bottiglia delle prestazioni, problemi di utilizzo eccessivo della memoria o uso inefficiente delle risorse di rete. A questo scopo sono disponibili due strumenti del profiler:
- Xamarin Profiler
- Android Profiler in Android Studio
Questa guida presenta Xamarin Profiler e fornisce informazioni dettagliate per iniziare a usare Android Profiler.
Xamarin Profiler
Xamarin Profiler è un'applicazione autonoma integrata con Visual Studio e Visual Studio per Mac per la profilatura di app Xamarin dall'interno dell'ambiente di sviluppo integrato (IDE). Per altre informazioni sull'uso di Xamarin Profiler, vedere Xamarin Profiler.
Nota
È necessario disporre di una sottoscrizione per Visual Studio Enterprise per sbloccare la funzionalità Xamarin Profiler in Visual Studio Enterprise in Windows o in Visual Studio per Mac.
Android Studio Profiler
Android Studio 3.0 e versione successiva include lo strumento Android Profiler. È possibile usare Android Profiler per misurare le prestazioni di un'app Xamarin Android compilata con Visual Studio, senza la necessità di una licenza di Visual Studio Enterprise. Tuttavia, a differenza di Xamarin Profiler, Android Profiler non è integrato con Visual Studio e può essere usato solo per profilare un pacchetto dell'applicazione Android (APK) compilato in precedenza e importato in Android Profiler.
Avvio di un'app Xamarin Android in Android Profiler
I passaggi seguenti illustrano come avviare un'applicazione Xamarin Android nello strumento Android Profiler di Android Studio. Negli screenshot di esempio seguenti un'app di esempio Xamarin Forms viene compilata e profilata con Android Profiler:
Nelle opzioni di compilazione del progetto Android disabilitare Use Shared Runtime (Usa runtime condiviso). In questo modo si garantisce che il pacchetto dell'applicazione Android (APK) venga compilato senza una dipendenza dal runtime di Mono in fase di sviluppo condiviso.
Compilare l'app per Debug e distribuirla in un dispositivo fisico o in un emulatore. In questo modo, viene compilata una versione Debug firmata del pacchetto APK. Per l'esempio XamagonXuzzle, il pacchetto APK risultante è denominato com.companyname.XamagonXuzzle-Signed.apk.
Aprire la cartella di progetto e passare a bin/Debug. In questa cartella individuare la versione Signed.apk dell'app e copiarla in una posizione facilmente accessibile (come il desktop). Nello screenshot seguente il file com.companyname.XamagonXuzzle-Signed.apk del pacchetto APK viene individuato e copiato sul desktop:
Avviare Android Studio e selezionare Profile or debug APK (Profila o esegui il debug del pacchetto APK):
Nella finestra di dialogo Select APK File (Seleziona file APK) passare al pacchetto APK compilato e copiato in precedenza. Selezionare il pacchetto APK e fare clic su OK:
Android Studio caricherà il pacchetto APK e disassemblerà classes.dex:
Al termine del caricamento del pacchetto APK, Android Studio visualizza la schermata di progetto seguente per il pacchetto APK. Fare clic con il pulsante destro del mouse sul nome dell'app nella visualizzazione struttura ad albero a sinistra e selezionare Open Module Settings (Apri impostazioni modulo):
Passare a Project Impostazioni Modules (Progetto Impostazioni > moduli), selezionare il nodo -Signed dell'app e quindi fare clic su <No SDK (Nessun SDK>):
Nel menu a discesa Module SDK (SDK modulo) selezionare il livello di Android SDK usato per compilare l'app (in questo esempio è stato usato il livello API 26 per compilare XamagonXuzzle):
Fare clic su Apply (Applica) e su OK per salvare questa impostazione.
Avviare il profiler dall'icona della barra degli strumenti:
Selezionare la destinazione di distribuzione per l'esecuzione/profilatura dell'app e fare clic su OK. La destinazione di distribuzione può essere un dispositivo fisico o un dispositivo virtuale in esecuzione in un emulatore. In questo esempio viene usato un dispositivo Nexus 5X:
Dopo l'avvio del profiler, saranno necessari alcuni secondi per la connessione al dispositivo di distribuzione e al processo dell'app. Durante l'installazione del pacchetto APK, Android Profiler segnalerà No connected devices (Nessun dispositivo connesso) e No debuggable processes (Nessun processo sottoponibile a debug).
Dopo alcuni secondi, Android Profiler completerà l'installazione del pacchetto APK e lo avvierà, segnalando il nome del dispositivo e il nome del processo dell'app sottoposto a profilatura (in questo esempio, rispettivamente LGE Nexus 5X e com.companyname.XamagonXuzzle):
Dopo avere identificato il dispositivo e il processo sottoponibile a debug, Android Profiler avvia la profilatura dell'app:
Se si tocca il pulsante per la scelta in modo casuale in XamagonXuzzle (che determina la scelta casuale dei riquadri), verrà visualizzato l'aumento dell'utilizzo della CPU durante l'intervallo di scelta casuale dell'app:
Uso di Android Profiler
Informazioni dettagliate per l'uso di Android Profiler sono incluse nella documentazione di Android Studio. Gli argomenti seguenti sono di particolare interesse per gli sviluppatori Xamarin Android:
CPU Profiler : spiega come esaminare l'utilizzo della CPU e l'attività del thread dell'app in tempo reale.
Memory Profiler : visualizza un grafico in tempo reale dell'utilizzo della memoria dell'app e include un pulsante per registrare le allocazioni di memoria per l'analisi.
Network Profiler : visualizza l'attività di rete in tempo reale dei dati inviati e ricevuti dall'app.