標籤:android ant 打包 android ant android ant 環境變數配置 android ant打包及其環境變數配 andtoid java 打包
之前打包項目使用藍貝殼打包,或者用Eclipse內建的環境打包,或者直接扔給第三方給別人打包(這裡是指的愛加密打包)。接下來老於就帶你們走進ant打包的時代。
每次完成一個應用後。就要上市場。上市場呢就要有很多的渠道。有很多的渠道呢。意味著要打很多個渠道包。我哩個去。
記得有個項目。100多個渠道。打到手軟。回去飛機打不起來了。android就是這麼屌絲。不像ios高富帥一樣。就打幾個而已。
以前一直認為ant自動渠道打包很複雜。其實說難也不難。說複雜也不複雜。最要就是配置環境問題。環境配好了。產生的build.xml中的配置弄好了。
就基本可以打包了。
一。首先呢要把電腦的java環境配置到環境變數中PATH中。不懂的人可以參考http://blog.csdn.net/huanghm88/article/details/3965218轉帖
二,把android的SDK也配置到環境變數中PATH中不懂的人可以參考http://jingyan.baidu.com/article/17bd8e52f514d985ab2bb800.html轉帖
三。下載ant環境包。地址在http://ant.apache.org/manualdownload.cgi下載。記得也配置到環境變數中PATH,我的地址是這樣的D:\apache-ant-1.9.2\bin;具體大家自己設定,配置成功的話點擊運行。輸入cmd。輸入ant -version斷行符號
表示配置成功了。
四,使用ant,對項目產生build.xml檔案具體可以查看http://www.xmumu.com/post/2011-11-22/7022215轉帖。
如果說命令打不出來。或者提示找不到的話。說明Android SDK環境配置有問題。要去配置好。網上尋找下
五,如果在項目中產生出build.xml等檔案時候。就可以進行下一步的配置了如目錄
ant.properties檔案是我們等下要自己建立的檔案。是稍後給大家介紹。另外兩個檔案是build.xml和local.properties
關於ant打包,大家可以先看看這兩篇文章http://www.cnblogs.com/MrShi/archive/2013/04/16/3023311.html,http://www.cnblogs.com/MrShi/archive/2013/04/16/3023485.html轉帖
六,接下來介紹下ant.properties的內容吧
其中的proguard.config=proguard.cfg 是混淆檔案。相信大家都懂得自己定義個混淆檔案吧。
key.store=E:\\androidkey.keystore 是簽名檔案的絕對位址。我這裡是window系統。所以這樣寫。l
key.alias=androidkevin.keystore 簽名檔案的別名。如果忘了話。可以用eclipse打包時候最後一次輸入密碼時候。有個Alias的就是你的別名了。
key.store.password=123455 簽名密碼
key.alias.password=123455 簽名密碼
market_channels打包的渠道列表。用逗號隔開。不懂得話前面兩篇都有說明
以下我把我的build.xml檔案的內容曬出來:
<?xml version="1.0" encoding="UTF-8"?><project name="BABYRECORD" default="release"> <property file="local.properties" /> <property file="ant.properties" /> <property environment="env" /> <condition property="sdk.dir" value="${env.ANDROID_HOME}"> <isset property="env.ANDROID_HOME" /> </condition> <property name="outdir" value="bin" /> <property name="outdir-classes" value="${outdir}/classes" /> <property name="proguard-home" value="D:\\proguard4.2\\lib\\" /> <property name="sdk-folder" value="D:\android-sdk_r16-windows\android-sdk_r16-windows\android-sdk-windows" /> <property name="android-jar" value="${sdk-folder}\platforms\android-3\android.jar" /> <loadproperties srcFile="project.properties" /> <fail message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable." unless="sdk.dir" /> <import file="custom_rules.xml" optional="true" /> <import file="${sdk.dir}/tools/ant/build.xml" /> <property name="out.unaligned.dir" value="F:\BABYRECORD_${app_version}\" /> <mkdir dir="${out.unaligned.dir}" /> <target name="modify_update_file"> <echo>*********************** make channel ${channel}</echo> <replaceregexp file="AndroidManifest.xml" match='channel' replace='${channel}' byline="false" encoding="utf-8" /> <property name="out.unaligned.file" location="${out.unaligned.dir}\babyrecord_${app_version}_release_build${app_date}_${channel}.apk"/> <antcall target="release" /> </target> <target name="make_one_channels" depends="savemanifest,modify_update_file,release,replacemanifest,deletebin" description="description"> </target> <target name="replacemanifest"> <echo>*********************** replacemanifest</echo> <delete file="${basedir}\AndroidManifest.xml"/> <copy file="..\temp\build\META-INF\AndroidManifest.xml" todir="${basedir}" encoding="utf-8"/> </target> <target name="savemanifest"> <echo>*********************** savemanifest</echo> <copy file="${basedir}\AndroidManifest.xml" todir="..\temp\build\META-INF" encoding="utf-8" /> </target> <target name="deletebin"> <delete dir="${basedir}\bin\*" /> </target> <taskdef name="foreach" classname="net.sf.antcontrib.logic.ForEach" classpath="D:\android-sdk_r16-windows\android-sdk_r16-windows\android-sdk-windows\tools\ant-contrib-1.0b3.jar" /> <target name="make_channels"> <foreach target="make_one_channels" list="${market_channels}" delimiter="," param="channel"> </foreach> </target></project>
大家看到裡面的變數env.ANDROID_HOME沒有。這裡是用了我們之前java在電腦環境變數的配置名稱。所以大家在配置時候。要先new一個。取名為ANDROID_HOME
配置到是android SDK的地址其他配置的話。大家一看就瞭然了。有些是自己的的檔案夾地址。有些是配置到ant.properties中。如果大家遇到報錯的話。可以留言回複我。我會盡量協助大家解答
Android Ant打包及其環境變數配置