Gradle

di il
6 risposte

Gradle

Ciao a tutti.
Vorrei capire cosa è il Gradle.
MI sembra di capire che sia un plugin di Android Studio.
In generale con il Gradle posso fare le build.
Ma che significa build?
Ho fatto un paragone con il termine costruire..
Ma cosa viene costruito?

settings.gradle
inlcude ':app'
inserisco i moduli della mia applicazione

buld.gradle(Modulo app)
buildscript{
	repositories{
		jcenter()
		librerie Gradle
	}
	dependencies{
		classpath= '...'
		variabili ambiente
	}
	allprojects{
		repositories{
			jcenter()
			librerie Applicazione
		}
}

build.gradle(Progetto)
questo script cosa costruisce?
Le risorse dell'applicazione?
a cosa serve lato pratico...

6 Risposte

  • Re: Gradle

    Ciao, Gradle è un strumento per automatizzare le build ed è stato sviluppando indipendentemente da Android Studio (cioè puoi usare uno senza dover per forza usare l'altro e viceversa). A cosa serve? Ad effettuare la build della tua applicazione, ovvero a scaricare le dipendenze necessarie (ad esempio librerie fornite da altri sviluppatori), a compilare il codice sorgente, a "impacchettare" gli eseguibili in un file .apk (che è ciò che andrai ad installare sul dispositivo Android e a pubblicare sullo store), ad eseguire in maniera automatica eventuali test, ecc.
    Se non ci fossero strumenti come Gradle (o Maven, o Ant, o altri ancora), dovresti fare tutti i passaggi a mano, con il rischio di sbagliare e/o dimenticare qualche passaggio, oltre al tempo "perso".

    Per farti un paragone con la vita reale, Gradle è come se fosse un pasticcere: tu lo "configuri" (cioè gli dici per quante persone è, che gusti vuoi, se vuoi qualche scritta particolare, ecc), e lui realizza la torta. Senza il pasticcere potresti prendere tu la ricetta ed eseguire manualmente i vari passaggi richiesti ed ottenere gli stessi risultati (salvo errori e/o dimenticanze di cui sopra).
  • Re: Gradle

    Grazie...
    Ho ciminciato a capirci qualcosa in più
    Praticamente serve per compilare, per il test e per l'esecuzione...
    sul libro dice cosi.
    Ma è un tools praticamente...
    è un programma esterno ad Android studio che tramite i plugin di google è capace di "confezionare ed eseguire".
    Voglio dopo ritornare sul definizione di "eseguire "
    Quindi Android studio che cosa è?
    E solo un semplice IDE, non è capace da solo di fare quello che fa Gradle?
    Dovremmo noi scrivere il codice per Gradle?
    Le build che sono uno strumento che in Android studio chiamiamo Gradle.
    Le Build sono un architettura, ma anche uno strumento che esegue tre processi compilazione, configurazione ed esecuzione..
    Nella Build sono presenti anche le librerie
    Ma l'esecuzione/eseguire che significa?
    Cioè la build mi confeziona solo il prodotto
    E questo applicativo poi gira su Android
    dovrebbe essere cosi...
    Eseguire sta per test atomatizzato, come hai detto tu
  • Re: Gradle

    Alexxandro ha scritto:


    Praticamente serve per compilare, per il test e per l'esecuzione...
    sul libro dice cosi.
    Sì, serve per compilare, per eseguire i test, ma non per l'esecuzione. Per quello c'è il sistema operativo di Android (o meglio ART, Android RunTime).

    Alexxandro ha scritto:


    Ma è un tools praticamente...
    è un programma esterno ad Android studio che tramite i plugin di google è capace di "confezionare ed eseguire".
    Sì, uno strumento (tool) per l'automazione della build.

    Alexxandro ha scritto:


    Voglio dopo ritornare sul definizione di "eseguire "
    Quindi Android studio che cosa è?
    E solo un semplice IDE, non è capace da solo di fare quello che fa Gradle?
    Dovremmo noi scrivere il codice per Gradle?
    Android Studio è un IDE basato su IntelliJ IDEA, che è uno dei più diffusi IDE per Java.
    In quanto tale, il suo compito è quello di facilitare lo sviluppo di applicazioni (ad esempio ti permette di creare dei layout attraverso drag-and-drop, ti permette di generare del codice automaticamente, e tante altre cose). Android Studio e Gradle risolvono quindi 2 problemi diversi. Potresti benissimo lavorare senza Android Studio e/o senza Gradle e potresti produrre esattamente le stesse applicazioni senza nessuna differenza.

    Alexxandro ha scritto:


    Le build che sono uno strumento che in Android studio chiamiamo Gradle.
    Le Build sono un architettura, ma anche uno strumento che esegue tre processi compilazione, configurazione ed esecuzione..
    Nella Build sono presenti anche le librerie
    Il termine "build" significa "costruire", quindi Gradle è uno strumento che automatizza la costruzione. Che cosa viene costruito? Il file che poi verrà eseguito da Android. Come viene costruito? A partire dal codice sorgente che tu hai scritto, Gradle "sa" cosa deve fare per costruire questo file.

    Alexxandro ha scritto:


    Cioè la build mi confeziona solo il prodotto
    E questo applicativo poi gira su Android
    dovrebbe essere cosi...
    Esatto

    Alexxandro ha scritto:


    Eseguire sta per test atomatizzato, come hai detto tu
    No, i test automatizzati sono un'altra cosa, e si tratta di codice che tu stesso scrivi al fine di testare altri componenti che tu hai scritto. Ad esempio se crei una classe "Contatore" che permette di essere incrementato, potresti scrivere un test per verificare ad esempio che la parte di codice che si occupa di effettuare l'incremento funzioni correttamente (quindi ad esempio che alla fine il valore del contatore sia incrementato e non decrementato). Quello che Gradle permette è di automatizzare l'esecuzione di questi test, ma i test in sé vengono eseguiti da altri strumenti (ad esempio JUnit, per gli unit test, Espresso, per i test dell'interfaccia grafica, ecc).
  • Re: Gradle

    Android studio anche lui è un tools..
    Mi è chiaro anche il concetto di tools.
    Quindi il mobile è proprio un mondo a parte.
    Un architettura software monolitica con kernel linux ed uso massiccio di c e java per le interfacce.
    Mi sembra una cosa molto instabile.
    Android è scritto in C/C++ e le applicazioni girano con una VM
  • Re: Gradle

    Tutte le applicazioni Java girano su una VM, ovvero la Java Virtual Machine. Considerando che Java è usato praticamente ovunque, la tua considerazione non vale solo per il mondo mobile, ma anche per quello server, IoT, Desktop, dispositivi come decoder, bancomat, ...
  • Re: Gradle

    Si ho letto che con Android programmi tutto.
    Ma adesso che comincio a studiarlo mi sto accorgendo di quanto sia delicata tutta la struttura
    Non sembra sicura ed affidabile, anche se poi funziona.
    Ma oltretutto non su può fare diversamente, almeno per ora.
    Lo spazio utente e lo spazio per il kernel, stanno nello stesso ambiente.
    Quasi non so quello che ho detto, però mettere due distinte cose come l'utente e il kernel, in un unico spazio, non sembra la scelta migliore.
Devi accedere o registrarti per scrivere nel forum
6 risposte