Come il primo IDE (Integrated Development Environment) interamente dedicato ad Android, lo Studio Android supportato da Google è una prospettiva entusiasmante per gli sviluppatori Android. Ma significa anche fare i conti con alcune nuove tecnologie, in particolare il sistema di costruzione Gradle.
Questo articolo ti consente di utilizzare il nuovo sistema di build di Android, dalle basi di ciò che è Gradle e di ciò che fa, a uno sguardo approfondito su alcuni dei file Gradle più importanti, all'apprendimento di come eseguire e monitorare le attività di Gradle.
Potrai anche dare uno sguardo più da vicino alle varie finestre degli strumenti di Gradle in Android Studio e imparare come aggiungere dipendenze a un progetto, il tutto senza alcuna precedente esperienza di Gradle.
Il primo passo per fare i conti con il nuovo sistema di build di Android è capire esattamente cosa è Gradle e perché la sua inclusione in Android Studio è una buona notizia per gli sviluppatori Android.
Gradle è un toolkit di build automatizzato che può essere integrato in molti ambienti diversi, tramite plugin. In Android Studio, l'integrazione di Gradle è ottenuta tramite il plugin Android Gradle dal nome appropriato.
Se non hai mai usato Gradle in precedenza, potrebbe sembrare una barriera frustrante per entrare quando stai considerando di passare ad Android Studio. Tuttavia, Gradle ha molto da offrire agli sviluppatori Android, quindi vale la pena investire un po 'di tempo nell'apprendimento dei dettagli di Gradle. Ecco solo alcune delle cose che puoi fare con Gradle.
Gradle ha una serie di impostazioni di configurazione predefinite che vengono applicate automaticamente a tutti i progetti creati in Android Studio. Se stai sviluppando un progetto che non rispetta queste regole di configurazione predefinite, Gradle è facile da personalizzare.
Le dipendenze possono essere moduli, file JAR o librerie e possono trovarsi sul file system locale o su un server remoto.
Gradle genera automaticamente una directory di test e un APK di test dalle origini di test del progetto e può eseguire i test durante il processo di generazione.
Se aggiungi tutte le informazioni necessarie, come ad esempio keyPassword
e keyAlias
, al tuo file di build Gradle, puoi usare Gradle per generare APK firmati.
Gradle può generare più APK con pacchetti diversi e creare configurazioni da un singolo modulo. Questa funzione è particolarmente utile per gli sviluppatori Android, per diversi motivi:
Gran parte dello sviluppo per la piattaforma Android supporta il maggior numero possibile di dispositivi Android e versioni del sistema operativo Android. Il Google Play Store ha persino il supporto per più APK, quindi puoi creare più versioni della tua app, in cui ogni versione ha come target una diversa configurazione del dispositivo, offrendole come un'unica lista di Play store.
È qui che entra in gioco Gradle. Puoi utilizzare il nuovo sistema di build di Android per generare più varianti di APK dallo stesso modulo. Basta dare a queste varianti lo stesso nome del pacchetto e puoi caricarle nella stessa lista di Google Play.
A volte, lo farai volere per elencare più versioni della tua app nel Play Store, ad esempio, se stai offrendo una versione gratuita e una versione "Pro" della tua app. Anche in questo caso, puoi utilizzare Gradle per generare più APK dallo stesso modulo e assegnare ad ogni APK un nome di pacchetto diverso. È quindi possibile caricare separatamente ciascun APK nel Play Store.
Ogni volta che crei un progetto in Android Studio, il sistema di generazione genera automaticamente tutti i file di build Gradle necessari.
Poiché incontrerai lo stesso set di file Gradle ogni volta che crei un progetto Android Studio, creeremo un progetto di esempio di base e quindi daremo un'occhiata più da vicino a questi file generati automaticamente.
Il primo passo è creare il tuo progetto di esempio:
I file di build Gradle usano un Domain Specific Language o DSL per definire la logica di build personalizzata e per interagire con gli elementi specifici di Android del plugin Android per Gradle.
I progetti di Android Studio sono costituiti da uno o più moduli, che sono componenti che è possibile creare, testare ed eseguire il debug in modo indipendente. Ogni modulo ha il proprio file di build, quindi ogni progetto Android Studio contiene due tipi di file di build Gradle:
Per dare un'occhiata a questi file build.gradle, apri Android Studio Progetto pannello (selezionando il Progetto scheda) ed espandere il Script Gradle cartella. Nel nostro progetto di esempio, i primi due elementi nell'elenco sono i file di build di livello principale e modulo del progetto.
Il nostro progetto di esempio ha solo un singolo file di costruzione a livello di modulo, ma lo screenshot qui sotto ti dà un'idea di come Script Gradle la cartella potrebbe cercare un progetto con più moduli.
Ogni progetto di Android Studio contiene un singolo file di build Gradle di primo livello. Questo file build.gradle è il primo elemento che appare nel file Script Gradle cartella ed è chiaramente contrassegnato Progetto.
Nella maggior parte dei casi, non è necessario apportare modifiche a questo file, ma è comunque utile per comprenderne il contenuto e il ruolo che svolge all'interno del progetto. Di seguito è riportata una versione annotata di un tipico file di build di primo livello.
buildscript // I file build Gradle a livello di progetto usano buildscript per definire dipendencies.// repositories jcenter () // Questo file si basa su jJCenter repository.// dependencies classpath 'com.android.tools.build:gradle: 1.0.0 '// Il progetto dipende dalla versione 1.0.0 del plug-in Android per Gradle.// allprojects // Definisce le dipendenze richieste dall'application.// repository jcenter () // L'applicazione dipende sul repository jCenter.//
Oltre al file di build Gradle a livello di progetto, ogni modulo ha un proprio file di build Gradle. Di seguito è riportata una versione annotata di un file di build Gradle di base a livello di modulo.
applica plugin: 'com.android.application' // Poiché questo progetto è un'app per Android, il file build.gradle utilizza Android plugin.// android // La seguente sezione configura tutti i parametri specifici del tuo progetto su Android e dice Gradle quale versione di Android con cui dovrebbe costruire il tuo progetto. Se hai già sviluppato applicazioni Android, quanto segue dovrebbe essere familiare.// compileSdkVersion 21 // L'API il tuo progetto è targeted.// buildToolsVersion "21.1.1" //// La versione degli strumenti di generazione che vuoi use.// defaultConfig applicationId "com.example.jessica.myapplication" // Definisce l'ID dell'applicazione. Nota, le versioni precedenti del plugin Android utilizzavano "packageName" invece di "applicationID." // minSdkVersion 16 // L'API minima richiesta dal tuo project.// targetSdkVersion 21 // La versione di Android per cui stai sviluppando la tua applicazione. // versionCode 1 versionName "1.0" buildTypes release // 'BuildTypes' controlla il modo in cui la tua app è costruita e pacchettizzata. Se vuoi creare le tue varianti di build, dovrai aggiungerle a questa sezione.// minifyEnabled true // Gradle esegue ProGuard durante il processo di build.// proguardFiles getDefaultProguardFile ('proguard-android.txt'), ' proguard-rules.pro '// Applica le impostazioni predefinite di ProGuard dalle dipendenze di Android SDK.// // Dichiara le dipendenze per il modulo corrente.// compile fileTree (dir:' libs ', include: [' * .jar ']) // Sebbene sia possibile aggiungere file JAR compilandoli singolarmente, questo può richiedere molto tempo se si hanno molti JAR. In questo esempio, stiamo dicendo a Gradle di aggiungere tutti i file JAR nell'app / libs folder.// compilare 'com.android.support:appcompat-v7:21.0.3' // Per creare più dipendenze, aggiungili a la chiusura delle spese.//
Oltre ai file build.gradle, il tuo Script Gradle cartella contiene alcuni altri file Gradle. Nella maggior parte dei casi non è necessario modificare manualmente questi file poiché verranno aggiornati automaticamente quando si apportano modifiche rilevanti al progetto. Tuttavia, è una buona idea capire il ruolo che questi file svolgono all'interno del progetto.
Questo file consente ad altre persone di creare il tuo codice, anche se non hanno installato Gradle sul loro computer. Questo file controlla se è installata la versione corretta di Gradle e scarica la versione necessaria, se necessario. Nella nostra app di esempio, gradle-wrapper.properties contiene quanto segue:
distributionBase = GRADLE_USER_HOME // Determina se la distribuzione del wrapper decompressa deve essere memorizzata nel progetto o nella directory home dell'utente Gradle.// distributionPath = wrapper / dists // Il percorso in cui le distribuzioni Gradle richieste dal wrapper sono decompresse.// zipStoreBase = GRADLE_USER_HOME zipStorePath = wrapper / dists distributionUrl = https \: //services.gradle.org/distributions/gradle-2.2.1-all.zip // L'URL da cui scaricare la versione corretta di Gradle da.//
Questo file fa riferimento a tutti i moduli che compongono il tuo progetto. Poiché il nostro progetto di esempio ha un singolo modulo, questo file è molto semplice come puoi vedere qui sotto.
include ': app'
Questo file contiene informazioni di configurazione per l'intero progetto. Di default è vuoto, ma puoi applicare una vasta gamma di proprietà al tuo progetto aggiungendole a questo file.
Questo file indica il plug-in Android Gradle in cui è possibile trovare l'installazione di Android SDK. Per esempio:
sdk.dir = / Users / jessica / Library / Android / sdk
Nota che local.properties contiene informazioni specifiche per Locale installazione di Android SDK. Ciò significa che non si dovrebbe mantenere questo file sotto il controllo del codice sorgente.
Ora che conosci tutti i file Gradle generati automaticamente, è il momento di passare all'interazione con il sistema di build Gradle. La buona notizia è che puoi interagire con Gradle direttamente dall'interfaccia utente di Android Studio.
Intorno ai bordi verticali e orizzontali di Andorid Studio ci sono schede che aprono varie finestre degli strumenti. Nelle prossime sezioni, ti presenterò alcune delle finestre degli strumenti di Gradle specifiche di Android Studio e mostrerò come interagire con il sistema di generazione Gradle tramite queste finestre.
È possibile utilizzare la finestra delle attività di Gradle per esplorare ed eseguire le varie attività coinvolte nella compilazione del progetto in un'applicazione eseguibile.
Per aprire la finestra delle attività di Gradle, fare clic su Gradle scheda lungo il lato destro della tua installazione di Android Studio. Se hai personalizzato l'interfaccia utente di Android Studio e non riesci più a trovare il file Gradle scheda, quindi è possibile selezionare Visualizza> Finestre degli strumenti> Gradle anziché.
Nella scheda Attività Gradle, fai doppio clic sul tuo progetto, seguito dal tuo modulo. Vedrai un elenco di tutte le attività di Gradle relative a questo modulo.
Quando fai doppio clic su un'attività nella finestra delle attività di Gradle, inizia l'esecuzione e l'output appare in un'altra finestra specifica di Gradle, il Console Gradle.
La Console Gradle visualizza l'output delle attività Gradle durante l'esecuzione, insieme a eventuali messaggi di errore o avvisi.
Per aprire la Console Gradle, selezionare il Console Gradle scheda verso il basso a destra del tuo IDE. Se hai personalizzato l'interfaccia utente di Android Studio e non riesci più a trovare questa scheda, puoi sempre selezionare Visualizza> Finestre degli strumenti> Console Gradle anziché.
Prendiamo la console Gradle per un giro. Nella finestra delle attività di Gradle, trova il montare attività, che crea una versione di rilascio dell'applicazione pronta per la distribuzione e fa doppio clic su di essa. Come il montare l'attività viene eseguita, l'output dell'attività viene visualizzato in Gradle Console.
Gradle Console ti comunicherà che il tuo progetto è stato compilato con successo o mostrerà un messaggio "build failed" insieme a informazioni sul motivo per cui la tua build è fallita.
Puoi anche eseguire attività Gradle da Android Studio integrato terminale. Se sai esattamente quale attività di Gradle vuoi eseguire, il Terminale è in genere molto più veloce e più pratico rispetto alla navigazione degli elenchi di attività nella Console Gradle.
Per aprire il terminale, fare clic su terminale scheda verso il basso a sinistra di Android Studio, o seleziona Visualizza> Finestre degli strumenti> Console Gradle. Il terminale si aprirà con la directory corrente già selezionata. È quindi possibile eseguire attività Gradle digitandole nel Terminale e premendo il tasto Ritorno o il accedere tasto sulla tastiera.
In questa sezione, esploreremo come utilizzare Gradle per gestire le dipendenze dei moduli del progetto, le dipendenze binarie locali e le dipendenze binarie remote.
Quando si tratta di aggiungere dipendenze al tuo progetto, Gradle ti offre diverse opzioni.
Il relativo file build.gradle verrà quindi aggiornato automaticamente.
Apri il tuo file build.gradle e aggiungi una nuova regola di build alla chiusura delle dipendenze. Ad esempio, se si desidera aggiungere Google Play Services, la sezione delle dipendenze del progetto sarà simile a questa:
dependencies compile fileTree (dir: 'libs', include: ['* .jar']) compila 'com.google.android.gms: play-services: 6.5. +'
Nel Progetto pannello, Control + Click il modulo al quale si desidera aggiungere la dipendenza e selezionare Apri le impostazioni del modulo.
Seleziona il dipendenze scheda, seguita da + pulsante nell'angolo in basso a sinistra. Puoi scegliere dal seguente elenco di opzioni:
È quindi possibile inserire ulteriori informazioni sulla dipendenza che si desidera aggiungere al progetto. Ad esempio, se si sceglie Dipendenza dalla biblioteca, Android Studio visualizza un elenco di librerie tra cui scegliere.
Dopo aver aggiunto la tua dipendenza, controlla il file build.gradle a livello di modulo. Dovrebbe essere automaticamente aggiornato per includere la nuova dipendenza.
Questo articolo ti ha presentato tutti i file di build Gradle generati automaticamente che troverai nel tipico progetto di Android Studio, in particolare i file di build Gradle di livello superiore e modulo. Hai anche imparato come interagire direttamente con il sistema di generazione Gradle dall'interfaccia utente di Android Studio.
Se sei interessato a saperne di più su Gradle, troverai molte informazioni aggiuntive sul sito web degli sviluppatori Android e sul sito web di Gradle.