Ant自動打包

來源:互聯網
上載者:User

標籤:android   blog   http   使用   java   ar   strong   for   檔案   

 Ant使用

 

在ant的官網http://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迴圈的擴充包。

:http://ant-contrib.sourceforge.net/

使用這個擴充包中的for迴圈的介紹:http://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的官網http://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的官網http://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命令就行。

Ant自動打包

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.