Android中利用ant進行多渠道循環批量打包(一)

目前國內的安卓渠道有幾百傢,我們要根據不同的渠道打不同渠道的apk來統計每個渠道帶來的用戶數,統計每個渠道用戶的存活率和活躍度等等信息,但是手動對每個渠道的APK進行簽名打包實在是讓人感到厭煩且低效,這時我們需要一個全自動化的打包工具—-ant。Android SDK的tools中已經包括瞭ant的打包工具,那麼我們該如何運用它達到我們的要求呢?之前鹵煮做這塊的時候也參考瞭很多前輩的文章,首先向前輩們致敬,下面說下鹵煮的方法,有什麼不對的地方或者疑問歡迎大傢留言交流。(以下步驟均在MAC系統下完成)

一.打包前準備工作

1.首先確定你的JDK版本為1.6!

2.在AndroidManifest.xml中application標簽下添加一個用來識別渠道的標簽:

<meta-data  android:name="qudao"  android:value="channel" />3.為瞭讓ant支持循環功能,我們要在Android SDK/tools/lib下放一個ant-contrib-1.0b3.jar包

4.項目中放置第三方jar包的文件夾必須叫libs而不是lib

 

二.build.xml等文件的生成和配置

1.通過終端(cmd)命令自動生成build.xml和local.properties兩個文件,方法如下:

<sdk>/tools/android update project -p <project> -t <target>例如:

/Users/moushou/Downloads/AndroidSDK/tools/android update project -p /Users/moushou/Documents/workspace/HelloWorld -t 14其中<sdk>為SDK全路徑,<project>為項目全路徑,<target>為API版本。

執行完成截圖如下:

 

執行完成後,Refresh你的項目就會發現項目的根目錄下多瞭兩個文件:build.xml和local.properties

其中local.properties的內容是:

# This file is automatically generated by Android Tools.
# Do not modify this file — YOUR CHANGES WILL BE ERASED!
#
# This file must *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.

# location of the SDK. This is only used by Ant
# For customization when using a Version Control System, please read the
# header note.
sdk.dir=/Users/moushou/Downloads/AndroidSDKproject.properties的內容如下:

# This file is automatically generated by Android Tools.
# Do not modify this file — YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "ant.properties", and override values to adapt the script to your
# project structure.
#proguard.config=proguard.cfg
# Project target.
target=Google Inc.:Google APIs:14
proguard.config=proguard.cfg項目的目錄結構如下圖所示:

 

註:project.properties中target=GoogleInc.:GoogleAPIs:14代表所使用的SDK的版本,可進行手動修改。

2.手動為項目新建一個File,該文件名為:ant.properties,創建完成項目的目錄結構如下圖:

 

創建完成後在ant.properties中添加如下內容:

key.store=<keystore>
key.alias=<key>
key.store.password=<keystore pwd>
key.alias.password=<key pwd>
market_channels=xx,yy,zz
app_version=1_0_build_0例如:

key.store=/Users/moushou/Desktop/qianming
key.alias=meilihuaduo
key.store.password=123456xx
key.alias.password=123456xx
market_channels=anzhuoshichang,jifengshichang,baiduyingyongzhongxin
app_version=1_0_build_0其中:

keystore為簽名文件的全路徑。

key.alias為簽名需要使用的私鑰。

key.store.password為私鑰庫的密碼。

key.alias.password為私鑰的密碼。

market_channels為渠道集合。

app_version為apk的版本(此字段可根據自己喜好編寫)。

 

————————————————————————————————–

 

至此,除build.xml外,其餘文件配置完成,夜深人靜的讓我有些犯困啦,明天會把build.xml中使用for循環替換AndroidManifest.xml中渠道value的方法分享給大傢。

 

 

You May Also Like