標籤: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文檔,可以知道怎麼使用
寫指令碼,布署項目
- 在項目裡要加入幾個檔案(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,這樣就不會終止編譯過程了。
-
寫ant指令碼和設定檔(build.xml, build.properties)
a). build.properties是一個屬性檔案,是一些打包的設定檔
b). build.xml檔案的寫法:
-
使用:只要開啟命令列,進入這個目錄,一個ant命令就行。
Ant自動打包