Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Le prestazioni di un'app sono scarse se risponde lentamente, mostra animazioni discontinue, si blocca o consuma troppa energia. Per risolvere i problemi di prestazioni è necessario eseguire il profiling dell'app o identificare le aree in cui l'app utilizza in modo inefficiente risorse come la CPU, la memoria, la grafica o la batteria del dispositivo. Questo argomento descrive gli strumenti e le tecniche di Android Studio da utilizzare per risolvere i problemi di prestazioni più comuni.
Per scoprire come eseguire i profiler autonomi senza eseguire l'intero IDE Android Studio (solo Windows o Linux), consulta Eseguire il profiler autonomo.
Requisiti
Per creare il profilo della tua app, ti consigliamo di avere quanto segue:
Un'app con una variante di build di release in cui è attivata la configurazione del manifest profileable, nota anche come app profilabile. Per impostazione predefinita, per le app questa configurazione è impostata su true. Per controllare o modificare questa configurazione, apri il file manifest o AndroidManifest.xml dell'app e cerca la configurazione del manifest profileable nella sezione <application>:
<profileable android:shell="true" />
Un dispositivo di test virtuale o fisico con livello API 29 o versioni successive e Google Play.
Plug-in Android per Gradle 7.3 o versioni successive.
App profilabili e app di cui è possibile eseguire il debug
Un'app con profilo ti consente di eseguire le attività di profilazione più comuni, ma se devi registrare allocazioni Java/Kotlin o acquisire un dump dell'heap, ti consigliamo di utilizzare un'app debuggabile. Un processo dell'app e un dispositivo di debug che eseguono
livello API 26 o versioni successive ti consentono anche di visualizzare la sequenza temporale Interazione, che
mostra le interazioni utente e gli eventi del ciclo di vita dell'app nelle visualizzazioni delle attività che li forniscono.
Un'app di cui è possibile eseguire il debug si basa sulla variante di compilazione debug della tua app e ti consente di utilizzare strumenti di sviluppo come il debugger. Tuttavia, comporta alcuni costi in termini di prestazioni. Un'app profilabile si basa sulla variante di compilazione release della tua app e abilita un sottoinsieme di attività di profilazione comuni senza il sovraccarico delle prestazioni della compilazione di debug.
Crea ed esegui un'app profilabile
Per compilare ed eseguire un'app profilabile in Android Studio:
Seleziona la variante di build della release (Build > Seleziona variante di build).
Fai clic su Altre azioni
> Profila "app" con un overhead ridotto
o su Profila "app" con dati completi
("app" è il nome della configurazione di esecuzione, quindi potrebbe essere diverso per ciascuno). Per scegliere tra le due opzioni, consulta la sezione Requisiti.
L'app si apre sul dispositivo di test e il riquadro Profiler si apre in Android Studio.
Per avviare un'attività di profilazione, segui questi passaggi:
Seleziona un processo dall'elenco nella scheda Home del riquadro Profiler. Nella maggior parte dei casi, ti consigliamo di selezionare il processo principale che rappresenta la tua app.
Seleziona un'attività di profilazione dalla sezione Attività. Per ulteriori informazioni sulle attività, consulta le altre pagine di questa sezione. Non tutte le attività di profilazione sono disponibili per ogni processo. Se non sai da dove iniziare, ottieni una panoramica complessiva dell'attività di rendimento controllando la tua app in tempo reale.
Utilizza il menu a discesa Avvia attività di profiler da per selezionare se avviare l'attività di profiler all'avvio o se collegarti al processo durante l'esecuzione. Se stai tentando di migliorare il tempo di avvio dell'app o di acquisire un processo che si verifica durante l'avvio dell'app, devi includere l'avvio. In caso contrario, puoi avviare il profiling nello stato corrente dell'app.
Fai clic su Avvia attività del profiler. L'attività si avvia in una scheda separata.
Interagisci con la tua app in modo che le attività vengano attivate.
Interrompi la registrazione (se applicabile), attendi che venga analizzata e visualizza i risultati.
Confrontare, esportare e importare tracce
Quando interrompi un'attività di profilazione, questa viene salvata automaticamente nella scheda Registrazioni
passate del riquadro Profiler. Puoi utilizzare queste registrazioni salvate per confrontare l'utilizzo delle risorse in diversi scenari. Le registrazioni vengono salvate per la durata della sessione corrente di Android Studio. Se vuoi conservarle più a lungo, esportale facendo clic su Esporta registrazione.
Non tutti i tipi di tracce possono essere esportati.
Per importare una traccia, ad esempio da un'esecuzione precedente di Android Studio, fai clic su
Importa registrazione
nella scheda Registrazioni precedenti e seleziona il file traccia. Puoi anche importare un file trascinandolo nella finestra dell'editor di Android Studio.
Modificare la configurazione della registrazione
Per modificare la configurazione della registrazione delle attività del profiler, fai clic sulle impostazioni del profiler.
Puoi attivare/disattivare due impostazioni principali:
Per le attività che prevedono il campionamento, l'intervallo di campionamento rappresenta il tempo tra ogni campione. Più breve è l'intervallo specificato, più velocemente
si raggiunge il limite di dimensioni del file per i dati registrati.
Il limite di dimensione del file rappresenta la quantità di dati che può essere scritta sul dispositivo connesso. Quando interrompi la registrazione, Android Studio analizza questi dati
e li mostra nella finestra del profiler. Se aumenti il limite e registri una grande quantità di dati, Android Studio impiega molto più tempo per analizzare il file e potrebbe non rispondere.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2024-11-22 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2024-11-22 UTC."],[],[],null,["# Profile your app performance\n\nAn app has poor performance if it responds slowly, shows choppy animations,\nfreezes, or consumes too much power. Fixing performance problems involves\n*profiling* your app, or identifying areas in which your app makes inefficient\nuse of resources such as the CPU, memory, graphics, or the device\nbattery. This topic describes the Android Studio tools and techniques to use to\nfix common performance problems.\n\nTo learn how to run standalone profilers without running the entire Android\nStudio IDE (Windows or Linux only), see\n[Run the standalone profiler](/studio/profile/standalone-profiler).\n\nRequirements\n------------\n\nTo profile your app, we recommend having the following:\n\n- An app with a release build variant that has the `profileable` manifest\n configuration enabled, also known as a profileable app. By default, apps have\n this configuration set to true. To check or change this configuration open\n your app's manifest or `AndroidManifest.xml` file and look in the\n `\u003capplication\u003e` section for the\n [`profileable`](/guide/topics/manifest/profileable-element) manifest\n configuration:\n\n \u003cprofileable android:shell=\"true\" /\u003e\n\n | **Note:** Use a [debuggable](/studio/debug) app instead of a profileable app if you need to record Java/Kotlin allocations, capture a heap dump, or see the **Interaction** timeline in task views that provide it.\n- A virtual or physical test device that runs API level 29 or higher and has\n Google Play.\n\n- Android Gradle Plugin 7.3 or higher.\n\n### Profileable v. debuggable apps\n\nA profileable app lets you do most common profiling tasks, but you should use a\n[debuggable](/studio/debug) app instead if you need to record Java/Kotlin\nallocations or capture a heap dump. A debuggable app process and device running\nAPI level 26 or higher also lets you see the **Interaction** timeline, which\nshows user interaction and app lifecycle events, in task views that provide it.\n\nA debuggable app is based on the `debug` build variant of your app and lets you\nuse development tools such as the [debugger](/studio/debug); however, it comes\nwith some performance costs. A profileable app is based on the `release` build\nvariant of your app and enables a subset of common profiling tasks without the\nperformance overhead of the debug build.\n| **Note:** In Android Studio, click **Profile 'app' with low overhead** to use a profileable app and click **Profile 'app' with complete data** to use a debuggable app.\n\nBuild and run a profileable app\n-------------------------------\n\nTo build and run a profileable app in Android Studio, follow these steps:\n\n1. [Create a run/debug configuration](/studio/run/rundebugconfig) if you don't already have one.\n2. Select your release build variant (**Build \\\u003e Select Build Variant**).\n3. Click **More actions\n \\\u003e Profile 'app' with low overhead** or **Profile 'app' with complete data** (\"app\" is the name of the run configuration, so it might be different for you). To choose between the two options, see [Requirements](#requirements). The app opens on your test device and the **Profiler** pane opens in Android Studio.\n\nIf these instructions don't work for you, see [Build and run a profileable app\nmanually](/studio/profile/build-run-manually).\n\nStart profiling\n---------------\n\nTo start a profiling task, follow these steps:\n\n1. Select a process from the list in the **Home** tab within the **Profiler**\n pane. In most cases, you'll want to select the top process that represents\n your app.\n\n2. Select a profiling task from the **Tasks** section. For more info about the\n tasks, see the other pages in this section. Not all profiling tasks are\n available for every process. If you don't know where to start, get an overall\n view of performance activity by\n [inspecting your app live](/studio/profile/inspect-app-live).\n\n3. Use the **Start profiler task from** drop-down to select whether to start the\n profiler task from startup or attach to the process as it's running. If you're\n trying to improve your app startup time or capture a process that happens\n during app startup, you should include startup; otherwise, you can start\n profiling at your app's current state.\n\n4. Click **Start profiler task**. The task starts in its own tab.\n\n5. Interact with your app so activities are triggered.\n\n6. Stop the recording (if applicable), wait for it to parse, and see the\n results.\n\nCompare, export, and import traces\n----------------------------------\n\nWhen you stop a profiling task, it's automatically saved in the **Past\nRecordings** tab within the **Profiler** pane. You can use these saved\nrecordings to compare resource usage in different scenarios. The recordings are\nsaved for the duration of the current Android Studio session; if you want to\nkeep them for longer, export them by clicking **Export recording**\n.\nNot all trace types can be exported.\n\nTo import a trace, for example from a previous run of Android Studio, click\n**Import recording**\n\nin the **Past Recordings** tab and select your trace file. You can also import a\nfile by dragging it into the Android Studio editor window.\n\nEdit the recording configuration\n--------------------------------\n\nTo edit your profiler task recording configuration, click the profiler settings\n.\nThere are two main settings you can toggle:\n\n- For tasks that involve sampling, the **Sample interval** represents the time between each sample. The shorter the interval you specify, the faster you reach the file size limit for the recorded data.\n- The **File size limit** represents the amount of data that can be written to the connected device. When you stop recording, Android Studio parses this data and displays it in the profiler window. If you increase the limit and record a large amount of data, Android Studio takes much longer to parse the file and might become unresponsive.\n\n| **Note:** If you use a connected device running Android 8.0 (API level 26) or higher, there isn't a limit on the file size of the trace data, and the **File\n| size limit** value is ignored. However, you still need to be careful about how much data the device collects after each recording because large trace files are difficult to parse. For example, if you're recording either a sampled trace with a short sampling interval or an instrumented trace while your app calls many methods in a short time, you'll generate large trace files quickly."]]