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

來源:互聯網
上載者:User

目前國內的安卓渠道有幾百家,我們要根據不同的渠道打不同渠道的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的方法分享給大家。

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.