閱讀854 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Android使用Ant技術打包詳解

Ant使用

在ant的官網https://ant.apache.org進行下載後apache-ant-1.8.2

解壓(存放的路徑不要有中文字符)

把ant裏的lib設置到環境變量:E:\Android\apache-ant-1.8.2\lib

這樣在命令行裏就可以直接使用ant

學習資料:
1. ant使用指南.rar

2. 文檔:apache-ant-1.8.2/docs/manual/index.html下的Ant Tasks à List of Tasks

Ant的For循環

在ant的核心包裏沒有相關的For循環的Task,要下載相應的擴展包,已經有人寫過了。

擴展包:Ant-contrib包就是一個裏麵有For循環的擴展包。

下載地址:https://ant-contrib.sourceforge.net/

使用這個擴展包中的for循環的介紹:https://enjoyyou.blog.hexun.com/41449457_d.html

把ant-contrib裏的lib包複製到apache-ant-1.8.2\lib下麵,就可以了

混淆proguard

混淆proguard是一個開源項目,ant自動打包的過程用的就是這個開源項目,在android-sdk-windows\tools目錄下有一個proguard文件夾,裏麵就有這相應的jar包

Android sdk裏自帶的proguard jar包有一個bug,對於一些方法在混淆時會報異常,要解決這個bug,隻需要去proguard的官網https://proguard.sourceforge.net/下載最新的jar包proguard4.6

下載下來後,用proguard4.6\lib裏的jar包替換android-sdk-windows\tools\proguard\lib裏的jar,用proguard4.6\lib\bin裏的以.bat結尾的文件替換android-sdk-windows\tools\proguard\bin裏的文件

下載svn裏的項目(svnant)

因為我們的項目是用svn來進行托管,所以需要用ant來下載最新代碼,根據服務器所用的svnservice的版本去svnant的官網https://subclipse.tigris.org/svnant.html 下載svnant的版本,我用的是:svnant-1.1.0-RC2

然後隻要把svnant-1.1.0-RC2\lib裏的jar包複製到apache-ant-1.8.2\lib裏就可以了

在下載下來的jar裏,有相應的doc文檔,可以知道怎麼使用

寫腳本,布署項目

  1. 在項目裏要加入幾個文件(build.properties, build.xml, local.properties, proguard.cfg), 怎樣得到這些文件了,隻需要用命令創建一個android項目,就可以得到這些文件(這些文件對於不同的項目,基本上是一樣的):

    現在來說說這幾個文件:
    1). Build.xml文件:這個文件是ant運行時腳本,這是一個固定的模板,其中主要需要變動的是:<project name="MyAndroidApp" default="help">裏的name屬性,這個屬性的唯一作用是用於命名生成的apk文件(如MyAndroidApp-release.apk);但注意,這個文件不要在eclipse裏打開,如果打開了會報錯,解決辦法隻有把這個文件先刪除再複製進去。
    2). Build.properties文件:這是一個屬性文件,可以更改編譯時的一些屬性,我主要用到的是下麵幾個屬性

    jar.libs.dir表示如果你引用的第三方jar包的路徑,其default=libs
    java.encoding表示文件的編碼,其default=gbk
    key.store表示key的路徑,如:xx/xxxx.keystore
    key.alias表示key的別名,這個別名不要帶路徑
    key.store.password, key.alias.password就不用說了。
    3). Local.properties文件:這個也是一個屬性文件,其中用於記錄sdk.dir的路徑

    4). proguard.cfg文件:這個是混淆配置文件,其中的大部分是都是一樣的,隻要根據模板走就行了,其中主要是注意兩點:
    *. -keep class * extends android.view.View 這個表示自定義的view對象不做混淆,其默認情況下是沒有的,但這個必須要寫,因為我們會在xml文件裏使用其全路徑
    *. -dontwarn com.mapbar.android.**這名話很重要,如果我們使用了第三方的jar包,編譯時也會對第三方的jar進行混淆,如果第三方法的jar包裏有類所關聯的類沒有加入到這個jar包中,則在編譯時,會warn,而且這個warn會讓編譯過程終止。而這句話的意思是,不要拋出前綴為com.mapbar.android的warn,這樣就不會終止編譯過程了。
  2. 寫ant腳本和配置文件(build.xml, build.properties)

    a). build.properties是一個屬性文件,是一些打包的配置文件



    b). build.xml文件的寫法:
















  3. 使用:隻要打開命令行,進入這個目錄,一個ant命令就行。


    轉自:https://handsomeliuyang.iteye.com/blog/1156070



最後更新:2017-04-04 07:03:06

  上一篇:go 高效地顯示Bitmap圖片 1 - 有效率地加載大尺寸的位圖
  下一篇:go 解決linux下無法添加用戶和組的問題(groupadd命令不可用)