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).