通過 ant 解決 android 版本的問題

2021-06-13 04:55:12 字數 2018 閱讀 4063

前提,本文的要求是你要懂一些 ant

在 android 的sdk 中有乙個已經寫好的 build.sh, 通常情況下在各個 apk 中都是建立乙個 build.xml,在裡面會引用或者過載這個 build.xml 中的部分字段,而不是自己完全開始重頭寫乙個新的。sdk 這個 build.xml 位置 「android-sdk-windows\tools\ant\build.xml」

如果你自己的工程目錄中沒有 build.xml ,那麼可以通過命令

android update project -p .
來產生乙個,如果不能建立,說沒有指定什麼 target 那麼需要在建立乙個 project.properties,然後在裡面指定 target,例如:

target=android-14
執行成功後通常會建立出來兩個檔案:local.properties,build.xml

好了,下面開始解決實際問題:

問題一: 如何給 apk 加上版本號,例如:abc_1.1.apk 這樣的形式

來指定可以匯入的第三方檔案,名字叫做 custom_rules.xml,好了,這個 xml 的內容如下

<?xml version="1.0" encoding="utf-8"?>

簡單來說就是,

1. 寫乙個 target 解析 androidmanifest.xml 得到 version name 和 version code 這兩個屬性,然後過載 "out.final.file" 欄位將其設為這新的名字

2. 然後將這個 target 放到 "-set-release-mode" 的 depends 中這樣保證呼叫 "-set-release-mode" 的時候就會呼叫這個寫好的 target

說明:"-set-release-mode" 這的實在 sdk 的 build.xml 中有定義的,每次使用 ant release 的時候都會執行這個字段

「out.final.file」在 sdk 的 build.xml 中的定義如下

我們就是要過載它。

「android_rules.-set-release-mode」 這個指的就是要執行 sdk build.xml中原本  "-set-release-mode" 所定義的 depends

另外在 sdk 的 build.xml 中本來就定義好了兩個 property 叫做,

但是不知道為什麼,這兩個 property 一直是空值,用不起來。

好了,將這個 custom_rules.xml 放到你的工作中,然後在 androidmanifest.xml 中設定好 version code 和 version name,然後執行 ant clean 就可以在 bin 目錄下看到新的 apk,並且是 abc-1.0.1.apk 這樣的形式。

問題二:如何在 jar 的 build 過程中將版本資訊從 androidmanifest.xml 中儲存到 manifest.mf 中

需求,將**打包成乙個 jar 包,但是通常 jar 包中不會將 androidmanifest.xml 打包進去,並且通常 jar 的版本都放到 manifest.mf 中,並且也有專門的**去解析它。

解決方法:

建立 custom_rules.xml,內容如下

<?xml version="1.0" encoding="utf-8"?>

過載 「compile」 target,在生成 jar 的地方完全用這塊**來替換

的那塊**就是要放到 mf檔案中的內容,這個表示是在 mf 檔案中建立乙個自己的 section,這個可有可無,下面的

好了,執行完 ant 命令之後再 manifest.mf 中就可以看到來自 androidmanifest.xml 中的版本資訊了。

ant編譯android程式

這一篇主要做了建立android專案 update已存在專案 ant編譯專案。一,準備ant 二 使用ant 1 首先需要檢查一下android sdk的環境換量是否新增到了path中。這樣可以在任意目錄下執行android 命令,不然則要切換到 android sdk tools目錄下。2 使用a...

Ant編譯android程式

這一篇主要做了建立android專案 update已存在專案 ant編譯專案。一,準備ant 二 使用ant 1 首先需要檢查一下android sdk的環境換量是否新增到了path中。這樣可以在任意目錄下執行android 命令,不然則要切換到 android sdk tools目錄下。2 使用a...

Ant編譯android程式

這一篇主要做了建立android專案 update已存在專案 ant編譯專案。一,準備ant ant 環境配置 1。解壓ant的包到本地目錄。2。在環境變數中設定ant home,值為你的安裝目錄。3。把ant home bin加到你系統環境的path。二 使用ant 1 首先需要檢查一下andro...