这是一个真正的菜鸟问题。我为一家公司工作,该公司生产100个使用大部分相同组件的应用程序。在构建时有一些小的定制,我们希望加快速度,以提高效率。大部分自定义是在运行时从服务器下载数据完成的。
我们可以让项目达到最快的速度.apk大约需要15分钟。此过程涉及更改包名称,图标和一些字符串资源。但是当你每天处理15-20个应用程序时,它们可能成为一个真正的杀手,我宁愿花时间编写新的代码。
我已经阅读过使用Maven或Gradle来简化构建过程,但我不确定这是否是减少构建时间的最佳方法。坦率地说,我甚至不知道它们是否是合适的工具。
有人可以向我解释,如果使用其中一种工具可以完成我正在寻找的东西,或者是否有其他方法可以减少构建时间?任何建议都将不胜感激。
答案 0 :(得分:3)
采用Maven或Ant等命令行构建工具绝对是正确的方向,它可以使用Unix / Windows shell脚本批量构建流程。
使用maven-properties-plugin和android-maven-plugin很容易实现你需要的那些小的自定义。 android-maven-plugin支持资源过滤。您可以将每个构建周期的自定义属性定义为多个属性文件,在构建过程中,android-maven-plugin可以从外部属性文件读取这些值,并将这些值替换为AndroidManifest.xml和其他资源文件,如res / values / strings.xml中。 android-maven-plugin也完全支持Android Library Project,它允许你提取/集中常见的android代码并轻松管理所有这些代码。
假设您要从同一Android项目中构建5个apk发行版,其中包含不同的包/应用程序名称,应用程序图标和string.xml中的一些资源,您可以创建shell脚本运行mvn deploy 5次,每次复制其中一个您的customize.properties与其他icon.png文件一起放入项目目录并覆盖现有文件。这为您提供了一个不需要任何人工干预的端到端自动构建批处理。
您可以找到示例项目MorseFlash检查android-maven-plugin使用的资源过滤。
答案 1 :(得分:0)
尝试在多核计算机上使用make,并通过提供
在核心之间拆分构建过程make -j<x> command
答案 2 :(得分:0)
我肯定会建议在Android Maven插件中使用。如果您的应用程序只是轻微的自定义,您应该能够将大部分工作移动到您构建一次的外部库中,然后只有自定义项在构建时为每个应用程序启动。随着你所说的规模,这将是值得的努力。
查看插件网站和我撰写的关于using Maven for Android development的章节,了解初学者并了解。