Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Tích hợp liên tục (CI) là một phương pháp phát triển phần mềm trong đó nhà phát triển thường xuyên hợp nhất các thay đổi về mã vào một kho lưu trữ trung tâm, sau đó các bản dựng và hoạt động kiểm thử tự động sẽ chạy.
Bạn có thể thiết lập một hệ thống CI cơ bản để ngăn chặn các thay đổi mới làm hỏng bản dựng sau khi hợp nhất. Bạn có thể lập trình một hệ thống CI nâng cao hơn để tự động kiểm thử ứng dụng và đảm bảo ứng dụng hoạt động như mong đợi trong nhiều môi trường, chẳng hạn như cấp API, kích thước màn hình và nền tảng.
Hình 1. Hệ thống CI giữ cho kho lưu trữ mã hoạt động tốt bằng cách chạy các bước kiểm tra trước khi hợp nhất.
Tài liệu này trình bày những chiến lược phổ biến mà nhà phát triển sử dụng để thiết lập hệ thống CI hiệu quả cho các dự án Android. Những nguyên tắc này mang tính chung và áp dụng cho hầu hết các giải pháp.
Ví dụ điển hình
Một hệ thống CI điển hình tuân theo quy trình làm việc hoặc quy trình, có thể như sau:
Hệ thống CI phát hiện thấy một thay đổi trong mã, thường là khi nhà phát triển tạo một yêu cầu lấy dữ liệu, còn gọi là "danh sách thay đổi" hoặc "yêu cầu hợp nhất".
Lớp này cấp phép và khởi động máy chủ để chạy quy trình công việc.
Android Studio sẽ tìm nạp mã cũng như các công cụ như SDK Android hoặc hình ảnh trình mô phỏng nếu cần.
Tệp này tạo dự án bằng cách chạy một lệnh nhất định, chẳng hạn như ./gradlew
build.
Thư viện này chạy các bài kiểm thử cục bộ bằng cách chạy một lệnh nhất định, chẳng hạn như chạy ./gradlew test.
Công cụ này tải các cấu phần phần mềm như kết quả kiểm thử và tệp APK lên.
Hình 2. Quy trình CI cơ bản
Lợi ích của CI
CI có các ưu điểm sau:
Cải thiện chất lượng phần mềm: CI có thể giúp cải thiện chất lượng phần mềm bằng cách xác định và khắc phục vấn đề ngay từ đầu. Điều này có thể giúp giảm số lượng lỗi trong bản phát hành phần mềm và cải thiện trải nghiệm tổng thể của người dùng.
Giảm nguy cơ bản dựng bị hỏng: Khi tự động hoá quy trình xây dựng bằng CI, bạn có thể tránh được các bản dựng bị hỏng bằng cách giải quyết các vấn đề sớm hơn trong quá trình này.
Tăng độ tin cậy về các bản phát hành: CI có thể giúp đảm bảo rằng mỗi bản phát hành đều ổn định và sẵn sàng cho việc phát hành chính thức. Bằng cách chạy kiểm thử tự động, CI có thể xác định mọi sự cố tiềm ẩn trước khi bạn phát hành công khai.
Cải thiện hoạt động giao tiếp và cộng tác: Bằng cách cung cấp một địa điểm tập trung để nhà phát triển chia sẻ mã và kết quả kiểm thử, CI có thể giúp các nhà phát triển và các thành viên khác trong nhóm dễ dàng làm việc cùng nhau và theo dõi tiến trình.
Tăng năng suất: CI có thể giúp tăng năng suất của nhà phát triển bằng cách tự động hoá các công việc thường tốn thời gian và dễ xảy ra lỗi.
Tài liệu đọc thêm
Hãy đọc các trang sau để biết thêm thông tin về cách bạn có thể dùng tính năng tích hợp liên tục để cải thiện quá trình phát triển cho ứng dụng:
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 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)**"]]