Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
L'integrazione continua (CI) è una pratica di sviluppo software in cui gli sviluppatori
spesso uniscono le modifiche al codice in un repository centrale, dopodiché
vengono eseguiti test e build automatizzati.
Puoi configurare un sistema CI di base per impedire nuove modifiche che causerebbero un errore nella build dopo l'unione. Puoi programmare un sistema CI più avanzato per testare automaticamente l'app e assicurarti che funzioni come previsto in ambienti diversi, ad esempio livelli API, dimensioni dello schermo e piattaforme.
Figura 1. Un sistema CI mantiene un repository di codice integro eseguendo controlli prima dell'unione.
Questo documento illustra strategie comuni usate dagli sviluppatori per configurare
sistemi CI efficaci per i progetti Android. Queste linee guida sono generiche
e si applicano alla maggior parte delle soluzioni.
Esempio tipico
Un tipico sistema CI segue un flusso di lavoro o una pipeline, che potrebbe essere il seguente:
Il sistema CI rileva una modifica nel codice, in genere quando uno sviluppatore crea
una richiesta di pull, chiamata anche "elenco delle modifiche" o "richiesta di unione".
Esegue il provisioning e l'inizializzazione di un server per l'esecuzione del flusso di lavoro.
Recupera il codice e strumenti come l'SDK Android o le immagini dell'emulatore, se necessario.
Crea il progetto eseguendo un determinato comando, ad esempio ./gradlew
build.
Esegue i test locali eseguendo un determinato comando, ad esempio eseguendo
./gradlew test.
Carica elementi come i risultati dei test e gli APK.
Figura 2. Un flusso di lavoro CI di base
Vantaggi dell'integrazione continua
I vantaggi dell'integrazione continua includono:
Migliore qualità del software: la CI può aiutare a migliorare la qualità del software identificando e risolvendo i problemi nella fase iniziale. Questo può aiutare a ridurre il numero di bug nelle versioni del software e a migliorare l'esperienza utente complessiva.
Rischio ridotto di build non funzionanti: quando automatizzi il processo di compilazione con la CI, puoi evitare meglio le build non funzionanti risolvendo i problemi nelle prime fasi del processo.
Maggiore fiducia nelle release: la CI può aiutare a garantire che ogni release sia stabile e pronta per la produzione. Eseguendo test automatici, la CI può
identificare potenziali problemi prima di rilasciarli al pubblico.
Comunicazione e collaborazione migliorate: mettendo a disposizione degli sviluppatori un punto centrale per condividere il codice e i risultati dei test, la CI può aiutare a semplificare la collaborazione e il monitoraggio dei progressi per gli sviluppatori e gli altri membri del team.
Maggiore produttività: la CI può aiutare ad aumentare la produttività degli sviluppatori automatizzando le attività che altrimenti sarebbero dispendiose in termini di tempo e soggette a errori.
Continua a leggere
Per saperne di più su come utilizzare l'integrazione costante per migliorare lo sviluppo della tua app, consulta le seguenti pagine:
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-07-27 UTC."],[],[],null,["# Continuous Integration basics\n\nContinuous Integration (CI) is a software development practice where developers\nfrequently merge their code changes into a central repository, after which\nautomated builds and tests run.\n\nYou can set up a basic CI system to prevent new changes that would break the\nbuild after merging in. You can program a more advanced CI system to\nautomatically test the app and make sure it behaves as expected in different\nenvironments, such as API levels, screen sizes, and platforms.\n**Figure 1.** A CI system keeps a code repository healthy by running checks before merging.\n\nThis document demonstrates common strategies developers use to set up effective\nCI systems for Android projects. These guidelines are generic and apply to the\nmajority of solutions.\n\nTypical example\n---------------\n\nA typical CI system follows a *workflow* or *pipeline*, which might look as\nfollows:\n\n1. The CI system detects a change in the code, usually when a developer creates a pull request, also called \"change list\" or \"merge request\".\n2. It provisions and initializes a server to run the workflow.\n3. It fetches the code as well as tools such as the Android SDK or emulator images if needed.\n4. It builds the project by running a given command, for example .`/gradlew\n build`.\n5. It runs the [local tests](/training/testing/local-tests) by running a given command, for example running .`/gradlew test`.\n6. It starts emulators and runs the [instrumented tests](/training/testing/instrumented-tests).\n7. It uploads artifacts such as test results and APKs.\n\n**Figure 2.** A basic CI workflow\n\nBenefits of CI\n--------------\n\nThe advantages of CI include:\n\n- **Improved quality of software**: CI can help to improve the quality of software by identifying and fixing problems early on. This can help to reduce the number of bugs in software releases and improve the overall user experience.\n- **Reduced risk of broken builds**: When you automate your build process with CI you can better avoid broken builds by resolving issues earlier in the process.\n- **Increased confidence in releases**: CI can help to ensure that each release is stable and ready for production. By running automated tests, CI can identify any potential problems before you release them to the public.\n- **Improved communication and collaboration**: By providing a central place for developers to share code and test results, CI can help to make it easier for developers and other team members to work together and track progress.\n- **Increased productivity**: CI can help to increase developer productivity by automating tasks that would otherwise be time-consuming and error-prone.\n\nFurther reading\n---------------\n\nMore more information on how you can use constant integration to improve\ndevelopment for your app, read the following pages:\n\n- **[CI Automation](/training/testing/continuous-integration/automation)**\n\n- **[CI Features](/training/testing/continuous-integration/features)**"]]