android自動化ANT編譯

雖然谷歌一直在推gradle自動打包編譯。但是一個新的東西總是需要時間與成本的。其實做android開發不寫編譯腳本是沒問題的。但是可能有特殊情況,比如需要一次編譯多個版本,而各種版本之間的差異不大,比如只改了Androidmanifest.xml中的某些內容。這時才需要自己動手。

      如何花費最少的時間,最簡單快速的完成這項工作,從而把盡力集中到開發。這是本文的目標。

     要簡單要快當然是拿來用,首先在SDK的目錄下找到官方提供的.build.xml腳本。打開就會發現代碼特別多,註釋也非常多。看懂它不是我們的目標,用纔是。把這個腳本中一些部分看成功能模塊就好,不用仔細研究。(因爲谷歌每個版本.build.xml的改變都比較大,如果你修改模塊的內容,下次更新時就比較痛苦了,所以最好的辦法就是不修改,只用)。

     話不多說直接上需求

     1.要求一次編譯多個APK,每個項目中只有少數的幾個類不相同。

      解決思路:自己定義一個target,在target中多次調用編譯打包,每次編譯打包之前把不同類替換在走一遍完整的編譯流程就行(至於完整流程包含些什麼就不用care了)。

       a. 將不同的類放到項目不同的文件夾中並定義好文件路徑

       b. 自定義一個target。關鍵代碼如下:

<target name="realse_ump">
<!--開發-->
<!--替換開發需要的文件-->
<copy failοnerrοr="true" file="${develop-ospath}" overwrite="true" tofile="${constants-ospath}" />
<!--設置發佈jar路徑及名稱-->
<property name="obfuscated.jar.file" location="${outdir-build}/final.jar" />
<!--設置發佈APK路徑及名稱-->
<property name="out.final.file" location="${outdir-build}/final.apk" />
<antcall target="clean" />

<antcall target="release" />

<!--測試-->
<!--替換測試需要的文件-->
<copy failοnerrοr="true" file="${test-ospath}" overwrite="true" tofile="${constants-ospath}" />
<antcall target="clean" />
<antcall target="release" />
</target>

發佈了32 篇原創文章 · 獲贊 1 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章