Esegui il debug degli APK predefiniti

Android Studio 3.0 e versioni successive ti consentono di profilare ed eseguire il debug degli APK per cui è stato attivato il debug, senza doverli creare da un progetto Android Studio.

Per iniziare a eseguire il debug di un APK, procedi nel seguente modo:

  1. Nella schermata di benvenuto di Android Studio, fai clic su Profilo o APK di debug.

    Se hai già un progetto aperto, fai clic su File > Profilo o APK di debug nella barra dei menu.

  2. Nella finestra di dialogo che si apre, seleziona l'APK che vuoi importare in Android Studio.

  3. Fai clic su Ok.

Se questa opzione non viene visualizzata, assicurati che il plug-in "Supporto APK Android" sia attivato.

Android Studio visualizza quindi i file APK non compressi, come nella figura 1. Non si tratta di un insieme di file completamente decompilato, ma fornisce file SMALI per una versione più leggibile dei file DEX.

Importazione di un APK predefinito in Android Studio

Figura 1. Importazione di un APK predefinito in Android Studio.

La visualizzazione Android nel riquadro Progetto ti consente di esaminare i seguenti contenuti dell'APK:

  • File APK: fai doppio clic sull'APK per aprire lo strumento di analisi APK.
  • manifests: contiene i file manifest dell'app estratti dall'APK.
  • java: contiene codice Kotlin o Java che Android Studio disassembla (in file SMALI) dai file DEX dell'APK. Ogni file SMALI in questa directory corrisponde a una classe Kotlin o Java.
  • cpp: se l'app include codice nativo, questa directory contiene le librerie native dell'APK (file SO).
  • Librerie esterne: contiene l'SDK Android.

Puoi utilizzare il profiler Android per iniziare a testare le prestazioni della tua app.

Per eseguire il debug del codice Kotlin o Java della tua app, devi collegare le origini Kotlin o Java e aggiungere punti di interruzione nei file di origine Kotlin o Java. Analogamente, per eseguire il debug del codice nativo, devi allegare i simboli di debug nativi.

Collega origini Kotlin o Java

Per impostazione predefinita, Android Studio estrae il codice Kotlin o Java dall'APK e lo salva come file SMALI. Per eseguire il debug del codice Kotlin o Java utilizzando i punti di interruzione, devi indirizzare l'IDE ai file sorgente Kotlin o Java corrispondenti ai file SMALI di cui vuoi eseguire il debug.

Per collegare origini Kotlin o Java, procedi come segue:

  1. Fai doppio clic su un file SMALI dal riquadro Progetto nella visualizzazione Android. Dopo aver aperto il file, nell'editor viene visualizzato un banner in cui viene richiesto di selezionare le origini Kotlin o Java: Allega banner delle origini
  2. Fai clic su Allega origini Kotlin/Java... nel banner nella finestra dell'editor.
  3. Vai alla directory con i file di origine Kotlin o Java dell'app e fai clic su Apri.

Nella finestra Progetto, Android Studio sostituisce i file SMALI con i file sorgente Kotlin o Java corrispondenti. Android Studio include automaticamente le classi interne. Ora puoi aggiungere punti di interruzione e eseguire il debug della tua app.

Collega simboli di debug nativi

Se l'APK include librerie native (file SO) che non includono simboli di debug, Android Studio mostra un banner, simile a quello mostrato nella Figura 1. Non puoi eseguire il debug del codice nativo dell'APK o utilizzare punti di interruzione senza collegare le librerie native di cui è possibile eseguire il debug.

Per collegare le librerie native di cui è possibile eseguire il debug, procedi come segue:

  1. Se non l'hai ancora fatto, scarica NDK e strumenti.
  2. Nella visualizzazione Android, nella directory cpp della finestra Progetto, fai doppio clic su un file di libreria nativo che non include simboli di debug.

    L'editor mostra una tabella di tutte le ABI supportate dall'APK.

  3. Fai clic su Aggiungi nell'angolo in alto a destra della finestra dell'editor.

  4. Vai alla directory che include le librerie native di cui è possibile eseguire il debug che vuoi collegare e fai clic su OK.

Se l'APK e le librerie native di cui è possibile eseguire il debug sono state create utilizzando una workstation diversa, devi specificare anche i percorsi dei simboli di debug locali seguendo questa procedura:

  1. Aggiungi percorsi locali ai simboli di debug mancanti modificando il campo nella colonna Percorsi locali nella sezione Mappature dei percorsi della finestra dell'editor, come mostrato nella Figura 2.

    Nella maggior parte dei casi è necessario fornire solo il percorso di una cartella principale e Android Studio controlla automaticamente le sottodirectory per mappare origini aggiuntive. Inoltre, Android Studio mappa automaticamente i percorsi a un file NDK remoto al tuo download NDK locale.

  2. Fai clic su Applica modifiche nella sezione Mappature percorso della finestra dell'editor.

Specifica i percorsi per i simboli di debug locali

Figura 2. Percorsi locali per i simboli di debug.

I file di origine nativi vengono visualizzati nella finestra Progetto. Apri i file di origine nativi per aggiungere punti di interruzione ed eseguire il debug della tua app. Per rimuovere le mappature, fai clic su Cancella nella sezione Mappature percorsi della finestra di editor.

Problema noto: quando colleghi i simboli di debug a un APK, sia i file APK sia i file SO di cui è possibile eseguire il debug devono essere creati utilizzando la stessa workstation o lo stesso server di build.

In Android Studio 3.6 e versioni successive, non è necessario creare un nuovo progetto quando l'APK viene aggiornato al di fuori dell'IDE. Android Studio rileva le modifiche nell'APK e ti offre la possibilità di reimportarlo.

Importa APK aggiornato

Figura 3. È possibile reimportare gli APK aggiornati al di fuori di Android Studio.