• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

Configurare build variant in Android Studio

By Giuseppe Maggi | on 29 Maggio 2017 | 0 Comment
Senza categoria
Grade Build Variant in Android Studio

La flessibilità offerta da Gradle permette anche di creare delle build variant, versioni diverse della medesima app all’interno dello stesso progetto. Se ne possono immaginare vari casi di utilizzo come la produzione di una versione demo ed una completa, una gratuita e una a pagamento e molti altri ancora.

In questo post, considereremo gli aspetti della configurazione Gradle che devono essere manipolati per permettere la creazione di più build variant, ad ognuno dei quali potrà essere fornito un insieme diverso di risorse, impostazioni e codice Java.

Build type e flavor

Una build variant è costituita dalla congiunzione di un build type e di un flavor. Per quanto riguarda i primi, al momento della creazione di un nuovo modulo, ne vengono creati due in automatico da Android Studio: i build type release e debug.

Se ne trova traccia nel file build.gradle del modulo:

android {
...
...
buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
...
...
}

Gli attributi che vengono inseriti al loro interno rappresentano un diverso atteggiamento del build type rispetto a quello di default. Se, ad esempio, volessimo inserire un aspetto differente per il build type debug ci basterebbe inserire un blocco debug {...} all’interno del nodo buildTypes {…}.

Anche la creazione di un flavor si risolve in un nodo di tipo productFlavors, da inserire all’interno del blocco android sebbene esternamente a quello di tipo buildTypes:

android {
    ...
    ...
    buildTypes {
                 ...
                 ...
               }
    productFlavors {
        firstFlavorName {
            ...
            ...
        }
        secondFlavorName {
            ...
            ...
        }
    }
}

dove al posto delle stringhe firstFlavorName e secondFlavorName andrebbero indicati i nomi che si vogliono assegnare.

A dimostrazione del fatto che un build variant è composto dall’incrocio di un build type e di un flavor,  si noti che anche il suo nome risulta dalla concatenazione del nome di un flavor con quello dei vari build type. Vediamo subito degli esempi.

Risorse diverse nei vari build variant

Immaginiamo che per qualche motivo vogliamo che una nostra app abbia un colore di sfondo diverso a seconda del flavor che stiamo considerando. Definiamo pertanto due flavor – assegniamo loro nomi tipici per esempi di questo tipo come demo e full – e supponiamo di voler un layout con sfondo rosa nel primo e viola nel secondo.
Procediamo così:

  • nel file build.gradle del modulo inseriamo la definizione dei flavor con eventuali impostazioni che potrebbero interessarci:
    productFlavors
                {
                    demo{
                        applicationId="it.devapp.esempiobuildvariants.pink"
                        versionName="1.0-pink"
                    }
    
                    full{
                        applicationId="it.devapp.esempiobuildvariants.purple"
                        versionName="1.0-purple"
                    }
                }
  • sincronizziamo il progetto con i nuovi file di gradle;
  • creiamo ulteriori cartelle di risorse, a partire dalla cartella src del modulo, all’interno delle quali inseriremo le sole risorse che variano da un flavor all’altro. Nel nostro caso, predisporremo solo una risorsa colore di nome sfondo (la figura seguente riporta la visualizzazione Project):android-grable-build-variants_img_01
  • infine, per fare in modo che la risorsa venga presa in considerazione la assegniamo all’attributo background della nostra app in relazione al layout che abbiamo fissato.

I Build Variant creati potranno essere consultati nel relativo pannello che si apre cliccando sull’etichetta Build Variants, in basso a sinistra nell’interfaccia di Android Studio:

android-grable-build-variants_img_02

Aprendo il file di layout dell’Activity – per noi, activity_main.xml – noteremo nell’anteprima la differenza di colore di sfondo.

Questo nel caso di un Build Variant con flavor demo:

android-grable-build-variants_img_03

e questo nel caso di un Build Variant con flavor full:

android-grable-build-variants_img_04

Diversificare i sorgenti

Oltre a fornire risorse diverse, le build variant possono distinguersi per funzionalità  e per questo motivo è necessario predisporre classi con il medesimo nome in flavor diversi.

Immaginiamo che si voglia fare in modo che all’avvio dell’Activity – solo nel flavor demo –  venga presentata una finestra di dialogo che porti a conoscenza che si sta guardando una versione non full del software. Dovremo creare due classi MainActivity nelle cartelle relative ai due flavor ma facendo attenzione a non mettere una classe con lo stesso nome sotto la cartella main: ciò produrrebbe un errore di classe duplicata.

Aggiungendo il seguente codice Java nel metodo onCreate della MainActivity presente sotto la cartella demo:

new AlertDialog.Builder(this)                                         
        .setMessage("Attenzione: versione DEMO dell'app!")            
        .setPositiveButton("Chiudi", null)                            
        .show();

all’avvio dell’app in una build variant con questo flavor verremo accolti dal seguente messaggio:

android-grable-build-variants_img_05

Ciò non avverrà passando ad una build variant con flavor full e lanciando l’app. Tra l’altro notando il colore dello sfondo, si vede che è rosa (reso più scuro dall’apparizione della finestra di dialogo) che dimostra ulteriormente che è stato utilizzato il flavor demo.

Conclusioni

L’utilizzo delle build variant dimostra come l’introduzione di Gradle in Android Studio sia stato davvero un potenziamento importante considerando la flessibilità nella configurazione che permette. Soprattutto, un aspetto molto interessante consiste nella semplicità sintattica delle direttive da fornire nei file build.gradle per diversificare i comportamenti: per il resto si tratta per lo più di una riorganizzazione di file e cartelle.

Share this story:
  • tweet

Tags: androidandroid studiogradleTutorial Pratici

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • IntelliJ IDEA: IDE per programmare in Java e Kotlin

    25 Luglio 2018 - 0 Comment
  • Android: usare Connect Pattern

    10 Luglio 2018 - 0 Comment
  • Android: il metodo findViewById() non richiede più il cast

    21 Giugno 2018 - 0 Comment

Author Description

No Responses to “Configurare build variant in Android Studio”

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO