Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Continuous Integration (CI) ist ein Verfahren in der Softwareentwicklung, bei dem Entwickler ihre Codeänderungen häufig in einem zentralen Repository zusammenführen, woraufhin automatisierte Builds und Tests ausgeführt werden.
Sie können ein einfaches CI-System einrichten, um neue Änderungen zu verhindern, die den Build nach der Zusammenführung beeinträchtigen würden. Sie können ein fortschrittlicheres CI-System programmieren, um die Anwendung automatisch zu testen und sicherzustellen, dass sie sich in verschiedenen Umgebungen wie API-Ebenen, Bildschirmgrößen und Plattformen erwartungsgemäß verhält.
Abbildung 1: Ein CI-System führt vor dem Zusammenführen Prüfungen aus, um ein Code-Repository intakt zu halten.
In diesem Dokument werden gängige Strategien von Entwicklern beschrieben, mit denen sie effektive CI-Systeme für Android-Projekte einrichten. Diese Richtlinien sind allgemein gehalten und gelten für die meisten Lösungen.
Typisches Beispiel
Ein typisches CI-System folgt einem Workflow oder einer Pipeline, die so aussehen können:
Das CI-System erkennt eine Änderung im Code, in der Regel, wenn ein Entwickler eine Pull-Anfrage erstellt, die auch als „Änderungsliste“ oder „Zusammenführungsanfrage“ bezeichnet wird.
Er stellt einen Server bereit und initialisiert ihn, um den Workflow auszuführen.
Er ruft den Code und bei Bedarf auch Tools wie das Android SDK oder Emulatorbilder ab.
Das Projekt wird erstellt, indem ein bestimmter Befehl wie ./gradlew
build ausgeführt wird.
Die lokalen Tests werden mit einem bestimmten Befehl wie z. B. /gradlew test ausgeführt.
Dabei werden Artefakte wie Testergebnisse und APKs hochgeladen.
Abbildung 2. Grundlegender CI-Workflow
Vorteile von CI
CI bietet unter anderem folgende Vorteile:
Verbesserte Softwarequalität: CI kann zur Verbesserung der Softwarequalität beitragen, da Probleme frühzeitig erkannt und behoben werden. Dies kann dazu beitragen, die Anzahl der Fehler in Software-Releases zu reduzieren und die Nutzererfahrung insgesamt zu verbessern.
Geringeres Risiko von fehlerhaften Builds: Wenn Sie Ihren Build-Prozess mit CI automatisieren, können Sie fehlerhafte Builds besser vermeiden, indem Sie Probleme früher im Prozess beheben.
Höheres Vertrauen in Releases: CI kann dabei helfen, sicherzustellen, dass jeder Release stabil und bereit für die Produktion ist. Durch die Ausführung automatischer Tests kann CI potenzielle Probleme identifizieren, bevor Sie sie für die Öffentlichkeit freigeben.
Verbesserte Kommunikation und Zusammenarbeit: CI bietet Entwicklern einen zentralen Ort, an dem sie Code und Testergebnisse teilen können. Dadurch wird die Zusammenarbeit von Entwicklern und anderen Teammitgliedern und die Verfolgung des Fortschritts erleichtert.
Gesteigerte Produktivität: CI kann zur Steigerung der Entwicklerproduktivität beitragen, indem Aufgaben automatisiert werden, die ansonsten zeitaufwendig und fehleranfällig wären.
Weitere Informationen
Auf den folgenden Seiten findest du weitere Informationen dazu, wie du Continuous Integration nutzen kannst, um die Entwicklung deiner App zu verbessern:
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 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)**"]]