持续集成基础知识
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
持续集成 (CI) 是一种软件开发实践,开发者经常将其代码更改合并到一个中央代码库中,然后自动构建和测试运行。
您可以设置一个基本的 CI 系统,以防止在合并后破坏 build 的新更改。您可以对更高级的 CI 系统进行编程,以自动测试应用,并确保应用在不同环境(如 API 级别、屏幕尺寸和平台)中都能按预期运行。
本文档介绍了开发者为 Android 项目设置有效的 CI 系统时常用的策略。这些指南是通用的,适用于大多数解决方案。
典型示例
典型的 CI 系统遵循以下工作流或流水线:
- CI 系统检测到代码更改,这通常是在开发者创建拉取请求时(也称为“更改列表”或“合并请求”)。
- 它会预配和初始化服务器以运行工作流。
- 它会根据需要提取代码以及 Android SDK 或模拟器映像等工具。
- 它通过运行给定命令(例如 .
/gradlew
build
)来构建项目。
- 它通过运行给定命令(例如运行 .
/gradlew test
)来运行本地测试。
- 它会启动模拟器并运行插桩测试。
- 它会上传测试结果和 APK 等工件。
CI 的优势
CI 的优点包括:
- 提高软件质量:CI 可以帮助您尽早发现并解决问题,从而帮助提高软件质量。这有助于减少软件版本中的 bug 数量并改善整体用户体验。
- 降低构建中断的风险:使用 CI 实现构建流程自动化后,通过尽早解决问题,可以更好地避免构建中断的情况。
- 增强对版本的信心:CI 有助于确保每个版本都稳定且已准备好投入生产环境。通过运行自动化测试,CI 可以发现任何潜在问题,然后再将其公开发布。
- 改善了沟通和协作:CI 为开发者提供了一个集中分享代码和测试结果的地方,可帮助开发者和其他团队成员更轻松地协同工作并跟踪进度。
- 提高工作效率:CI 可以自动执行那些耗时且容易出错的任务,从而提高开发者的工作效率。
深入阅读
如需详细了解如何使用持续集成来改进应用的开发,请参阅以下页面:
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2023-12-01。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u6700\u540e\u66f4\u65b0\u65f6\u95f4 (UTC)\uff1a2023-12-01\u3002"}
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2023-12-01。"]]