2012-02-21 49 views
2

這是一個真正的菜鳥問題。我爲一家生產使用大部分相同組件的100多款應用的公司工作。在構建時有一些小的定製,我們想加快速度以提高效率。大部分定製都是在運行時從服務器上下載數據完成的。加速Android構建過程

我們能夠以最快的速度完成一個項目,完成.apk約15分鐘。此過程涉及更改軟件包名稱,圖標和一些字符串資源。但是,如果您每天處理15-20個應用程序,可能會成爲真正的時間殺手,我寧願花時間寫新代碼。

我讀過關於使用Maven或Gradle簡化構建過程,但我不確定這是減少構建時間的最佳方法。坦率地說,我甚至不知道他們是否是合適的工具。

有人可以請我解釋一下,如果使用這些工具之一會完成我正在尋找什麼,或者如果有一些其他方式來減少構建時間?任何建議,將不勝感激。

回答

3

採用一些命令行構建工具,如Maven的或螞蟻肯定是要走的正確方向分割鐵芯之間的構建過程,它使的可能性使用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項目中使用不同的包/應用程序名稱,應用程序圖標和一些資源在string.xml中構建5個apk發行版,您可以創建shell腳本運行mvn deploy 5次,每次複製一次您的customize.properties文件和其他icon.png文件放到項目目錄中並覆蓋現有文件。這爲您提供了一個不需要任何人工交互的端到端自動構建批處理。

你可以找到一個示例項目MorseFlash檢查android-maven-plugin使用的資源過濾。

+0

好的描述和感謝插入我的MorseFlash示例應用程序;-) – 2012-02-21 04:50:57

+0

@Manfred Moser,感謝您的示例項目,這些真正使開發人員的生活在第一次與android-maven-plugin聯繫時變得容易:) – yorkw 2012-02-21 04:59:13

+0

@yorkw,非常感謝輸入和項目示例。這是超級有用的。現在我知道我應該在什麼方向工作了,謝謝! – Rymnel 2012-02-21 13:03:40

0

嘗試使用使多核機器上,並且通過給

make -j<x> command 
+0

感謝您的反饋,但這不完全是我正在尋找。也許我的措辭是錯誤的。我正在研究如何在構建時快速更改資源和軟件包名稱。 – Rymnel 2012-02-21 13:11:11

0

我肯定會建議在Android Maven插件中使用。如果您的應用只是輕微的自定義設置,那麼您應該能夠將大部分工作轉移到您構建一次的外部庫,然後只有構建時間爲每個應用程序啓用自定義。用你所談論的規模很容易就能付出努力。

查看插件網站和我寫的關於using Maven for Android development的章節,感受一下。

+0

很好的參考!看起來它具有我需要的所有細節和更多。感謝您花時間寫下來。 – Rymnel 2012-02-21 13:04:55