我有一个项目要求找到一种方法来编译任何数量的自定义应用程序在android从一个程序,其中用户输入一个代码版本,然后从需要构建的自定义应用程序列表中选择,然后用户选择选项"构建"。选择此选项后,程序将为所选的每个应用程序编译一个签名的APK文件。
应用程序的代码在Bit Bucket上,我们有2个存储库:第一个是核心库代码。此代码不依赖于客户。无论我们是为A公司还是B公司开发应用,这段代码都是一样的。在编译时,它将被标记为库,并由自定义代码导入。第二个存储库保存定制的代码。这段代码为客户提供了特定的UI主题。
我目前的策略是在java程序中使用Android ant和git bash。我将编写一个程序来存储库代码和自定义代码的提交散列。当用户选择进行构建时,程序将使用存储的提交散列号,通过在程序中运行Git Bash命令,从各自的存储库中提取所需的代码。接下来,程序将通过在程序内运行ant (android的命令行编译器)命令来清理项目并进行签名构建。由于它将是自动化的,程序可以根据需要循环遍历尽可能多的构建。由于这个功能完全依赖于从Java程序中运行Git Bash和Ant命令的能力,我们回到焦点问题:是否有可能从程序中运行Git Bash和Ant命令?
您可以在任何普通计算机上使用Runtime.getRuntime().exec(...)
方法运行任意控制台命令。见http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html